大致应该这样(测试速度比23楼快): #define SOFT_DOG_TIME XX // xx小于硬件狗溢出时间的一半 volatile bit flg_soft_dog=1;//注意加volatile,好像Keil的bit不需要 main() { ... while(1) { ... //----------------- flg_soft_dog = 1; //----------------- ... } }
time_interrupt() //通用定时器 { static uchar soft_dog_timer=0;//应该用局部变量,最好少用全局变量 ... //-------------------------- if(flg_soft_dog) { flg_soft_dog = 0; soft_dog_timer = 0; } else { soft_dog_timer++; if(soft_dog_timer>=SOFT_DOG_TIME) { soft_dog_timer = 0; soft_reset(); //软件复位 } //-------------------------- } ... }
|
|
文章评论(0条评论)
登录后参与讨论