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.

看门狗与定时器冲突

Other Parts Discussed in Thread: MSP430G2533

我采用msp430g2533,使用JTAG仿真,现在有个问题,我一直无法解决:定时器采用ACLK时钟,两个中断(2秒溢出中断和30ms的CCRO中断),当不打开看门狗(aclk时钟,1秒)时,中断正常,但是打开看门狗时,30ms的中断变成了2秒,(确定时这样的,我在中断内改变IO口的状态,检查出来的)不知为什么,以前同样的程序用在其它430芯片没发现这个问题

  • void Delay(void) {         uint16 i;         for(i=0xffff;i>0;i--)         {             nop;               nop;               nop;         } }

    uint16 i=0,j=0; void main( void ) {     InitPrag();    while(1)                       {                   P2OUT ^= 0X04;                 Delay();                 Delay();                // WDTCTL = WDT_ARST_1000;                  i++;                // _BIS_SR(LPM3_bits + GIE);           // Enter LPM3    }

    } void InitPrag(void) {         _DINT();         //WDTCTL = WDT_ARST_1000;          P1DIR = 0Xfc;        P2DIR = 0Xcf;        P1OUT = 0x07;        P2OUT = 0x00;               P1SEL |= BIT1+BIT2;         P1SEL2 |= BIT1+BIT2;                P1IES =0X01;        P1IE = 0X01;         TACTL = TASSEL0+MC1+TAIE+TACLR;         CCTL0 = CCIE;         CCR0 = WorkValue;         _EINT();       //中断允许 } #pragma vector=TIMER0_A0_VECTOR

    __interrupt void Timer_A0 (void) {            j++;          P2OUT ^= 0X08;           //_BIC_SR_IRQ(LPM3_bits);     }

    #pragma vector=TIMER0_A1_VECTOR

    __interrupt void Timer_A1 (void) {           switch( TAIV )         {               case 10:                    Message |= RTC_Flag;                    break;      // overflow               default:               break;         }  _BIC_SR_IRQ(LPM3_bits);  }

  • 你好,

    你的ACLK是否外挂的32768的晶振?

    建议你在程序跑起来的时候你在mian进入之后设置断点看是否是因为MCU复位了的原因。