#include int i=0,j=0; void delay(int ms); //延时函数,具体多长时间,有多少算多少,意思意思 void main() { //WDTCTL = WDTPW + WDTHOLD; P1DIR = 0xff; //配置P1口为输出 while(1) { delay(5); P1OUT = ~((1<<6)|(1<<0)); //P1.0和P1.6是LED,今天就点它 delay(5); P1OUT = (1<<6)|(1<<0); } } void delay(int ms) { for(i=ms;i>0;i--) for(j=0;j<255;j++); }
项目上要用430的单片机,以前没写过相关的程序,按照经典套路,拿到一个新的单片机,首先就是点亮LED,这次过程已然如此。
上面是准备做的单灯闪烁程序,延时delay()函数,括号里面最大只能填5,填6灯就不亮了。
啥情况!!
隐隐约约觉得,系统好像一直在复位,一直在复位,一直在复位,一直在复位,一直在复位,一直在复位,一直在复位,,哎呀!有狗!!!
于是加入了
WDTCTL = WDTPW + WDTHOLD;关看门狗,然后,哈哈,问题解决了,单灯闪烁正常了,一切都正常了,蓝蓝的天空白云又飘起来了。
莫非430单片机上电就启动看门狗?好吧,暂且是这个结论。