历史上的今天
今天是:2025年02月21日(星期五)
2020年02月21日 | PIC看门狗定时器WDT的理解
2020-02-21 来源:eefocus
简介: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,使系统无法正常工作。
史海拾趣
|
通信是信息的交流与传递,而通信技术是信息交换与传递的手段。远古时代的人们利用表情或手势的形式进行思想交流;后来人类发明了语言,可以用来表达更丰富的思想和信息,但语言的交流只能面对面地进行;文字的创造、印刷术的发明,使信息能够超越时 ...… 查看全部问答> |
|
各位能否推荐一8位模数芯片,AD/DA集成到一个片子上的,最好是I2C接口,或spi接口的,我知道一款,但不好买,各位仁兄还知道有没有其他的吗?小弟在此先谢了啊… 查看全部问答> |
|
我想用WinIO.sys获取cpu的当前温度,为什么程序老是失败,temp_dwPortVal=0xffffffff 在头文件中导入: #include \"WinIO.h\" #pragma comment(lib,\"WinIo.lib\") 在实现中: DWORD temp_dwPortVal=0;   ...… 查看全部问答> |
|
我的屏幕的分辨率为800*480.那么对应的屏幕坐标为(3200,1920)?。。我现在出现的问题是,平常的操作基本正常,但是无法出现右键,AYGSHELL组件也已经选了。是不是抖动问题?但是我在DdsiTouchPanelGetPoint中保存第一次按下时的坐标,在弹起之前 ...… 查看全部问答> |
|
请较一个STM32F103V8读保护的问题。 我现在的PCB没有做SRAM的启动方式(我将BOOT1接GND了,BOOT0有选择高低),外部接口就只留了一个SWD的调试方式,请问一下,如果我在程序中将读保护置为有效后,再用SWD能搽出吗并更新程序吗? 还是说必须 ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:37 编辑 今年大赛做B题基于自由摆的平板控制系统的参赛者有时间可以而看看,这个论文感觉就是我们试题B的出处!由于文件太大。。采用分卷压缩的!将3个附件同时下载下来即可解压! … 查看全部问答> |




