物联与传感教程 5_第1页
物联与传感教程 5_第2页
物联与传感教程 5_第3页
物联与传感教程 5_第4页
物联与传感教程 5_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务3.3设备复位的设计与实现在绿色智慧校园安防预警系统中,设备复位的重要性不可忽视。首先,设备复位能够确保系统在发生故障或误报后迅速恢复正常运行,避免因设备失灵导致的安全隐患。其次,定期复位设备有助于清除缓存和错误数据,提升系统的响应速度和准确性,从而提高整体安防效率。此外,设备复位还可以延长设备的使用寿命,减少维护成本,确保系统的长期稳定性。通过有效的设备复位机制,校园能够在突发事件中迅速反应,保障师生的安全和校园的正常秩序。因此,建立完善的设备复位流程是绿色智慧校园安防预警系统不可或缺的一部分。本项目将结合CC2530单片机的看门狗功能,现实宕机设备的复位。引入目录第一章节

看门狗01看门狗基本原理02CC2530看门狗03CC2530看门狗寄存器第二章节

任务设计与实现01硬件分析02编程设计03编程实现第一章节

看门狗01看门狗基本原理02CC2530看门狗03CC2530看门狗寄存器知识点01看门狗基本原理第一章节

看门狗看门狗定时器(WDT,WatchDogTimer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个数字,程序开始运行后看门狗开始倒计数。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始倒计数。如果看门狗减到0就认为程序没有正常工作,强制整个系统复位。看门狗基本原理第一章节

看门狗看门狗,是一个定时器电路,一般有一个输入,叫喂狗(kickingthedogorservicethedog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零。如果超过规定的时间不喂狗(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,使MCU复位以此防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。看门狗基本原理第一章节

看门狗知识点02CC2530看门狗第一章节

看门狗CC2530单片机看门狗定时器特性在定时器模式下产生中断请求定时器模式看门狗模式四个可选的定时器间隔CC2530看门狗CC2530单片机看门狗定时器有以下特性第一章节

看门狗CC2530看门狗定时器之看门狗模式在CC2530单片机系统复位之后,看门狗定时器同时被复位。此时要设置WDT为看门狗模式,必须从新设置WDCTL.MODE[1:0]位为10。然后启动看门狗,看门狗定时器的计数器就会从0开始递增。在看门狗模式下,一旦定时器使能,就不可以禁用该定时器,因此如果WDT位已经运行在看门狗模式下,再往WDCTL.MODE[1:0]写入00或10就不起作用了。CC2530看门狗第一章节

看门狗CC2530看门狗定时器之定时器模式CC2530的看门狗定时器可以直接配置为定时器来使用,若要将WDT设置为一般定时器模式,必须把WDCTL.MODE[1:0]位设置为11。设置成功后定时器开始执行,且计数器从0开始递增。当计数器达到设定的计数值后,定时器将产生一个中断请求(IRCON2.WDTIF/IEN2.WDTIE)。CC2530看门狗第一章节

看门狗知识点03CC2530看门狗寄存器第一章节

看门狗CC2530的看门狗的配置寄存器只有一个WDCTL(看门狗控制寄存器)。位名称复位R/W描述7:4CLR[3:0]0000R0/W清除定时器。当0xA跟随0x5写到这些位,定时器被清除(即加载0)。注意定时器仅写入0xA后,在1个看门狗时钟周期内写入0x5时被清除。当看门狗定时器是IDLE为时写这些位没有影响。当运行在定时器模式,定时器可以通过写1到CLR[0](不管其他3位)被清除为0x0000(但是不停止)。3:2MODE[1:0]00R/W模式选择。该位用于启动WDT处于看门狗模式还是定时器模式。当处于定时器模式,设置这些位为IDLE将停止定时器。注意:当运行在定时器模式时要转换到看门狗模式,首先停止WDT,然后启动WDT处于看门狗模式。当运行在看门狗模式,写这些位没有影响。00:IDLE01:IDLE(未使用,等于00设置)10:看门狗模式11:定时器模式1:0INT[1:0]00R/W定时器间隔选择。这些位选择定时器间隔定义为32kHz振荡器周期的规定数。注意间隔只能在WDT处于IDLE时改变,这样间隔必须在定时器启动的同时设置。00:定时周期×32,768(~1s)当运行在32kHzXOSC01:定时周期×8192(~0.25s)10:定时周期×512(~15.625ms)11:定时周期×64(~1.9ms)当通过CLKCONCMD.CLKSPD使能时钟分频时,看门狗定时器的长度间隔减少一个等于当前振荡器时钟频率除以设定时钟的因数速度。例如,如果选择32-MHx晶体并且时钟速度被设置为4MHz,则看门狗超时时间减少了32MHz/4MHz=8倍。如果看门狗时间间隔由WDCTL.INT设置是1秒,名义上是这个时钟分频因子的1/8秒。CC2530看门狗寄存器第一章节

看门狗本章节回顾看门狗基本原理看门狗基本概念看门狗基本原理CC2530看门狗CC2530看门狗的特性CC2530看门狗的看门狗模式CC2530看门狗的定时器模式CC2530看门狗寄存器看门狗控制寄存器第一章节

看门狗第二章节

任务设计与实现01硬件分析02编程设计03编程实现知识点01硬件分析第二章节

任务设计与实现项目硬件框图硬件分析本项目框架图如图所示:第二章节

任务设计与实现知识点02编程设计第二章节

任务设计与实现首先初始化了系统时钟、LED、按键和看门狗;初始化之后关闭LED1灯与LED2灯,并延时500ms;之后程序进入主循环,主循环中先打开LED1灯与LED2灯,如果没有检测到K1按键按下,则系统不断复位,LED1灯与LED2灯不断闪烁;如果检测到K1按键按下,延时消抖等待10ms,待电平稳定后如果按键依旧处于按下状态则确定K1按键被按下,则执行喂狗操作,系统不再复位。01020304程序宕机后要让设备自动重启就需要用到CC2530微处理器看门狗,通过配置CC2530微处理器的看门狗外设,通过模拟喂狗以保持程序正常运行,中断喂狗则程序复位重启。CC2530看门狗的的配置比较简单,主要就是对WDCTL寄存器的配置,首先开启IDLE功能,功能开启后通过WDCTL寄存器低两位配置喂狗时间即可。喂狗操作则是依次向WDCTL寄存器写入0x0A和0x05即可。程序设计流程如下:编程设计第二章节

任务设计与实现编程设计本项目流程图如下图所示:第二章节

任务设计与实现/****************************************************名称:watchdog_init()*功能:看门狗初始化****************************************************/voidwatchdog_init(void){WDCTL=0x00;//打开IDLE才能设置看门狗WDCTL|=0x08;//定时器间隔选择,间隔一秒}/************************************************************************名称:feet_dog()*功能:喂狗操作***************************************************************************/voidfeet_dog(void){WDCTL=0xa0;//清除定时器。当0xA跟随0x5写到这些位,定时器被清除WDCTL=0x50;}voidmain(void){xtal_init();//CC2530时钟初始化

led_init();//LED灯管脚初始化

key_init();//按键的控制端口初始化

watchdog_init();//看门狗初始化

D1=OFF;//D1熄灭

D2=OFF;//D2熄灭

delay_ms(500);//延时500ms

while(1){D1=ON;

//D1点亮

D2=ON;//D2点亮

if(K1==DOWN)//按键按下

{delay_ms(10);//按键防抖

if(K1==DOWN)//再次检测按键按下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论