您好!
我正在使用 msp430FR6922控制器。 我附上了供参考的代码。 在测试过程中、有时我的代码卡在" while (!((P4IN&BIT6)==0)}" 语句中。
当代码停留在 while 语句中时、我想在1秒后使用 WDT 复位 MSP430控制器。 因此、控制器重新启动代码...
int main(void) { WDTCTL = WDT_ARST_1000 ; // Stop WDT dev_init_16M(); // Microcontroller set on 16MHz __enable_interrupt(); // Re-enable all interrupts __bis_SR_register(GIE); // Enter LPM3, interrupts enabled DelayStart=1; while (1) { if(DelayStart==1) // For sample 1 send LC data after every 1 sec to tare the LC readings { // (DCO=MCLK=16MHZ )so, // Count/MCLK freq=Time // 16000000/16MHz=1sec __delay_cycles(16000000); // delay calculate on 16 MHz //timer interrupt on while(!((P4IN&BIT6)==1)){} // Wait until data ready CurrentLCValue=ReadData(); // Read load cell data CurrentLCValue1=CurrentLCValue&0x7FFF; LongtoInt.LongData=CurrentLCValue; // Split 3 byte data into single byte giTransmitBuffer[0]=LongtoInt.ByteSplit[1]; giTransmitBuffer[1]=LongtoInt.ByteSplit[0]; giTransmitBuffer[2]=0x00; for(i=0;i<3;i++) // Upto array from start to CRC lenth { while(!(UCA0IFG&UCTXIFG)); UCA0TXBUF = giTransmitBuffer[i]; } } }我的问题是、当控制器卡在 while 语句中时、WDT 很有帮助?? 是否有任何其他方法可以通过软件复位控制器? 如果是、请为 msp430fr6922控制器编写代码。