======================================================================//
#include "msp430x54x.h" #include <stdlib.h> #include <stdio.h> #include "PIN_DEF.H"
#pragma vector=WDT_VECTOR __interrupt void watchdog_timer (void) { P1OUT ^= 0xF0 ; P9OUT ^= 0x0F ; }
//***************************************************************************// // // // Init_Port(void): éèÖÃIO¶Ë¿ú // // // //***************************************************************************// void Init_Port(void) { P5DIR |= POWER ; MAIN_POWER_ON ; P7DIR |= LED_PWR ; P7OUT &=~LED_PWR ; P1OUT = 0xF0 ; P9OUT = 0x0F ; P9DIR = 0x0F ; }
int main( void ) { WDTCTL = WDTPW + WDTHOLD ; Init_Port() ; P7SEL |= 0x03 ; UCSCTL6 &=~XT1OFF ; UCSCTL6 |= XCAP_3 ; UCSCTL4 |= SELA_0 ; SFRIE1 |= WDTIE ; WDTCTL = WDT_ADLY_1000 ; _EINT() ; LPM3 ; }
这是一段使用看门狗定时器程序,将看门狗设置为时间间隔模式,P1、P9口端口电平3.3V与GND之间跳变。 若是将LPM3这句语句去掉,则P1、P9口端口电平不变化,并且程序停止不再运行,检测窗口显示program exit reached,并且检测SR寄存器C位置1。 若是将LPM3改为LPM0、LPM1、LPM2、LPM4,P1、P9口端口电平3.3V与GND之间跳变。
|