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 看门狗 定时器
引用地址:
PIC看门狗定时器的理解
推荐阅读最新更新时间:2024-03-16 13:23
基于STM8SF103定时器的使用方法解析
看了网上的资源,都不怎么好用,于是决定总结总结,记录下定时器的简单实用方法。 环境: STM8SF103 ,仿真器为:STLINK TIM4 属于8位定时器,最大128分频。 这个定时器的时钟源是系统时钟源(fMaster),然后直接通过预分频器分频后供CK_CNT使用。如:系统频率为4MHz,经过128分频后,提供给定时器使用的频率就为 31250Hz 因为项目需要,我这里使用的内部RC 16MHz振荡器,并进行LSI 4分频,所以主频为4MHz。 //main.c voidInit_TIm4(void) { /*很多人都是在这里装填0xFF,其实是为了让PSC尽快生效,对于PSC的设置,需要在下一个更新事件时才会
[单片机]
【STC15库函数上手笔记】5、定时器
STC实验箱4 IAP15W4K58S4 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 硬知识 摘自《STC库函数使用参考》 定时器初始化函数 Timer_Inilize TIM_InitTypeDef的定义见于文件 timer.H . typedef struct { u8 TIM_Mode; //工作模式 u8 TIM_Polity; //优先级设置 u8 TIM_Interrupt; //中断允许 u8 TIM_CIkSource; //时钟源 u8 TIM CIkOut; //可编程时钟输出
[单片机]
单片机通过定时器来实现多任务
在单片机系统中,有许多情况下需要等待某个事件的发生,来继续下一步操作,如果有一个任务还好说,单片机可以无限等待事件的发生,但是如果单片机要处理多个事件时,这种系统一般不能实现,除非用中断,对!用中断,但是中断源的数量是有限的,并且有很多中断源是针对特殊用处,这样能给我自由分配的中断源就只有定时器中断和外部中断,如果仅使用这几个中断源来实现异步,这样可实现的异步事件时非常有限的,每个中断源完成一个异步事件,效率是相当低,大大降低了系统的性能,降低了定时器的利用率. 因此在这里我考虑使用定时器中断来实现多个事件的异步,一个定时器如何实现多个任务的并发? 在这里使用一个任务一个计数器,根据任务实时性的强弱,来设计任务计数器的计数溢出值,
[单片机]
PIC单片机之PWM原理
1,什么是PWM 什么是PWM,专业点说脉宽调制,通俗点说 就是不断的输出高低电平。 比如 单片机 40ms的时间 输出高电平然后60ms的时间 输出低电平接着一直不断周期性的交替输出高低电平 这就是典型的PWM波。高电平输出的时间40ms就是传说中的脉宽,40ms+60ms=100ms 便是PWM的周期。假定我们把周期定为100ms.我们可以根据我们的需要 把高电平的时间加大或者减小,比如 高电平输出时间加大为80ms.那么低电平的时间就变为20ms. 也可以 高电平输出时间减小为20ms.那么低电平的时间就变为80ms.这即是脉宽调制 调的便是这高电平的时间。 而高电平(脉宽)在周期中,所占用的时间比例 就被称为占空比。用
[单片机]
定时器定时1ms子程序
定时器定时1ms子程序: void Timer0IntRoute( void ) interrupt 1 { TL0 = -1000; //由于TL0只有8bits,所以将(-1000)低8位赋给TL0 TH0 = (-1000) 8; //取(-1000)的高8位赋给TH0,重新定时1ms ; } void Timer0Init( void ) { TMOD=(TMOD & 0xf0) | 0x01; //初始化,定时器T0,工作方式1 //定时1ms TH0 = (-1000) 8; TL0 = -1000; TR0 = 1; //允许T0开始计数 ET0 = 1; //允许T0计数溢出
[单片机]
51单片机定时器和计数器区别
在51单片机的学习过程中,我们经常会发现中断、计数器/定时器、串口是学习单片机的难点,对于初学者来说,这几部分的内容很难理解。但是我个人觉得这几部分内容是单片机学习的重点,如果在一个学期的课堂学习或者自学中没有理解这几部分内容,那就等于还没有掌握51单片机,那更谈不上单片机的开发了,我们都知道在成品的单片机项目中,有很多是以这几部分为理论基础的,万年历是以定时器为主的,报警器是以中断为主的,联机通讯是以串口为主的。 在这几部分内容中,计数器/定时器对于初学者说很容易搞混淆,下面我将对这方面的内容结合自己的学习经验谈几点看法。 计数器和定时器的本质是相同的,他们都是对单片机中产生的脉冲进行计数,只不过计数器是单片机外部触发的脉冲,定
[单片机]
STM32L0Cube之低功耗定时器LPTIM编程笔记
1 在STM32Cube中激活LPTIM 一.LPTIM超时产生中断详解 使用的库函数为: HAL_StatusTypeDefHAL_LPTIM_TimeOut_Start_IT(LPTIM_HandleTypeDef *hlptim, uint32_t Period,uint32_t Timeout) 定时时间的计算公式: /* Timeout = (Compare + 1) / LPTIM_Clock Timeout = (Period + 1) / LPTIM_Clock LPTIM_Clock:低功耗定时器时钟:在CUBU软件中 具体使用到哪一个时钟,就选这个时钟作为计算
[单片机]
AT89S52的看门狗定时器详情分析
AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。 AT89S52主要性能: 1、与MCS-51单片机产品兼容; 2、8K字节在系统可编程Flash存储器; 3、1000次擦写周期; 4、全静态操作:0Hz-33MHz; 5、三级加密程序存储器; 6、32个可编程I/O口线; 7、
[单片机]