与非网论坛
标题:
【连载】基于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 !
Set timeout period to 8 cycles or 8 ms://这句是设置WDT计数器的计数长度
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