SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf

SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf

ID:57338506

大小:258.49 KB

页数:3页

时间:2020-08-12

SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf_第1页
SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf_第2页
SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf_第3页
资源描述:

《SDLu的MSP430入门学习笔记定时器TimerA比较输出PWM.pdf》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、S.D.Lu的MSP430入门学习笔记(8):定时器TimerA(3)比较输出PWM本篇笔记介绍如何使用TimerA的比较模式输出PWM信号。PWM信号有两个参数,周期T和脉宽D。为了实现PWM的控制,我们将通过TACCR0控制周期,通过TACCR1控制脉宽。输出选择模式7(或模式6)。在本例中,输出模式6和输出模式7只是第一个周期输出可能不同,从第二个周期开始输出是一样的。CCR1单元的输出引脚是P1.2。如下图,请参考MSP430G2x52、G2x12系列数据手册。将P1.2的功能按下图配置,请参考MSP430G2x52、G2x12系列数据手册。程序如下:程序运行结果是

2、P1.2口输出占空比为20%的PWM信号。在本例中,TIME用于控制PWM周期,DUTY指的是占空比,取值范围0~100。需要特别注意的是,在14行中用到了乘法和除法运算,如果不注意,乘法非常容易产生溢出。本例中将TIME定义为(1000ul),其中1000是TIME的数值,ul为后缀,它表示1000是一个unsignedlong类型的数据,这是IAR编译环境定义的。将TIME定义为unsignedlong类型之后,14行右边的乘法运算结果将保存为32位长度,这样就避免了溢出。如果将TIME定义改为#defineTIME(1000),则当TIME*DUTY的值大于0xFFF

3、F时,就会出现溢出,无法得到我们预想的结果。本例中,9~17行的代码被执行一次之后,CPU就进入LPM0模式,不再执行任何语句。PWM信号不是由CPU控制IO口产生的,而是由ACLK驱动TimerA产生的。从图12-12可以看出,模式1、4、5不能用于输出PWM信号,模式2-模式6、模式3-模式7是两对反相的输出模式。输出模式2,3,6,和7对于输出单元0无效,因为在这些模式下,EQUx=EQU0。因此,CCR0单元需要以控制IO的方式才能输出PWM信号。另外,也可以通过TimerA的溢出中断控制PWM频率。该方法下同时输出2路PWM信号的程序如下:程序运行结果是,在P1.

4、2输出30%占空比的PWM信号,在P1.4输出70%占空比的PWM信号。该例中,2路PWM信号的频率相同,占空比分别通过TACCR1和TACCR2控制。因为本例中PWM的频率由TimerA的溢出率控制,CCR1和CCR2的赋值是溢出值0xFFFF减去(TIME*DUTY/100),所以输出选择模式3,它是模式7的反相。IO端口的配置参考数据手册中的相关内容。作者:S.D.Lu深圳2014-4-9

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。