======================================================================//
#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之间跳变。
此帖出自
小平头技术问答
一周热门 更多>