看门狗定时器
看门狗定时器(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
不然咱们就会复位