共2条
1/1 1 跳转至页
为什么程序进入死循环以后就不会响应中断?

问
比如TI的例子:
#include <MSP430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x01; // P1.0 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01; // Toggle P1.0
CCR0 += 50000; // Add Offset to CCR0
}
把_BIS_SR(LPM0_bits + GIE) ; 改成 while(1) 之后,就不会进入时间中断了,为什么? 答 1: 没有开全局中断GIE 答 2: 可以了,谢谢! 答 3: 无论怎样我都没法实现中断!
不知这是怎么一回事啊?
#include <MSP430x14x.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x01; // P1.0 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 50000;
TACTL = TASSEL_2 + MC_2; // SMCLK, contmode
_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt
}
// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P1OUT ^= 0x01; // Toggle P1.0
CCR0 += 50000; // Add Offset to CCR0
}
把_BIS_SR(LPM0_bits + GIE) ; 改成 while(1) 之后,就不会进入时间中断了,为什么? 答 1: 没有开全局中断GIE 答 2: 可以了,谢谢! 答 3: 无论怎样我都没法实现中断!
不知这是怎么一回事啊?
共2条
1/1 1 跳转至页