PIC单片机之看门狗_看门狗定时器工作原理

控制/MCU

1882人已加入

描述

看门狗定时器

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

工作原理

使用时,WDT将递增,直到溢出,或称“超时”。除非处于休眠或空闲模式,WDT超时会强制器件复位。为避免WDT超时复位,用户必须定期用PWRSAV或CLRWDT指令将看门狗定时器清零。如果WDT在休眠或空闲模式下超时,器件将唤醒并从PWRSAV指令执行处继续执行代码。在上述两种情况下,WDTO位(RCON《4》)都会置1,表示该器件复位或唤醒事件是由于WDT超时引起的。如果WDT将CPU从休眠或空闲模式唤醒,“休眠”状态位(RCON《3》)或“空闲”状态位(RCON《2》)也会置1,表示器件之前处于省电模式。

看门狗

在正常操作期间,一次WDT超时溢出将产生一次器件复位。当器件处于休眠状态时,一次WDT超时溢出将唤醒器件,使其继续正常操作(即称作WDT唤醒)。对WDTE设置位清零可以永久性地关闭WDT。

后分频器分配完全是由软件控制,即它可在程序执行期间随时更改。

为避免发生不可预测的器件复位,当从Timer0预分频器的分配改为WDT后分频器的分配时,必须执行下列指令序列。即使WDT被禁止,也要执行这个指令序列。

看门狗

PIC单片机之看门狗

PIC系列不同型号的单片机其,看门狗设置不同,下面是以PIC16F688单片机为例。

1.如果配置字中的WDTE=1那么后面的看门狗开关(WDT)不起作用,所以当我们程序中有休眠模式的时候我们的看门狗会一直溢出,但是溢出后是否复位,这要看单片机的具体类型了,PIC16F688在休眠唤醒后继续执行程序,不复位,但是其他的单片机看手册。如果我们程序中休眠的时候不需要看门狗,那么我们必须把看门狗关了,在唤醒的时候千万不要忘记打开看门狗。

2.单片机的一级分频是和TIME0互用的,同一时刻只能一方使用。

如果我们选用内部4M时钟且我们预分频给了定时器TIME0,那么我们的看门狗最长时间是0.262144s 那么我们采用定时器0喂狗,我们定时器0 中断的时间必须小于0.262144

否则我们就会复位

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分