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

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT SDK
  4. Demo_PWM_同一个周期内立即更新占空比

Demo_PWM_同一个周期内立即更新占空比

已定时 已固定 已锁定 已移动 YT SDK
demoetmrpwm
11 帖子 3 发布者 1.2k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • qinzhaoQ 离线
    qinzhaoQ 离线
    qinzhao YunTu
    写于 最后由 编辑
    #1
    1. 背景
      特殊应用场合出现同一个周期内,更新两次占空比,SDK自带DEMO会更新不进去
    2. 需求
    3. 芯片系列:MC0,MD,ME,LE
    4. 功能需求描述
    5. 特殊应用场合出现同一个周期内,更新两次占空比,无法更新
    6. 代码包:MCAL x.x.x/SDK x.x.x/RegCode
    7. 编译器:IAR/Keil/Gcc
    8. 解决方案描述
      1.模拟同一个周期内多次更新占空比,去掉原demo里的两次更新占空比之间的延时
      c8f56cfb-50db-449d-bfc7-c602e62a00d2-image.png [图片]
      此时PWM输出为第一次占空比设置的0%占空比。
      2.将原来regisiter loading Opportunity配置的synchronized with counter matching MOD改为synchronized with register loading trigger source。
    9. 示例说明
      2.将PWM设置为软触发更新
      [图片]
      3.在代码中将eTMR_DRV_SetLdok()函数改为eTMR_DRV_SyncWithSoftTrigger(ETMR_INST)
    int main(void)
    {
        /* USER CODE BEGIN 1 */
        /* USER CODE END 1 */ 
        Board_Init();
        /* USER CODE BEGIN 2 */
        /* PWM is generated when eTMR enable, the duty cycle is configured in the initial function */
        eTMR_DRV_Enable(ETMR_INST);
        OSIF_TimeDelay(10);
    
        /* The following code shows how to switch the different duty cycle */
        /* channel 2 duty cycle is 50% */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX0, 0x4000U, 0);
        /* channel 3 duty cycle is 75% */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX1, 0x6000U, 0);
        eTMR_DRV_SetLdok(ETMR_INST);
        OSIF_TimeDelay(10);
    
        /* channel 2 duty cycle is 100%, here is the workaround for 100% duty cycle
         * when channel is right align, value0 is configured as 0
         */
        g_etmrBase[ETMR_INST]->CH[ETMR_CHANNEL_INDEX0].VAL0 = 0;
        g_etmrBase[ETMR_INST]->CH[ETMR_CHANNEL_INDEX0].VAL1 = g_etmrBase[ETMR_INST]->MOD + 1;
        /* channel 3 duty cycle is 100% 
         * when channel is left/center/asymmetrical align, value0 is configured as 1
         */
        g_etmrBase[ETMR_INST]->CH[ETMR_CHANNEL_INDEX1].VAL0 = 1;
        g_etmrBase[ETMR_INST]->CH[ETMR_CHANNEL_INDEX1].VAL1 = g_etmrBase[ETMR_INST]->MOD + 1;
        eTMR_DRV_SetLdok(ETMR_INST);
        OSIF_TimeDelay(10);
    
        /* channel 2 duty cycle is 0 */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX0, 0, 0);
        /* channel 3 duty cycle is 0 */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX1, 0, 0);
        ***eTMR_DRV_SyncWithSoftTrigger(ETMR_INST);***
        //OSIF_TimeDelay(10);
    
        /* channel 2 duty cycle is 0x6000 */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX0, 0x6000U, 0);
        /* channel 3 duty cycle is 0x4000 */
        eTMR_DRV_UpdatePwmChannel(ETMR_INST, ETMR_CHANNEL_INDEX1, 0x4000U, 0);
        ***eTMR_DRV_SyncWithSoftTrigger(ETMR_INST);***
        /* USER CODE END 2 */
    
        /* Infinite loop */
        /* USER CODE BEGIN WHILE */
        while (1)
        {
            /* USER CODE END WHILE */
            /* USER CODE BEGIN 3 */
        }
        /* USER CODE END 3 */
    }
    

    可以输出最新的更新的占空比值,不再需要等到COUNTER值等于MOD值更新。
    输出波形:
    ee999e18-4555-403b-8f5e-639d3219371c-image.png [图片]
    5. 工程代码
    8b54813e-6ed9-4df8-9464-81756d2f7667-Etmr_Pwm_Demo.zip

    1 条回复 最后回复
    0
    • z1009591161Z 离线
      z1009591161Z 离线
      z1009591161
      写于 最后由 编辑
      #2

      通过Ozone看占空比寄存器,此方法确实可以实现在一个周期内更改两次占空比,实际输出占空比为最后一次更改的占空比。

      1 条回复 最后回复
      0
      • qinzhaoQ 离线
        qinzhaoQ 离线
        qinzhao YunTu
        写于 最后由 编辑
        #3

        在示例说明里,增加YCT配置PWM软触发的图片:image.png

        TungDoT 1 条回复 最后回复
        0
        • TungDoT 离线
          TungDoT 离线
          TungDo
          在 回复了 qinzhao 最后由 编辑
          #4

          qinzhao Hi there, could you please give me the link of this configure tool?

          1 条回复 最后回复
          0
          • qinzhaoQ 离线
            qinzhaoQ 离线
            qinzhao YunTu
            写于 最后由 编辑
            #5

            帖子附件里有,下面是链接:
            https://yt-static-media.oss-cn-hangzhou.aliyuncs.com/nodebb/24/e818fe45-5516-4885-a8ad-225aeb4c86ae.zip

            1 条回复 最后回复
            0
            • qinzhaoQ 离线
              qinzhaoQ 离线
              qinzhao YunTu
              写于 最后由 编辑
              #6

              The link in pdf.云途开发生态介绍.pdf

              TungDoT 2 条回复 最后回复
              0
              • TungDoT 离线
                TungDoT 离线
                TungDo
                在 回复了 qinzhao 最后由 编辑
                #7

                qinzhao do you have another version in english?

                1 条回复 最后回复
                0
                • TungDoT 离线
                  TungDoT 离线
                  TungDo
                  在 回复了 qinzhao 最后由 编辑
                  #8

                  qinzhao many thanks for your support!

                  1 条回复 最后回复
                  0
                  • qinzhaoQ 离线
                    qinzhaoQ 离线
                    qinzhao YunTu
                    写于 最后由 编辑
                    #9

                    download link:https://account.ytmicro.com/#/login,
                    After registering and logging in, you can download it.

                    TungDoT 1 条回复 最后回复
                    0
                    • TungDoT 离线
                      TungDoT 离线
                      TungDo
                      在 回复了 qinzhao 最后由 编辑
                      #10

                      qinzhao Do I need to pay any fees to use the YTC tool?

                      1 条回复 最后回复
                      0
                      • qinzhaoQ 离线
                        qinzhaoQ 离线
                        qinzhao YunTu
                        写于 最后由 编辑
                        #11

                        ytc tools are free

                        1 条回复 最后回复
                        0

                      • 云途开发生态介绍

                        快速上手云途开发生态

                      • 云途论坛规则/Yuntu Forum Rules

                        发帖前请查看

                      • YT CONFIG TOOL调查问卷

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

                      • can
                        19
                        demo
                        19
                        uds
                        11
                        lin stack
                        9
                        fbl
                        5
                        md14
                        5
                        yt-link
                        5
                        adc模块
                        4
                        Online Users
                        runR
                        run
                        wangweidongW
                        wangweidong
                        iss-dannI
                        iss-dann
                        EkkoE
                        Ekko
                        liu123456L
                        liu123456
                        mcM
                        mc
                        WHQW
                        WHQ
                        YQHY
                        YQH
                        WangPeiyingW
                        WangPeiying
                        luxiaoguoL
                        luxiaoguo
                        carpeC
                        carpe
                        LCZOUYIWENL
                        LCZOUYIWEN
                        quanfengQ
                        quanfeng
                        QWQ
                        QW
                        jinyiJ
                        jinyi
                        yt0503Y
                        yt0503
                        junhanhuangJ
                        junhanhuang
                        DerrickD
                        Derrick
                        YTBivY
                        YTBiv
                        • 登录

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