历史上的今天
今天是:2025年07月03日(星期四)
2020年07月03日 | ATtiny13 看门狗定时器
2020-07-03 来源:eefocus
ATtiny13 有一个增强型的看门狗定时器 (WDT),其主要特征为:
* 独立的片上振荡器提供时钟
* 3 种工作模式
– 中断
– 系统复位
– 中断与系统复位
* 暂停时间从16ms 到8s可选
* 看门狗熔丝始终处于故障保险模式。

看门狗定时器由独立的 128 kHz 片内振荡器驱动。当计数器达到给定的溢出值时, WDT 发出中断或系统复位。在正常工作模式下,在计数器达到溢出值前,它需要系统使用看门 狗定时器复位指令来重启计数器。若系统没有重启计数器,则会出现中断或系统复位。
在中断模式下,当定时器结束 WDT 发出一个中断。该中断可将芯片从休眠状态中唤醒, 也可作为一个通用系统定时器。例如限制最大工作时间,当工作时间超出期望值时发出中 断。在系统复位模式下,当定时器结束 WDT 发出复位信号。这是为防止由于错误代码所 引起的系统挂起的典型使用。第三种模式,中断与系统复位模式,结合两种模式,首先给 出中断,然后转换到系统复位模式。使用该模式,可在系统复位前通过保存临界参数来安 全关闭。
WDTON 熔丝位编程将使看门狗定时器进入系统复位模式。对其编程时,系统复位模式位 (WDE)与中断模式位(WDTIE)分别为1和0。为保证编程安全,必须按照下面顺序来改变看 门狗设置:
1. 在一步操作中,同时对WDCE位与 WDE写"1”。无论 WDE的初始值是多少,在此 必须对其写逻辑 ”1”。
2. 在接着的四个时钟周期内,在 WDE 与WDP中写入期望值,但同时要清除WDCE 位。
下面的例子分别用汇编和C语言实现了关闭WDT的操作。在此假定中断处于用户控制之 下 ( 比如禁止全局中断 ) ,因而在执行下面程序时中断不会发生。


Note: 1. 代码例程假设包括所需头文件。
注意:若ATtiny13看门狗由于错误指针或掉电状态等使看门狗出现意外使能,芯片将复位看门狗定 时器将保持使能。如果编码没有设置处理看门狗,则可能导致溢出复位出现死循环。为避 免出现这种状况,即使没有使用看门狗,应用程序在初始化时应对 WDRF 与 WDE 控制位清零。
下面的例子分别用汇编和 C 语言实现了看门狗定时器溢出值的改变。


Note: 1. 代码例程假设包括所需头文件。
注意:看门狗定时器应在 WDP 位改变前复位,因为当改变 WDP 转换到一个短溢出周期 时可能会导致暂停。
看门狗定时器控制寄存器-WDTCR

· Bits 7–WDTIF: 看门狗定时器中断标志
当看门狗定时器出现溢出且看门狗定时器配置为中断时,该位置位。当执行相应的中断程 序时, WDTIF 由硬件清除;或者在该位写入逻辑 "1” 来清除。当 SREG 寄存器的 I 位与 WDTIE置位,执行看门狗溢出中断 。
· Bit 6 – WDTIE: 看门狗定时器中断使能
当该位与 SREG 寄存器的 I 位置位,看门狗中断使能。如果同时也将 WDE 清除,看门狗 定时器进入中断模式,一旦看门狗定时器程序暂停,则执行相应的中断。
若 WDE 置位,则看门狗定时器处于中断与系统复位模式。看门狗定时器的第一次溢出将 设置WDTIF。执行相应的中断向量将会由硬件最大清除WDTIE与WDTIF(看门狗进入系 统复位模式 )。这种方式会保证使用中断时看门狗定时器的安全性。在中断与系统复位模 式下,WDTIE在每次中断后必须设置。然而它不能在中断服务子程序中执行,因为这可 能会损害看门狗系统复位模式的安全性。如果在下一次溢出前没有程序中断,则进入系统 复位模式。

· Bit 4 – WDCE: 看门狗修改使能
该位用在改变 WDE 与预分频位的时序中。WDCE 置位来清除 WDE 位,与 / 或改变预分频位。一旦置 "1”,硬件将在四个时钟周期后对 WDCE 清零。
· Bit 3 – WDE: 看门狗系统复位使能
WDE由MCUSR寄存器的WDRF决定。这就是说当WDRF设置时,WDE也设置。要清除 WDE,必须先清除 WDRF。这一特性保证状态出错时的多重复位,及出错后的安全启动。
·Bit 5, 2..0 - WDP3..0: 看门狗定时器预分频器 3, 2, 1和 0
WDP3..0 决定看门狗定时器的预分频器。如 P39Table 17 所示。

上一篇:ATtiny13 中断向量
史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 08:59 编辑 为了组织好2010年的全国大学生信息安全技术专题邀请赛工作,根据全国大学生信息安全技术专题邀请赛竞赛组委会要求,现就参赛工作的有关事项通知如下: 一、本次竞赛,统一采用大赛提供的系统(具体 ...… 查看全部问答> |
|
今天开始学习WINCE跑2440,但是教材好垃圾,我所必需的软件和环境都装好了,但我现在只会用Microsoft eMbedded VC++编写MFC程序并(例如HELLO WORLD)放到开发板中的系统运行,但是我想实现通过界面控制硬件(就是通过上位机控制下位机的效果),应 ...… 查看全部问答> |
|
Dear all, recently I transform my project from vc6 to vs2005, it occur to the following error: d:\\Program Files\\Microsoft Visual Studio 8\\VC\\ce\\include\\xtree(1172) : error C3848: expression having type \'const CFormatter:: ...… 查看全部问答> |
|
各位大虾,小弟最近应聘了数字IC验证实习生岗位,自己一直对数字IC设计比较感兴趣,以后想从事这块的工作,想问问:数字IC验证这个岗位在芯片设计中属于什么地位?是不是可有可无?去公司了这块工作是不是算是相对核心的工作,然后就是数字IC验证和 ...… 查看全部问答> |
|
msp430的波特率计算器 给大家个好东西 做串口再也不用自己计算波特率了 msp430的波特率计算器 给大家个好东西 做串口再也不用自己计算波特率了 [ 本帖最后由 chouchick 于 2012-6-2 11:31 编辑 ]… 查看全部问答> |
|
模拟开关在音频中的应用,主讲人为产品部工程师Guoda Lian,欲知更多模拟产品及相关信息请访问:www.ti.com/analognewsletter $(\'swf_k9X\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\' ...… 查看全部问答> |




