查看: 42|回复: 0

【连载】基于AVR XMEGA-A3BU Xplained控制器的Wifi小车制作(4)

[复制链接]

主题

好友

2

积分

白丁

  • TA的每日心情

    2014-8-28 17:09
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2014-8-23 00:57:42 |显示全部楼层
    本文将介绍智能小车制作过程中看门狗程序。
            门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在 某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使系统恢复正常的工作状态,即在程序没有正常运行期间,如期复位看门狗 以保证所选择的定时溢出归零,使处理器重新启动。
            原来看门狗程序就是用来 重启动单片机的,当程序出错时。
            好吧,废话不多说了,点打开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的代码 还是很有必要的。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /4 下一条

    手机版|电路城

    GMT+8, 2019-7-20 01:36 , Processed in 0.075698 second(s), 14 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz!

    返回顶部