微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430定时器的PWM输出

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的波形输出程序。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top