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.

Time Interrupt service routine無法返回主程式

Other Parts Discussed in Thread: MSP430F5438

Hi All,

使用MSP-EXP430F5438應用模組,使用的MCU為M430F5438A,compiler軟體CCS,使用範例驗證MSP與App1_MSPBoot_F5529_I2C,

MCU CMD檔&Driver設定我有針對我要使用的MCU修改過設定。

我現在遇到的問題是   App1_MSPBoot_F5529_I2C範例內Time Interrupt service routine,一旦程式進入中斷程序,

程式似乎就沒有返回main,中斷程序會重複中斷。

在麻煩各位指導問題,謝謝。

以下是我程式:

//---------------------------------------------------------------------------------------

void main( void )

{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;

// Toggle LED1 in P1.1
P1DIR |= BIT1 | BIT0;
P1OUT |= BIT1 | BIT0;
__delay_cycles(500000);
P1OUT &= ~(BIT1 | BIT0);
__delay_cycles(500000);
P1OUT |= BIT1 | BIT0;
__delay_cycles(500000);
P1OUT &= ~(BIT1 | BIT0);
__delay_cycles(500000);

// Start P2.1 (S2 button) as interrupt with pull-up
P2OUT |= BIT6;
P2REN |= BIT6;
P2IES |= BIT6;
P2IE |= BIT6;

// Start Timer interrupt
TA0CCTL0 = CCIE; // CCR0 interrupt enabled
TA0CCR0 = 0xCFFF;
TA0CTL = TASSEL_1 + MC_1; // ACLK, upmode

__bis_SR_register(LPM3_bits + GIE);

while (1)                      //程式無法進入此迴圈,所以BIT0燈號沒有閃爍。

{
P1OUT ^= BIT0;
__delay_cycles(500000);
}
}

//---------------------------------------------------------------------------------------

__interrupt void Timer_A (void)
{
P1OUT ^= BIT1; // Toggle P1.0           //可以反覆中斷,BIT1燈號會閃爍。
TA0CCTL0 &= ~CCIFG;
}

//---------------------------------------------------------------------------------------

//中斷向量配置

const uint16_t ProxyVectorTable[] =
{
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(0) RTC_A
0x4030, (uint16_t)P2_Isr, // APP_PROXY_VECTOR(1) PORT2
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(2) USCI_B3
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(3) USCI_A3
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(4) USCI_B1
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(5) USCI_A1
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(6) PORT1
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(7) TIMER1_A1
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(8) TIMER1_A0
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(9) DMA
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(10) USCI_B2
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(11) USCI_A2
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(12) TIMER0_A1
0x4030, (uint16_t)Timer_A, // APP_PROXY_VECTOR(13) TIMER0_A0
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(14) ADC12_A
0x4030, (uint16_t)USCI_B0_ISR, // APP_PROXY_VECTOR(15) USCI_B0
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(16) USCI_A0
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(17) WDT
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(18) TB1
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(19) TB0
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(20) UNMI
0x4030, (uint16_t)Dummy_Isr, // APP_PROXY_VECTOR(21) SYSNMI
};

在麻煩各位指導問題,謝謝。