《嵌入式看门狗实验(共5页).doc》由会员分享,可在线阅读,更多相关《嵌入式看门狗实验(共5页).doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上看门狗实验 一、实验目的 学习 CC2530 片内看门狗的工作原理。 配置 CC2530 的看门狗相关的寄存器。 二、 实验环境 硬件:PC 机,EBDCC2530 节点板,USB 接口仿真器。 软件:Windows98/2000/NT/XP,IAR 集成开发环境。三、 实验原理 看门狗(WatchDog),准确的说应该是看门狗定时器,则正是专门用来监测单片机程序运行状态的电路结构。其基本原理是:启动看门狗定时器后,它就会从 0 开始计数,若程序在规定的时间间隔内没有及时对其清零,看门狗定时器就会复位系统(相当于重启电脑) 。 图 2-8-1 看门狗原理示意图 看门狗
2、的使用可以总结为:选择模式选择定时器间隔放狗喂狗。 (1)选择模式 看门狗定时器有两种模式,即“看门狗模式”和“定时器”模式。在定时器模式下,它就相当于普通的定时器,达到定时间隔会产生中断(你可以在 ioCC2530.h文件中找到其中断向量为 WDT_VECTOR);在看门狗模式下,当达到定时间隔时,不会产生中断,取而代之的是向系统发送一个复位信号。本实验中,通过 WDCTL.MODE=0 来选择为看门口模式。 (2)选择定时间隔 如上图所示,有四种可供选择的时钟周期,为了测试方便,我们选择时间间隔为 1s(即令WDCTL.INT=00)。 (3)放狗 令 WDCTL.EN=1,即可启动看门狗
3、定时器。 (4)喂狗 定时器启动之后,就会从 0 开始计数。在其计数值达到 32768 之前(即1s),若我们用以下代码喂狗: WDCTL=0xa0; WDCTL=0x50; 则定时器的计数值会被清 0,然后它会再次从 0x0000 开始计数,这样就防止了其发送复位信号,表现在开发板上就是:LED1 会一直亮着,不会闪烁;若我们不喂狗(即把此代码注释掉),那么当定时器计数达到 32768 时,就会发出复位信号,程序将会从头开始运行,表现在开发板上就是:LED1 不断闪烁,闪烁间隔为 1s。(注:喂狗程序一定要严格与上述代码一致,顺序颠倒/写错/少写一句都将起不到清 0 的作用。) 程序流程图:
4、开始系统时钟初始化LED初始化设定看门狗定时器的计数时间间隔 启动看门狗N在上述时间间隔内,喂狗?Y程序继续运行 图 2-8-2 看门狗程序流程图 四、实验步骤 1、正确连接 USB 仿真器的下载线和 EBDCC2530 节点板。 2、打开实验源码 watchdog.eww(路径为:出厂光盘 DISK-EMBV210-WSN05-Example2 基本接口实验2.8 Watchdog),编译工程,依次选择“Project”“Download and Debug”,下载到CC2530 节点板。 3、把仿真器左侧的 USB 接口拔掉,然后拔掉连接在 EBDCC2530 节点板 DBG 位置的调试接口。我们打开 EBDCC2530 节点板右下方的电源开关,此时可以观察到程序运行的情况。(在不拔掉仿真器的情况下,我们可以通过相关的调试进一步观察程序的运行情况。) 4、默认加上 FeedDog 函数,编译、下载、运行代码后,我们发现 LED1 一直亮着(系统不复位)。 5、若注释掉 FeedDog 函数,编译、下载、运行代码后,我们发现 LED1 以 1s 的间隔闪烁(系统每隔 1s 复位一次)。五、实验结果专心-专注-专业