MSP430怎样给CCR1和CCR2赋值这样才能保证中断?
我的程序如下#include <msp430x14x.h>
void main(void)
{
//停止看门狗定时器
WDTCTL = WDTPW + WDTHOLD;
P2DIR |= BIT0+BIT4+BIT7;// 设 P1.0 为输出
P2OUT |= BIT0+BIT4+BIT7;
CCTL1=CCIE;
CCTL2=CCIE;
//CCR0=1000; // ACLK, 定时器 A 计数模式,且开中断功能
CCR1=1000;
CCR2=1000;
TACTL = TASSEL_1 + MC_1 + TAIE;
_BIS_SR(LPM3_bits + GIE);//进入 LPM3 低功耗模式和开总中断允许
}
#pragma vector=TIMERA1_VECTOR
__interrupt void Timer_A(void) //应用 switch 语句来处理多中断源的向量
{
CCR1=1000;
CCR1=1000;
switch( TAIV )
//向量列表通过 case 语句来分多中断源的入口
{
case 2: P2OUT ^= BIT7;break; // CCR1 比较/捕获寄存器的中断入口,入中断,LED闪闪烁
case 4: P2OUT ^= BIT4; break; // CCR2 比较/捕获寄存器的中断入口,入中断,LED闪闪烁
case 10: P2OUT ^= BIT0;break;//定时器 A 在计满 16 位时将产生计数溢出中断 进入中断,LED闪闪烁
}
}
不用大家解决了!我已经调好了!是忘了开启CCTL0=CCIE;而且CCR0的值要大于CCR1和CCR2的值!!
页:
[1]