你不应该处理: --用另一个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(); }
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』