看门狗定时器课件教学文案
看门狗定时器

System Frequency/4
0.27306s
註:System Frequency 爲 480KHz。
總共有三種方法會産生系統重置,如下所示:
• RES 正常操作時由
引腳發生重置
• RES 在暫停模式由
引腳發生重置
• 正常操作時由看門狗定時器超時發生重置
暫停模式中的看門狗定時器超時與其他系統重置狀況不同,因爲看門狗定時器超時會執行
,則
過程中 次執行
都 此還 夠 實現 ″ ″ CLR WDT1 指令 不能清除看門狗定時器,因
是能 産生 WDT 溢出,
系統重
從 置, 而跳出閉環狀態。
3
就 避免 現 當 迴圈後 例 可以
這種情況的出 。 程式進入
, 如:
…… LOOP:
CLR WDT1
…… …… SZ
JMP LOOP
……CLR WDT2
第 句 為 ;在 loop 中執行 一 清除 ″0″ WDT 指令 後 第 句 為 ;在 loop 執行 二 清除 ″0″ WDT 指令
第 夠 若 死迴圈 迴圈 再 ″ ″ 一次執行 CLR WDT1 指令能 清除 WDT, 發生
令必須交換執行才能清除看門狗定時器的內容,否則,看門狗定時器很可能會因爲超時而 將系統重置。
1
HT47R20A-1 看門狗定時器(WDT)使用介紹
″ ″ 15
看門狗溢出時間周期爲 時鐘來源 /2 ,如下表所示。
時鐘來源
看門狗溢出周期
12KHz(WDTCLK)
2.73066s
32KHz(RTC)
1.00000s
……
CLR WDT2
;可以清除看門狗定時器的內容
MICROCHIP WDT

公式 9-1:
WDT 超时周期
WDT 周期 (ms)= 预分频因数 x 后分频因数
其中:
预分频因数
= 1, WDTPRE 为 0 时
4, WDTPRE 为 1 时
后分频因数
= 1/ 后分频比
9.2.6 WDT 在休眠和空闲模式下的操作
如果 WDT 使能,它将在休眠或空闲模式下继续运行。发生 WDT 超时时将唤醒器件,代码将从 执行指令处继续执行。
WDT 对低功耗系统设计很有用,因为它可用于将器件定期从休眠模式唤醒,检查系统状态,并在必 要时执行操作。请注意,SWDTEN 位在这方面很有用。若正常工作时将 WDT 禁止(FWDTEN = 0), 则 SWDTEN 位 (RCON<5>)可用于在器件即将进入休眠模式前打开 WDT。
9.2.5 复位看门狗定时器
WDT 计数器和相关预分频器、后分频器在以下情况下复位:
• 任何器件复位时 • PWRSAV 指令执行时 (即进入休眠或空闲模式时) • WDT 由软件使能时 • 时钟切换完成后,由软件(即改变 NOSC 位后将 OSWEN 位置 1)或硬件(即故障保护时钟
监视器)启动 • 正常执行过程中或 WDT 超时周期的后 25% (WINDIS 为 0 时),通过 CLRWDT 指令复位
答:确定包含 CLRWDT 指令的软件循环符合 WDT 的最小值规范 (不是典型值)。而且,确定考 虑到了中断处理时间。
问 2:
在应用程序中使用 WDT 有哪些好的技巧?
答:有许多技巧有助于在使用 WDT 时防止应用程序锁死或跑飞。仔细分析这些技巧您会发现, 它们中的大多数都建立在三条基本原则之上:
看门狗定时器课件

• 所谓程序跑飞就是PC指针没有按照预定的程序变更,可 能PC指针指向一个不确定的或者根本就没有存放用户代 码的程序存贮空间,造成PC指针根本无法恢复到用户代 码空间之内,程序跑飞,当发生中断时,中断服务程序 代码仍然可以被执行。
• 在工业现场,往往会由于供电电源、空间电磁干扰或其 他原因引起强烈的干扰信号噪声。这些干扰信号作用于 数字器件,极易引发错误动作,引起“程序跑飞”事故 !
bit
相关内容
15-8 口令
7
HOLD
6
NMIES
5
NMI
4
TMSEL
3
CNTCL
2
SSEL
1
IS1
0
IS0
NMI
选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端;
1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断 HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
#define __MSP430_HAS_WDT__ SFR_16BIT(WDTCTL); #define WDTIS0 (0x0001) #define WDTIS1 (0x0002) #define WDTSSEL (0x0004) #define WDTCNTCL (0x0008) #define WDTTMSEL (0x0010) #define WDTNMI (0x0020) #define WDTNMIES (0x0040) #define WDTHOLD (0x0080) #define WDTPW (0x5A00) #define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) #define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) #define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) #define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) #define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) #define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) #define WDT_MRST_32 (WDTPW+WDTCNTCL) #define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) #define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) #define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) #define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) #define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) #define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) #define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)
第21章 看门狗定时器使用及简单的接口扩展

第21章看门狗定时器使用及简单的接口扩展21.1看门狗定时器使用单片机应用系统受到干扰而导致死机出错后,都要进行复位,因此一定要有一个可靠的复位电路,以使单片机重启工作。
现在已经有专用的复位电路芯片供我们选用,专用的复位芯片具有快速上电复位、欠压复位等功能。
图21-1为看门狗电路的工作原理。
如果单片机工作工常,则会经常地将看门狗定时器(WDT)清除,那么看门狗定时器就不会溢出复位信号,应用系统正常工作;反之,若单片机工作不正常,程序跑飞或进入死循环,那么它不会去清除看门狗定时器,一段时间后,WDT溢出,输出复位信号给单片机,单片机重新启动工作。
图21-1 看门狗电路的工作原理A T89C51没有内置的看门狗定时器,在干扰严重的场合工作时,需要外部的看门狗定时器配合工作。
而新型的AT89S51已经在内部集成了看门狗定时器,无需再外添元件,使用方便可靠。
下面我们通过实例介绍其使用。
A T89S51的看门狗定时器实际上是一个14位的计数器,其地址位于A6H,第一次激活(启动)时,需依次向其写入01EH、0E1H。
以后每次写入01EH、0E1H是将看门狗定时器清除。
如不及时清除(例如单片机受干扰影响死机后),在16383个机器周期后将溢出,从而复位单片机令它重新启动。
21.2 P0~P3口的32个LED(发光管)依次流水点亮,形成“流水灯”实验我们这个实验是在看门狗启动的情况下做的,为了缩短程序长度,我们使用移位指令进行循环。
21.2.1 实现方法根据LED输出试验板上的P0~P3口排列,确定流水灯点亮顺序:P1.0→P1.7→P3.0→P3.7→P2.0→P2.7→P0.7→P0.0,反复循环。
每个口只有8位,4个口共有32个流水灯移位。
在寄存器R0中存入一个口流水灯长度(8位),再取点亮一个流水灯的立即数(如FEH)送累加器A中。
累加器A采用左循环或右循环移位,每移一次,送对应口显示,同时R0中长度减1,……等到R0中内容为零后,说明这个口的流水动作已结束。
看门狗定时器

一、外部看门狗
一般硬件设计的时候使用芯片外部看门狗,该看门狗使用一个不停翻转GPIO来控制。
二、内部看门狗
一般ARM芯片都是有内部看门狗模块。
S5PV210内部看门狗模块有两个功能:
1、作为看门狗。
打开看门口狗后,如果没有“喂狗”,看门狗计数值减到0,会产生一个reset信号,S5PV210就会复位,从BL0重新执行代码。
2、普通的定时器。
可以产生周期性的中断。
三、210看门狗模块的框图
1、看门狗“喂狗”就是向计数寄存器赋一个新的计数值。
2、看门狗clock(基准周期)=
四、看门狗的寄存器
1、WTCON
2、WTDA T
3、WTCNT
4、WTCLRINT
五、实验程序。
第12章看门狗PPT课件

2020/10/13
2
(4) 3个WD检验位。若WD定时器失效,则启动系统复位。 (5) 一旦系统复位后,WD定时器就自动启动。
2020/10/13
3
WDCLK WD预定
标选择
WD复位 关键字 寄存器
8位WD计 数器
位6:WDDIS,看门狗禁止位。 0:看门狗被使能。 1:看门狗被禁止。
2020/10/13
7
位5-位3:WDCHK2-WDCHK0。当向WDCR控制寄存器写时, 这三位必须被写为101,否则产生系统复位。
位2-位0:WDPS2-WDPS0,看门狗预定标选择位。这些位决 定了看门狗的溢出频率,如下页表所示。
2020/10/13
8
谢谢您的指导
THANK YOU FOR YOUR GUIDANCE.
感谢阅读!为了方便学习和使用,本文档的内容可以在下载后随意修改,调整和打印。欢迎下载!
汇报人:XXXX 日期:20XX年XX月XX日
(即进入HALT模式),WDCLK被停止(悬挂)。
202ቤተ መጻሕፍቲ ባይዱ/10/13
5
12. 3 WD控制寄存器 共有3个寄存器控制WD的操作: (1) WD计数寄存器(WDCNTR)—8位,为8位WD计数器的值,
只读。 在向WD复位关键字寄存器(WDKEY)写入55h+AAh后,会清零
WDCNTR。 (2) 写入WD复位关键字寄存器(WDKEY) —55h+AAh,则清0
55h+AAh 探测器
系统复 判断 位请求
逻辑
WD检验 位
WD模块结构框图
第十八章看门狗定时器

第十八章看门狗定时器概述S3C2410的看门狗定时器用于当系统被噪声或系统错误等故障打断时返回控制器操作状态。
它可以用作一个普通的16位内部定时器来请求中断。
WDT产生一个128个PCLK周期的复位信号。
特性—具有中断请求的正常内部定时器模式—当定时器计数值到达0时产生一个128个PCLK周期的内部复位信号看门狗定时器操作图18-1描述了WDT的功能方框图。
WDT只使用PCLK作为其时钟源。
PCLK 频率经过预定标器,然后再进行分频产生相应的WDT时钟。
预定标器的值和分频因数在WDT控制寄存器WTCON中指定,有效的预定标器的值在0-(2的8次方-1)之间,分频因数可选为16、32、64、128。
使用下式计算WDT频率和每个定时器时钟周期的容差t_watchdog = 1/( PCLK / (Prescaler value + 1) / Division_factor )WTDAT和WTCNT一旦WDT使能,WTDAT寄存器的值不能自动加载进WTCNT,因此必须在WDT启动前向WTCNT写入初始值。
调试环境的考虑当S3C2410在使用嵌入式ICE调试模式时,WDT将自动关闭。
WDT可以通过CPU核心信号--DBGACK判断当前是否处于调试模式,一旦DBGACK信号被断言,WDT的复位输出将会无效,因为看门狗被中止工作。
WDT控制寄存器WTCONWTCON寄存器允许使能/禁止WDT、选择4个不同的时钟信号源、使能/禁止中断、使能/禁止WDT输出。
WDT用于从故障后复位CPU,如果不需要复位,则应该禁止WDT。
如果希望将WDT用作普通定时器,使能中断并关闭看门狗。
WDT数据寄存器WTDATWTDAT寄存器中的值指定溢出的时间。
它不会在初始化WDT时自动加载到WTCNT中,但是用0x8000(初始值)将导致第一次溢出。
这种情况下,WTDAT的值将自动加载到WTCNT中。
WDT计数寄存器WTCNT显示WDT的当前值。
时钟与看门狗介绍PPT课件

通过下图中可以看到,C28X内核时钟输出,通过LOSPCP低速时钟寄存器设置预分 频,成低速时钟信号LSPCLK,SPI,I2C,MCBSP这些串口通信都是使用的低速时钟信号。 通过HISPCP高速时钟寄存器设置预分频,成高速时钟信号HSPCLK,AD模块采用的是高 速时钟信号,方便灵活设置AD采样率。通过1/2分频给了eCAN模块。直接输出给了系统 控制寄存器模块、DMA模块、EPWM模块、ECAP模块、EQEP模块这些高速外设模块。 当然这些外设基本都有自己的预定标时钟设置寄存器,如果预定标寄存器值为0的话,那 么LSPCLK等时钟信号就成为了外设实际使用时钟信号。当然要使用这些信号需要在外设 时钟寄存器PCLKCR中设置该对应外设使能。
锁相环模块除了为C28X内核提供时钟外,还通过系统时钟输出提供快速和慢速2种 外设时钟。如果使能内部PLL电路,那么可以通过控制寄存器PLLCR软件设置系统的工作 频率。但是要注意,在通过软件改变工作频率时,必须等待系统时钟稳定后才可以继续完 成其他操作。除此之外,每种外设的时钟源都可以通过软件进行使能或者禁止。在具体应 用中,为了降低系统功耗,不使用的外设最好将其外设时钟禁止。外设时钟包括快速外设 和慢速外设两种。分别通过HISPCP和LOSPCP寄存器进行设置。
第8页/共11页
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)
寄存器宏定义
#define __MSP430_HAS_WDT__
SFR_16BIT(WDTCTL);
#define WDTIS0
(0x0001)
#define WDTIS1
(0x0002)
#define WDTSSEL
(0x0004)
#define WDTCNTCL
(0x0008)
#define WDTTMSEL
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
IS0
定时时间 / ms
1
0.056 Tsmclk * 26
0
0.5 Tsmclk * 29
1
1.9 Taclk * 26
1
8 Tsmclk * 213
0
16 Taclk * 29
0
32 Tsmclk * 215
1
250 Taclk * 213
0
1000 Taclk * 215
看门狗定时器课件
看门狗定时器
MSP430X5XX / 6XX系列单片机的看门狗定时器原理, 如下图所示:
WDT 的相关寄存器
一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在 上电和系统复位内容全部清零 ,就是说MSP430的看门狗 在此时处于默认开启的状态。
• 1. 记数单元WDTCNT: WDTCNT是16位增记数器,由MSP430选定的时钟电
(WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)
#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)
计数次数为 32 768; 计数次数为 8 192; 计数次数为 512; 计数次数为 64 。
SSEL 选择WDTCNT的时钟源 1 RST/NMI为非屏 蔽中断输入
0 SMCLK 1 ACLK
WDT的定时 时间表(有且仅有这8 种)
晶体为32 768Hz,SMCLK=1MHz。
SSEL
IS1
0
bit
15-8
7Байду номын сангаас
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
CNTCL 当该位为 1 时,表示清除WDTCNT ,该位具有自动复0的功能, 无需软件重置。亦即传说 中的定时“喂狗”!
注意: WDT 计数器中的值无法直接清除,只能通过CNTCL 置1实现!
TMSEL 工作模式的选择 0 :看门狗模式; 1 :定时器模式。
bit
15-8
7
65
4
3
21
0
相关内容 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
NMI 选择RET / NMI 引脚功能,在PUC后被复位。 0 : RET / NMI 引脚为复位端; 1 : RET / NMI 引脚为边沿触发的非屏蔽中断输入。
3. 在使用后两种模式时候要注意单片机所处的状态下看门 狗能否工作,如单片机处在LPM3时候只有ACLK时钟, 处在LPM4下,没有时钟可以使用。
停止模式:关闭看门狗 C语言实现:WDTCTL = WDTPW + WDTHOLD;
我们用得最多的语句,也是430低功耗的实现语句之一!
计时器模式:作为一个计时器使用,计数器满产生中断时 执行看门狗中断函数。
C语言实现: 主程序中:开启看门狗计时器,如: WDTCTL = WDT_MDLY_8; 或 WDTCTL = WDT_ADLY_250; 等 看门狗中断函数为: #pragma vector = WDT_VECTOR __interrupt void watchdog_timer(void) {
//................... }
看门狗模式:计数溢出时,执行复位中断函数。 C语言实现: 清看门狗: WDTCTL = WDTPW+WDTCNCTL;
设置看门狗: WDTCTL = WDT_MRST_0_5; /* TSMCLK*2POWER9=0.512ms */
或 WDTCTL = WDT_ARST_1000; /* TACLK*2POWER15=1000ms */
路产生的固定周期脉冲信号对记数器进行加法记数。 WDTCNT不能直接软件存取,必须通过看门狗定时器 的控制寄存器WDTCTL来控制。
• 2. 控制寄存器WDTCTL: WDTCTL由两部分组成,高8位用作口令,即5AH(头
文件中定义为WDTPW),低8位是对WDT操作 的控制 命令。写入WDT控制命令时先写入口令WDTPW,口 令写错将导致系统复位。读WDTCTL时不需口令,低 字节WDTCTL的 值,高字节读出始终为69H。
(0x0010)
#define WDTNMI
(0x0020)
#define WDTNMIES
(0x0040)
#define WDTHOLD
(0x0080)
#define WDTPW
(0x5A00)
#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL)
#define WDT_MDLY_8
bit 15-8
7
6
5
4
3
2
1
0
相关内 口 令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1
IS0
容
IS1 SI0 选择看门狗定时器的定时输出,T为WDTCNT的 输入时钟源 周期。TMSEL WDT工作模式选择
00 01 10 11
T*2的15次方 T*2的13次方 T*2的9次方 T*2的6次方
NMIES 选择NMI中断的边沿触发方式 0 上升沿触发NMI中断 1 下降沿触发NMI中断
HOLD 停止看门狗定时器工作 0 看门狗功能激活 1 时钟禁止输入,记数停止
看门狗的三种工作模式
1. 看门狗有 三种工作模式:停止模式,计时器模式,看 门狗模式。
2. 其中后两种模式可以选择的时钟源有: SMCLK 和 ACLK