与非网论坛

标题: 【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(4) [打印本页]

作者: zhangyi555    时间: 2014-8-23 00:57
标题: 【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(4)
本文将介绍智能小车制作过程中看门狗程序。
        门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在 某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗 以保证所选择的定时溢出归零,使处理器重新启动。
        原来看门狗程序就是用来 重启动单片机的,当程序出错时。
        好吧,废话不多说了,点打开ASF Explorer 菜单下的  ASFWizard       
        看到最下面有个 WDT--Watchdog Timer  选中,然后点击配置       
        然后就会在ASF Explorer 中出现了 ,展开WDT       
        双击  Quick Start Guide,你会发现奇迹 哈哈   不得不赞一下 ASF真的是很棒的软件平台,不管你怎么看,I like it !
           wdt_set_timeout_period(WDT_TIMEOUT_PERIOD_8CLK);       
        2. Enable WDT:    //WDT使能 wdt_enable();
        使用WDT时 ,只需在MAIN函数中加入上面的代码,再在程序中加入       
        3.   wdt_reset();
        我估计它的工作流程就是 首先设置WDT计数器的长度值,然后它会开始自动计数,主程序正常运行时,它的计数器会自动清零,如果主程序卡住了或者跑飞了,出故障了,它的计数器就会一直累加到设定的值,然后就会判定现在出现了故障,启动reset()来软件复位。是不是好简单! 用ASF 来开发自己的程序代码
         小结: WDT是一种用软件来重新启动的方法。 记得89C51 和 ATmega128 的最小系统板上都有复位按钮,这是用硬件来复位的。 然后就想到A3BU Xplained板子上有3个按钮+1个触屏按钮,哪个是用做来复位的?  查看了板子的PCB图                  
         原来XMEGA256芯片也是可以硬件复位的的,但是A3BU Xplained板上上面没有增设这一功能,而是在JTAG仿真时用到了硬件复位 。所以我们在自己的程序中加入WDT的代码 还是很有必要的。




欢迎光临 与非网论坛 (https://www.eefocus.com/forum/) Powered by Discuz! X3.5