MSP430定时器的PWM输出
时间:11-11
来源:互联网
点击:
设置周期函数:设置PWM波形的周期,单位是多少个TACLK周期。
void TAPwmSetPeriod(unsigned int Period){TACCR0 = Period;}
工作于增模式时,TA计数到TACCR0,设CCR0就完成了周期的设置。
设置占空比:设置TA的PWM输出的有效电平的时间。
void TAPwmSetDuty(char Channel,unsigned int Duty){switch(Channel){case 1: TACCR1=Duty; break; case 2: TACCR2=Duty; break; }}
根据参数分别设置每一路的参数。
设置占空比,用千分比设置:
* 入口参数:Channel: 当前设置的通道号 1/2Percent: PWM有效时间的千分比 (0~1000) * 出口参数:无* 说 明: 1000=100.0% 500=50.0% ,依次类推 * 范 例: TAPwmSetPermill(1,300)设置PWM通道1方波的占空比为30.0%TAPwmSetPermill(2,825)设置PWM通道2方波的占空比为82.5%*/void TAPwmSetPermill(char Channel,unsigned int Percent){unsigned long int Period;unsigned int Duty;Period = TACCR0;Duty = Period * Percent / 1000;TAPwmSetDuty(Channel,Duty);}
这个函数用千分比来设置PWM输出的有效时间。方便程序的使用。
有关定时器,TI提供的大量的例程,这些历程都很简洁、清晰。需要其他功能可以自己根据例程编写对应的程序。程序实现就这么多了,下面说下本程序的使用方法。
使用示例:使用方式:依然是在工程中加入c文件;文件包含h头文件;然后就可以正常使用本函数了。详细参考示例工程和main.c。
main主要程序如下:
#include "msp430x16x.h" //430寄存器头文件#include "TAPwm.h" //TA PWM输出程序库头文件void main(){// Stop watchdog timer to prevent time out resetWDTCTL = WDTPW + WDTHOLD;ClkInit();TAPwmInit(A,1,P,P); //将定时器TA初始化成为PWM发生器//时钟源=ACLK ; 无分频; 通道1和通道2均设为高电平模式。TAPwmSetPeriod(500); //通道1/2的PWM方波周期均设为500个时钟周期TAPwmSetDuty(1,200); //1通道 有效200个时钟周期TAPwmSetPermill(2,200); //2通道 20.0%LPM0;}
本程序调用程序库,产生两路PWM波形。
TA的PWM输出就到这儿了,如果需要更多路的PWM波,可以使用TB,他可以产生6路完整的PWM波形;可以参考本程序编写TB的波形输出程序。
MSP430定时器PWM输 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)