×
单片机 > 单片机程序设计 > 详情

AVR编程_如何通过软件复位AVR?

发布时间:2021-04-25 发布时间:
|

Question

如何通过软件复位AVR?


Answer

如果你想通过软件复位AVR,你应该使用内部看门狗。简单的使能它和让它溢出。当看门狗触发后,程序计数器返回到0,清除所有的寄存器和其他正在执行的任务,这与将RESET脚拉低有同样的效果。


你不应该处理: --用另一个AVR的引脚连接外部RESET引脚。在短暂的复位时间,AVR的引脚会三态失效,这会导致RESET无效。 --跳到程序地址0,跳到程序地址0,这不会清除全部的寄存器,所以你不会得到一个完整的“复位”。


下列是每30mS复位一次AVR的例子代码(GCC):


#include


#include


int main(void)


{


  wdt_enable(WDTO_30MS);


  while(1) {};


}


或者你可以生成一个宏:


#include


#include


#define Reset_AVR()    wdt_enable(WDTO_30MS); while(1) {}


int main(void)


{


  Reset_AVR();


}




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码