MSP430程序库(十一)定时器TA的PWM输出

MSP430程序库(十一)定时器TA的PWM输出

ID:36863772

大小:412.26 KB

页数:6页

时间:2019-05-17

MSP430程序库(十一)定时器TA的PWM输出_第1页
MSP430程序库(十一)定时器TA的PWM输出_第2页
MSP430程序库(十一)定时器TA的PWM输出_第3页
MSP430程序库(十一)定时器TA的PWM输出_第4页
MSP430程序库(十一)定时器TA的PWM输出_第5页
资源描述:

《MSP430程序库(十一)定时器TA的PWM输出》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、MSP430程序库<十一>定时器TA的PWM输出定时器是单片机常用的其本设备,用来产生精确计时或是其他功能;msp430的定时器不仅可以完成精确定时,还能产生PWM波形输出,和捕获时刻值(上升沿或是下降沿到来的时候)。这里完成一个比较通用的PWM波形产生程序。1.硬件介绍:MSP430系列单片机的TimerA结构复杂,功能强大,适合应用于工业控制,如数字化电机控制,电表和手持式仪表的理想配置。它给开发人员提供了较多灵活的选择余地。当PWM不需要修改占空比和时间时,TimerA能自动输出PWM,而不需利用中断维持PWM输出。MSP430

2、F16x和MSP430F14x单片机内部均含有两个定时器,TA和TB;TA有三个模块,CCR0-CCR2;TB含有CCR0-CCR67个模块;其中CCR0模块不能完整的输出PWM波形(只有三种输出模式可用);TA可以输出完整的2路PWM波形;TB可以输出6路完整的PWM波形。定时器的PWM输出有有8种模式:输出模式0输出模式:输出信号OUTx由每个捕获/比较模块的控制寄存器CCTLx中的OUTx位定义,并在写入该寄存器后立即更新。最终位OUTx直通。输出模式1置位模式:输出信号在TAR等于CCRx时置位,并保持置位到定时器复位或选择另

3、一种输出模式为止。输出模式2PWM翻转/复位模式:输出在TAR的值等于CCRx时翻转,当TAR的值等于CCR0时复位。输出模式3PWM置位/复位模式:输出在TAR的值等于CCRx时置位,当TAR的值等于CCR0时复位。输出模式4翻转模式:输出电平在TAR的值等于CCRx时翻转,输出周期是定时器周期的2倍。输出模式5复位模式:输出在TAR的值等于CCRx时复位,并保持低电平直到选择另一种输出模式。输出模式6PWM翻转/置位模式:输出电平在TAR的值等于CCRx时翻转,当TAR值等于CCR0时置位。输出模式7PWM复位/置位模式:输出电平

4、在TAR的值等于CCRx时复位,当TAR的值等于CCR0时置位。下图是增计数模式下的输出波形(本程序使用的是增模式3和7):计数模式:增计数模式捕获/比较寄存器CCR0用作Timer_A增计数模式的周期寄存器,因为CCR0为16位寄存器,所以该模式适用于定时周期小于65536的连续计数情况。计数器TAR可以增计数到CCR0的值,当计数值与CCR0的值相等(或定时器值大于CCR0的值)时,定时器复位并从0开始重新计数。连续计数模式在需要65536个时钟周期的定时应用场合常用连续计数模式。定时器从当前值计数到0FFFFH后,又从0开始重新

5、计数增/减计数模式需要对称波形的情况经常可以使用增/减计数模式,该模式下,定时器先增计数到CCR0的值,然后反向减计数到0。计数周期仍由CCR0定义,它是CCR0计数器数值的2倍。TA定时器有比较、捕获两种工作方式;比较可以产生PWM波形等,捕获可以精确的测量时间;这里用的是比较输出。硬件介绍就这么多了,其他的可以参考msp430x1xx_family_users_guide(用户指南)。2.程序实现:本程序是直接从msp430f42x移植的,只改动了端口就能正常使用了。由此,430的模块在不同的系列中是通用的,有关寄存器是一样的;只

6、是也许外部端口不太一样。程序初始化部分:完成TA相关寄存器的初始化。charTAPwmInit(charClk,charDiv,charMode1,charMode2){TACTL=0;//清除以前设置TACTL

7、=MC_1;//定时器TA设为增计数模式switch(Clk)//选择时钟源{case'A':case'a':TACTL

8、=TASSEL_1;break;//ACLKcase'S':case's':TACTL

9、=TASSEL_2;break;//SMCLKcase'E':TACTL

10、=TASSEL_0;break;//外部输

11、入(TACLK)case'e':TACTL

12、=TASSEL_3;break;//外部输入(TACLK取反)default:return(0);//参数有误}switch(Div)//选择分频系数{case1:TACTL

13、=ID_0;break;//1case2:TACTL

14、=ID_1;break;//2case4:TACTL

15、=ID_2;break;//4case8:TACTL

16、=ID_3;break;//8default:return(0);//参数有误}switch(Mode1)//设置PWM通道1的输出模式。{case'P':c

17、ase'p'://如果设置为高电平模式TACCTL1=OUTMOD_7;//高电平PWM输出P1SEL

18、=BIT2;//从P1.2输出(不同型号单片机可能不一样)P1DIR

19、=BIT2;//从P1.2输出(不同型号单片机

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

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

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