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.

msp430F1232芯片定时器程序,仿真LED灯不闪 为什么?



#include <msp430x12x.h>

void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P3DIR |= 0xFF; // P3.5 output
CCTL0 = CCIE; // CCR0 interrupt enabled
CCR0 = 3000-1;
TACTL = TASSEL_1 + MC_1; // ACLK, upmode

_BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/ interrupt
}

// Timer A0 interrupt service routine
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P3OUT ^= 0xFF; // Toggle P3.5
}

  • 你是一步一步执行的吗?

    仿真的时候,在低功耗状态会执行很久。

    建议在中断服务程序里设置断点,直接点运行,如果能正确进入中断服务程序,就能改变io输出电平

  • john sue 说:

    #include <msp430x12x.h>

    void main(void)
    {
    WDTCTL = WDTPW + WDTHOLD; // Stop WDT
    P3DIR |= 0xFF; // P3.5 output
    CCTL0 = CCIE; // CCR0 interrupt enabled
    CCR0 = 3000-1;
    TACTL = TASSEL_1 + MC_1; // ACLK, upmode

    _BIS_SR(LPM3_bits + GIE); // Enter LPM3 w/ interrupt
    }

    // Timer A0 interrupt service routine
    #pragma vector=TIMERA0_VECTOR
    __interrupt void Timer_A (void)
    {
    P3OUT ^= 0xFF; // Toggle P3.5
    }

    基于范例程序改可以排除软件的问题