CCTL0 = CCIE; // CCR0 interrupt enabled
TACTL = TASSEL_2 + ID_3 + MC_2; // SMCLK/8,
_EINT();
程序运行能进入中断服务程序,不解啊,为啥,没有开TAIE也能产生中断
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
CCTL0 = CCIE; // CCR0 interrupt enabled
TACTL = TASSEL_2 + ID_3 + MC_2; // SMCLK/8,
_EINT();
程序运行能进入中断服务程序,不解啊,为啥,没有开TAIE也能产生中断
CCTL0 = CCIE; // CCR0 interrupt enabled
这句就是开了CCR0中断
_EINT(); 是打开了全局中断
#include <msp430g2553.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x01;
TA0CCTL0 = CCIE; // CCR0 interrupt enabled
TA0CTL = TASSEL_2 + ID_3 + MC_2; // SMCLK/8, cont-mode
_EINT(); // enable interrupts
while (1); // Loop
}
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01;
}
非常感谢你们的回答。
上面是程序,因为我用的是TACCR0,我的中断向量是TIMER0_A0_VECTOR,不是TIMER0_A1_VECTOR,
所以应该用不到TAIV。
#include <msp430g2553.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x01;
TA0CCTL0 = CCIE; // CCR0 interrupt enabled
TA0CTL = TASSEL_2 + ID_3 + MC_2; // SMCLK/8, cont-mode
_EINT(); // enable interrupts
while (1); // Loop
}
// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01;
}
非常感谢你们的回答。
上面是程序,因为我用的是TACCR0,我的中断向量是TIMER0_A0_VECTOR,不是TIMER0_A1_VECTOR,
所以应该用不到TAIV。
我想是CCTL0 = CCIE; 开了CCR0中断,即使没有设置过CCR0,即CCR0为0,当TAR从FFFFH滚回 0 时,
产生比较中断了