zoukankan      html  css  js  c++  java
  • AVR编程_如何通过软件复位AVR?(转)

    源:http://blog.sina.com.cn/s/blog_493520900100bpos.html

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

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

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

    #include <avr/io.h>

    #include <avr/wdt.h>

    int main(void)

    {

      wdt_enable(WDTO_30MS);

      while(1) {};

    }

    或者你可以生成一个宏:

    #include <avr/io.h>

    #include <avr/wdt.h>

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

    int main(void)

    {

      Reset_AVR();

    }

  • 相关阅读:
    超图 wpf地图控件加载地图
    MySql常用内容
    超图资料下载与环境安装
    超图SampleCode运行须知
    英语感叹词
    英语之妻子,老婆
    Pycharm设置
    yizhihx ubuntu config
    Ubuntu之网易云音乐无法启动
    linux之错误输出重定向
  • 原文地址:https://www.cnblogs.com/LittleTiger/p/4374054.html
Copyright © 2011-2022 走看看