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