[P]我想使用msp430f149定时器A产生PWM驱动电机,但是不知道为什么电机不能驱动起来,望各位指点。谢谢[/P][P]程序如下:[/P][P]#include <msp430x14x.h>
typedef unsigned int uint;
void PWM_n(uint pwm);
void main()
{ WDTCTL=WDTPW+WDTHOLD; P1DIR=0x01; //P1.0设置为输出 _BIS_SR(GIE); //打开总中断 PWM_n(500); //占空比为50% 可调,0~1000
}
void PWM_n(uint pwm)
{ TACTL=TASSEL_1+MC_1; //选择MCLK时钟源,增计数到CCR0 CCTL0=CCIE; CCTL1=CCIE; CCR0=1000; CCR1=pwm; // pwm/1000 为占空比
}[/P][P]#pragma vector=TIMERA1_VECTOR //计数到CCR0后产生中断
__interrupt void ccr0(void)
{ P1OUT |= 0x00; //P1.0输出低电平
}[/P][P]
#pragma vector=TIMERA0_VECTOR
__interrupt void ccr1(void) //计数到CCR1后产生中断
{ switch(TAIV) {
case 2:P1OUT |= 0x01;break; // P1.0输出高电平 计数到CCR1产生的中断
case 4:break; //计数到CCR2产生的中断
case 10:break; //TIMERA产生的中断,未用到
default:break; }
}
[/P] |