PIC看门狗定时器WDT的理解

发布者:BlissfulWhisper最新更新时间:2020-02-21 来源: eefocus关键字:PIC  看门狗定时器  WDT 手机看文章 扫描二维码
随时随地手机看文章

简介:pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在PIC16C5X 芯片内有一个特殊的谓之"定义EPROM"(Configuration EPROM)的单元,其中的一个位是用于定义WDT的。


pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在PIC16C5X 芯片内有一个特殊的谓之"定义EPROM"(Configuration EPROM)的单元,其中的一个位是用于定义WDT的。你可以将其置"0"来抑制WDT使之永远不起作用。这将在第七章的烧写器介绍部分详细说明,请参阅。


1、WDT周期


WDT有一个基本的溢出周期16ms(无预分频器pic16F917),如果你需要更长的WDT周期,可以把预分频器分配给WDT,最大分频比可达1:128,这时的WDT溢出周期约为2.5S。pic16F917看门狗还提供了一个16位的预分频器,使WTD的超时值提高到268s。WDT溢出周期和环境温度、VDD等参数有关系,请参阅附录的图表。


"CLRWDT"和"SLEEP"指令将清除WDT计时器以及预分频器里已有的计数值(当预分频器分配给WDT时)。WDT一般用来防止系统失控或者说防止单片机程序运行"失控"。在正常情况下,WDT应在计满溢出前被CLRWDT指令清零,以防止产生RESET。如果程序由于某种干扰而失控,那么不能在WDT溢出前执行一条CLRWDT指令,就会使WDT溢出而产生RESET,使系统重新启动运行而不至失去控制。若WDT溢出产生RESET,则状态寄存器STATUS的"TO"位会被清零,用户程序可藉此判断复位是否由WDT溢时所造成。


2、pic单片机WDT编程注意事项


如果使用WDT,一定要仔细在程序中的某些地方放一条"CLRWDT"指令,以保证在WDT在溢出前能被请零。否则会造成芯片不停地产生RESET,使系统无法正常工作。

关键字:PIC  看门狗定时器  WDT 引用地址:PIC看门狗定时器WDT的理解

上一篇:PIC单片机温度测量领域应用及Protues仿真调试
下一篇:DIY自制PIC单片机编程器电路PCB

推荐阅读最新更新时间:2024-11-12 12:37

PIC最简约的PWM波形产生程序(PIC16F877A)
// Author : Ma Kai // Date : 2011/05/14 // Function : CCP1模块产生规定占空比的PWM波形 // MCU : PIC16F877A // C Compiler : PICC 9.60 // IDE : MPLAB IDE v8.10 #include pic.h __CONFIG(0x1832); void main() { T2CON=0X04; //打开定时器2 PR2=0X30; //PWM 的工作周期(可以调整频率1/T)=(PR2+1)*4*Tosc*TMR2预分频比 CCPR1L=0X0
[单片机]
PIC 定时器0中断
#include //调用头文件,可以去PICC18软件下去查找PIC18FXX2.H __CONFIG(1,XT) ; //晶振为外部4M __CONFIG(2,WDTDIS) ; //看门狗关闭 __CONFIG(4,LVPDIS) ; //禁止低电压编程 #define uint unsigned int #define uchar unsigned char uint count=0; void timer0init(void) { T0CS=0; //TMR0工作于定时器方式 PSA=1; //TMR0不分频 TMR0IF=0; //TMR0IF是中断标志,定时一段时
[单片机]
pic单片机计数
1 #include pic.h //用的是PICC编译器 2 __CONFIG (HS & PROTECT & PWRTEN & BOREN & WDTDIS); 3 //PIC单片机都需要配置该位,HS是外部晶振模式 4 // 使能PROTECT保护程序存储器 5 //BOREN使能掉电保护 6 7 //WDTDIS关闭看门狗 8 void display(int pulse_amount); 9 void
[单片机]
PIC单片机开发环境_PIC单片机引脚的三种状态
  PIC单片机开发环境   1.PIC单片机的开发环境常用的是MPLAB, MPLAB可以从微芯公司网站上下载;这个开发环境自带的是汇编程序的编译器,如果想用C语言做开发,那么需要下载相应的C语言编译器并安装,配套的C语言编译器为 MPLAB-C18, 可以从微芯公司网站上下载。   2.首先下载好MPLAB和MPLAB-C18两个软件并解压。   首先安装MPLAB,解压好的MPLAB如下图所示:   双击setup,前半部分直接点击next即可,到中间部分会出现如下图所示的选择框:   这里可以选择是,后面的点击next即可。MPLAB安装完成之后,重启系统(这一步很重要)。   接着安装 MPLAB-C
[单片机]
<font color='red'>PIC</font>单片机开发环境_<font color='red'>PIC</font>单片机引脚的三种状态
PIC12F508单片机学习之三—按键唤醒
PIC12F508单片机是没有中断的,按键中断只能是查询方式。 编译器用的XC8,编译环境IDE用的是MPLAB X IDE。 下载器是PICKIT3. //*************************************************** // __________________ // VDD-| 1 8 |-VSS // GP5-| 2 27 |-GP0/DAT // GP4-| 3 26 |-GP1/CLK //GP3/RMCLR--| 4 25 |-GP2 // |_______________
[单片机]
PIC 单片机软件编程技巧
控制部分采用P IC l6F7X系列 单片机 ,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1、 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: list P=16c73 call lefthand
[单片机]
PIC单片机警报声程序设计
pIC16c54警报声程序 #include“pic.h” #definebeep_outRA2//音效输出 chartmr_buff; charcycle_buff; charcycle_set; intchange_set; intchange_count; bitchange_flag; voidmain(void) {TRISA=0X0; PORTA=0; OP TI ON=4; cycle_buff=52; cycle_set=100; change_set=196; TMR0=0; while(1) { if(TMR0==0) {TMR0=(cycle_set-1)^0XFF; beep_out=!beep_ou
[单片机]
<font color='red'>PIC</font>单片机警报声程序设计
PIC单片机控制DS18B20数字温度传感器原理及实现
#include pic.h #define uchar unsigned char #define uint unsigned int #define DQ RC1 #define DQ_HIGH() TRISC1=1 #define DQ_LOW() TRISC1=0;DQ=0 __CONFIG(0x3B31); const uchar table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f}; const uchar table1 ={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved