MSP430F149 TimerA 输出pwm信号 C程序代码
注意其中寄存器设置与pwm信号输出引脚的对应关系 P1.2-TA1,TACCR1,TACCTL1;,P1.3-TA2,TACCR2,TACCTL2。
#include msp430x14x.h>
#define uint unsigned int
#define uchar unsigned char
void int_clk()
{
uchar i;
BCSCTL1 &= ~XT2OFF; //打开XT振荡器
BCSCTL2 |= SELM1+SELS; //MCLK为8MHz,SMCLK为8MHz
do
{
IFG1&=~OFIFG; //清除振荡错误标志
for(i=0;i<100;i++)
_NOP(); //延时等待
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
}
void int_pwm()
{
P1SEL |= BIT2 + BIT3 ; //选择 p1.2-TA1 ,P1.3-TA2 作为PWM输出 第二功能
P1DIR |= BIT2 + BIT3 ;
TACCR0 = 800; //PWM信号频率10KHZ
TACCR1 = 400 ; // 占空比1:1
TACCTL1 = OUTMOD_7;
TACCR2 = 400 ;
TACCTL2 = OUTMOD_7;
TACTL |= TASSEL1 +ID1 + ID0 + MC0 ; //选择SMCLK 增加模式
}
void main()
{
WDTCTL = WDTPW + WDTHOLD ;
int_clk();
int_pwm();
while(1);
}
MSP430F149TimerApwm信 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)