[综合信息]

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

[复制链接]
1919|3
手机看帖
扫描二维码
随时随地手机跟帖
LED2013|  楼主 | 2020-8-7 11:11 | 显示全部楼层 |阅读模式
通用定时器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为三角波计数波形。

比较输出OCREF可以配置为单点输出,使用比较寄存器 CCRA控制OCREFA的输出;OCREFA也可以配置为双点比较,使用比较寄存器CCRA、CCRB一起控制OCREFA的比较输出。
OCREFB,则只能使用单点比较,用比较寄存器CCRB控制OCREFB的比较输出。
OCREF输出使用OCMx选择,在这里选择PWM模式1/2,两种模式的高低电平相反。

锯齿波技术单点比较OCREF输出波形(PWM模式2)

三角波计数单点比较OCREF输出波形(PWM模式2)
进行OCREF比较输出的大体流程为:
1.配置时钟并使能;
2.设置CHA,CHB的输出引脚;
3.配置Tim0;
4.设置重载值与比较值;
5.配置通道比较控制结构体。
添加中断,将重复计数器产生的更新事件UEV作为中断使能,将比较值CCRA和CCRB进行交换使双通道的波形每个周期进行对换。

锯齿波模式输出波形

三角波模式输出波形
总结:通过控制两个比较寄存器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元,另外用华大专用仿真器,供您选择
2.jpg

使用特权

评论回复
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周期和定时周期是一致的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2154

主题

28376

帖子

24

粉丝