用ccr0 ccr1两个中断控制led灯 不能成功

2019-03-24 10:16发布

#include <msp430.h>               

int main(void) {

    WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer
    DCOCTL=DCO0;
    BCSCTL1=RSEL0+DIVA0;
    P1DIR |= BIT0+BIT6;
    P1OUT|=BIT0+BIT6;
    TACTL|=TASSEL0+TACLR+MC0;
    TACCTL0|=OUTMOD_7;
    TACCTL0|=CCIE+TAIE;
    CCR0=600;
    CCR1=60;
    _EINT();
  

}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A1(void)
{
    if(TAIV==2)
    {
    P1OUT^=BIT6;
    }
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0(void)
{
    P1OUT^=BIT0;
}
代码如上 ccr0中断能正常产生 控制小灯闪烁 但是ccr1中断控制的小灯常亮
这是什么原因

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
shower.xu
1楼-- · 2019-03-24 11:20
CCR0和CCR1和A0/A1应该是不同的,再看看手册
wq012315
2楼-- · 2019-03-24 15:20
 精彩回答 2  元偷偷看……
wq012315
3楼-- · 2019-03-24 17:04
找到原因了 timer0计时器的寄存器名改一下就可以了
比如 TA0CCTL0 不能写为 TACCTL0
TACTL 改为TA0CTL
不知道为什么求高手解答  
程序也有错误 忘记开CCTL1的中断

一周热门 更多>

相关问题

    相关文章