跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1M系列
  4. MC0在eTMR0的通道2输出PWM,更新一次占空比之后PMW占空比改成0之后,PWM输出全高

MC0在eTMR0的通道2输出PWM,更新一次占空比之后PMW占空比改成0之后,PWM输出全高

已定时 已固定 已锁定 已移动 YTM32B1M系列
7 帖子 2 发布者 113 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • JoeJ 离线
    JoeJ 离线
    Joe
    写于 最后由 编辑
    #1

    cb26dda9-32fd-4ac0-96aa-43aae0450f77-image.png 输出50%占空比寄存器.
    1e69704f-7eb9-4845-ba59-2708faa2ba82-628bfb3d229455d767b789ac23c4eba.jpg 示波器测量输出
    ae33802a-b2b8-4df0-89ab-26d8c48f6e2e-image.png 占空比改成0,寄存器值
    ec834eea-6f22-4a4b-b7bd-44a7bf4f91fc-98a71a783d66a7941899ce267e4bc97.jpg 示波器波形6fd8cb55-42da-405d-926e-ee64dd3cc518-dma_config.zip etmr配置

    1 条回复 最后回复
    0
    • EnweiE 离线
      EnweiE 离线
      Enwei YunTu
      写于 最后由 编辑
      #2

      你这个问题可能跟eTMR的周期和占空比寄存器(MOD, VAL0和VAL1)是buffer寄存器,其默认load是在下一PWM周期的工作机制有关。

      你更新占空比用的哪个API函数?只改变了PWM的占空比,还是周期也改变了?具体的代码贴出看看?

      1 条回复 最后回复
      0
      • JoeJ 离线
        JoeJ 离线
        Joe
        写于 最后由 编辑
        #3

        在中断里面操作的寄存器,没有改MOD

        image.png

        EnweiE 1 条回复 最后回复
        0
        • JoeJ 离线
          JoeJ 离线
          Joe
          写于 最后由 编辑
          #4

          初始化的时候会先给val1和Val0赋成0

          image.png

          1 条回复 最后回复
          0
          • EnweiE 离线
            EnweiE 离线
            Enwei YunTu
            在 回复了 Joe 最后由 编辑
            #5

            Joe 在 MC0在eTMR0的通道2输出PWM,更新一次占空比之后PMW占空比改成0之后,PWM输出全高 中说:

            在中断里面操作的寄存器,没有改MOD

            image.png

            你这个函数pwm()是在PWM的溢出中断执行的?是每个周期都要更新一下各个通道的占空比吗?

            1 条回复 最后回复
            0
            • JoeJ 离线
              JoeJ 离线
              Joe
              写于 最后由 编辑
              #6

              输出0%的时候把val1和val0都改成相同的非0就行了

              1 条回复 最后回复
              0
              • EnweiE 离线
                EnweiE 离线
                Enwei YunTu
                写于 最后由 编辑
                #7

                MC0的eTMR模块的计数器是从1或者INIT+1开始计数的,而不是从0开始计数,
                246a8ef9-81c9-474f-924e-ba6dce51827e-image.png
                因此,在左对齐模式下,要其输出0%的占空比,需要配置VAL0= MOD + 1,VAL1=MOD, 示例代码如下:
                ```

                       if (0U == DutyCycleTick)
                        {
                            Base->CH[Channel].VAL0 = Base->MOD + 1U;
                            Base->CH[Channel].VAL1 = Base->MOD;
                        }
                        else
                        {
                            Base->CH[Channel].VAL0 = eTMR_INIT_VALUE;
                            Base->CH[Channel].VAL1 = DutyCycleTick;
                        }
                1 条回复 最后回复
                0

              • 云途论坛规则/Yuntu Forum Rules

                发帖前请查看

              • YCT离线License申请流程

                帮助没办法联网的电脑使用YCT

              • YT CONFIG TOOL调查问卷

                帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

              • demo
                12
                can
                9
                lin stack
                6
                yt-link
                5
                vscode
                3
                adc模块
                2
                i2c
                2
                uuid
                2
                Online Users
                • 登录

                • 登录或注册以进行搜索。
                • 第一个帖子
                  最后一个帖子
                0
                • 版块
                • 最新
                • 标签
                • 热门