看门狗定时器课件.ppt

看门狗定时器课件.ppt

ID:57163794

大小:376.50 KB

页数:17页

时间:2020-08-02

看门狗定时器课件.ppt_第1页
看门狗定时器课件.ppt_第2页
看门狗定时器课件.ppt_第3页
看门狗定时器课件.ppt_第4页
看门狗定时器课件.ppt_第5页
资源描述:

《看门狗定时器课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、看门狗定时器所谓程序跑飞就是PC指针没有按照预定的程序变更,可能PC指针指向一个不确定的或者根本就没有存放用户代码的程序存贮空间,造成PC指针根本无法恢复到用户代码空间之内,程序跑飞,当发生中断时,中断服务程序代码仍然可以被执行。在工业现场,往往会由于供电电源、空间电磁干扰或其他原因引起强烈的干扰信号噪声。这些干扰信号作用于数字器件,极易引发错误动作,引起“程序跑飞”事故!看门狗的目的在于阻止程序跑飞。在正常操作期间,一次WDT定时时间到,将产生一次器件复位。如果通过编制程序使WDT定时时间略微大于程序执行一次的时间,并且程序执行过程中有对看门狗定时器清零的指令,使计数器重

2、新计数,则程序正常运行时,就会在WDT定时时间到之前对WDT清零(定时喂狗),不会产生WDT溢出。如果由于干扰使程序跑飞,则不会在WDT定时时间到之前执行WDT清零指令,则WDT就会产生溢出,从而自动产生系统复位,CPU需要重新运行用户程序,这样程序就可以重新回到正常运行状态!看门狗定时器MSP430X5XX/6XX系列单片机的看门狗定时器原理,如下图所示:WDT的相关寄存器一、WDT寄存器包括WDTCNT和WDTCTL,两个寄存器在上电和系统复位内容全部清零,就是说MSP430的看门狗在此时处于默认开启的状态。1.记数单元WDTCNT:WDTCNT是16位增记数器,由MS

3、P430选定的时钟电路产生的固定周期脉冲信号对记数器进行加法记数。WDTCNT不能直接软件存取,必须通过看门狗定时器的控制寄存器WDTCTL来控制。2.控制寄存器WDTCTL:WDTCTL由两部分组成,高8位用作口令,即5AH(头文件中定义为WDTPW),低8位是对WDT操作的控制命令。写入WDT控制命令时先写入口令WDTPW,口令写错将导致系统复位。读WDTCTL时不需口令,低字节WDTCTL的值,高字节读出始终为69H。IS1SI0选择看门狗定时器的定时输出,T为WDTCNT的输入时钟源周期。TMSELWDT工作模式选择0    0T*2的15次方计数次数为32768;

4、0    1T*2的13次方 计数次数为8192;1    0T*2的9次方 计数次数为512;1    1T*2的6次方 计数次数为64。SSEL选择WDTCNT的时钟源   1      RST/NMI为非屏蔽中断输入0        SMCLK1        ACLKWDT的定时时间表(有且仅有这8种)晶体为32768Hz,SMCLK=1MHz。CNTCL当该位为1时,表示清除WDTCNT,该位具有自动复0的功能,无需软件重置。亦即传说中的定时“喂狗”!注意:WDT计数器中的值无法直接清除,只能通过CNTCL置1实现!TMSEL工作模式的选择0:看门狗模式;1:定时

5、器模式。NMI选择RET/NMI引脚功能,在PUC后被复位。0:RET/NMI引脚为复位端;1:RET/NMI引脚为边沿触发的非屏蔽中断输入。NMIES选择NMI中断的边沿触发方式0        上升沿触发NMI中断1        下降沿触发NMI中断HOLD停止看门狗定时器工作0      看门狗功能激活1      时钟禁止输入,记数停止看门狗的三种工作模式1.看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。2.其中后两种模式可以选择的时钟源有:SMCLK和ACLK3.在使用后两种模式时候要注意单片机所处的状态下看门狗能否工作,如单片机处在LPM3时候只有A

6、CLK时钟,处在LPM4下,没有时钟可以使用。停止模式:关闭看门狗C语言实现:WDTCTL=WDTPW+WDTHOLD;我们用得最多的语句,也是430低功耗的实现语句之一!计时器模式:作为一个计时器使用,计数器满产生中断时执行看门狗中断函数。C语言实现:主程序中:开启看门狗计时器,如:WDTCTL=WDT_MDLY_8;或WDTCTL=WDT_ADLY_250;等看门狗中断函数为:#pragmavector=WDT_VECTOR__interruptvoidwatchdog_timer(void){//...................}看门狗模式:计数溢出时,执行复位

7、中断函数。C语言实现:清看门狗:WDTCTL=WDTPW+WDTCNCTL;设置看门狗:WDTCTL=WDT_MRST_0_5;/*TSMCLK*2POWER9=0.512ms */或WDTCTL=WDT_ARST_1000;/*TACLK*2POWER15=1000ms */寄存器宏定义SFR_16BIT(WDTCTL);#defineWDTIS0(0x0001)#defineWDTIS1(0x0002)#defineWDTSSEL(0x0004)#defineWDTCNTCL(0x0008)#defineWDT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。