LED2013 发表于 2020-8-7 11:11

HC32L136的基础定时器PWM输出学习笔记

通用定时器0/1/2的关于PWM输出基本特性具有2路独立PWM输出CHA,CHB,1路互补PWM输出(CHA,CHB)+1路独立PWM输出(gate),1路互补PWM输出(CHA,CHB)+1路捕获功能(gate)。
HC32L130_HC32L136系列用户手册Rev1.8中将基础定时器的模式2/3放到了一起进行说明,其中的原因是在模式2/3下功能大体相同,不同之处在于模式2为锯齿波计数波形,模式3为三角波计数波形。
http://www.tigerchip.com.cn/data/attachment/forum/202003/18/111417h2mzcmf5qhmpghqc.png
比较输出OCREF可以配置为单点输出,使用比较寄存器 CCRA控制OCREFA的输出;OCREFA也可以配置为双点比较,使用比较寄存器CCRA、CCRB一起控制OCREFA的比较输出。
OCREFB,则只能使用单点比较,用比较寄存器CCRB控制OCREFB的比较输出。
OCREF输出使用OCMx选择,在这里选择PWM模式1/2,两种模式的高低电平相反。
http://www.tigerchip.com.cn/data/attachment/forum/202003/18/135331r88xidmydlfzxxn8.png
锯齿波技术单点比较OCREF输出波形(PWM模式2)
http://www.tigerchip.com.cn/data/attachment/forum/202003/18/135337tnh66i8nr2xwn8z4.png
三角波计数单点比较OCREF输出波形(PWM模式2)
进行OCREF比较输出的大体流程为:
1.配置时钟并使能;
2.设置CHA,CHB的输出引脚;
3.配置Tim0;
4.设置重载值与比较值;
5.配置通道比较控制结构体。
添加中断,将重复计数器产生的更新事件UEV作为中断使能,将比较值CCRA和CCRB进行交换使双通道的波形每个周期进行对换。
http://www.tigerchip.com.cn/data/attachment/forum/202003/18/142628cxcchqhv5t188qwx.jpg
锯齿波模式输出波形
http://www.tigerchip.com.cn/data/attachment/forum/202003/18/142508znvgjupamlm0r9sv.jpg
三角波模式输出波形
总结:通过控制两个比较寄存器CCRA、CCRB的值来控制输出波形的占空比来输出不同的波形。
   例如 : u16CompareAValue++;
                Bt_M23_CCR_Set(TIM0, BtCCR0A, u16CompareAValue);
                i++;
                if(i == 65535)
                {
                        for(i=65535;i--;i<1)
                        {
                              u16CompareAValue--;
                              Bt_M23_CCR_Set(TIM0, BtCCR0A, u16CompareAValue);
                        }

               }周期性控制产生波形的占空比。

rickluo 发表于 2020-8-9 14:15

我们提供最小系统板,淘宝下单备注“21IC”,仅需35元,另外用华大专用仿真器,供您选择

hzocce 发表于 2020-8-18 11:58

同一个定时器可以用来定时和输出PWM 不?

我看TIMx_M0CR 的bit13,bit12决定,只能4选1,如果定时就不能PWM ,如果PWM就不能定时了!
是么额?

如果不是话,该如何设置同时使用?

martinhu 发表于 2020-8-18 14:35

hzocce 发表于 2020-8-18 11:58
同一个定时器可以用来定时和输出PWM 不?

我看TIMx_M0CR 的bit13,bit12决定,只能4选1,如果定时就不能PW ...

可以啊,输出PWM与周期定时不矛盾,只是PWM周期和定时周期是一致的。
页: [1]
查看完整版本: HC32L136的基础定时器PWM输出学习笔记