我采用msp430g2533,使用JTAG仿真,现在有个问题,我一直无法解决:定时器采用ACLK时钟,两个中断(2秒溢出中断和30ms的CCRO中断),当不打开看门狗(aclk时钟,1秒)时,中断正常,但是打开看门狗时,30ms的中断变成了2秒,(确定时这样的,我在中断内改变IO口的状态,检查出来的)不知为什么,以前同样的程序用在其它430芯片没发现这个问题
cly0324 cly0324:
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); }
kqian0327:
你好,
你的ACLK是否外挂的32768的晶振?
建议你在程序跑起来的时候你在mian进入之后设置断点看是否是因为MCU复位了的原因。