看门狗定时器

合集下载

s3c2440看门狗定时器的应用

s3c2440看门狗定时器的应用

s3c2440看门狗定时器的应用看门狗定时器的主要作用是在程序因为干扰而跑飞后,能够使系统复位,不至于使系统永远的死下去。

它的原理与一般的定时器没有多大区别,就是先要设置好一段时间,当超过这段时间后,就从当前运行的程序中跳出进入中断处理程序中。

但两者的主要差别是,一般的定时器中断是我们希望它发生的,因此我们不会在定时器中断发生前的那个时间段内干预它;而看门狗定时器中断是我们不希望它发生的,因此我们要想方设法地避免其发生。

主要的方法就是在中断发生前,重新对看门狗定时器的寄存器进行赋值,使它的定时器重新开始计时。

这种方法俗称喂狗,形象地比喻就是一条看门狗每隔一段时间(比如说一个小时)就会饿,所以就要叫唤,唯一使它不叫的方法就是给它喂食,那么下次叫唤的时间就是从当前喂食起的一个小时后。

因此只要在上次喂食后的一个小时内再给它喂食,它就永远不会叫唤。

s3c2440的看门狗定时器不仅可以引起系统复位,还可以引起一般的中断,因此s3c2440的看门狗定时器可以当作一般的定时器使用。

s3c2440看门狗定时器的时钟频率的公式为:PCLK÷(Prescaler + 1)÷Division其中Prescaler的取值范围为0~255,Division的取值为16,32,64和128。

例如,当PCLK 为50MHz时,设置Prescaler为249,Division为16,则看门狗定时器的时钟频率为12.5kHz。

这两个参数由寄存器WTCON提供,除此以外,该寄存器还可以设置是否有效看门狗定时器的超时复位,是否有效看门狗定时器的超时中断等。

看门狗定时器还有两个寄存器WTDA T和WTCNT,WTDA T用于确定超时期限,WTCNT为当前看门狗定时器的计数值,在第一次设置看门狗超时时间时,这两个寄存器都要被写入超时时间的初始值。

当要启动超时中断时,还要设置必要的中断寄存器,下面这个程序就是一个看门狗定时器的实例。

WATCHDOG定时器-jammy

WATCHDOG定时器-jammy

WATCHDOG定时器-jammys3c2440的看门狗定时器是当操作发生如噪声干扰、系统错误等故障时重启控制器。

看门狗定时器是可以作为一般的16位定时器用于响应中断请求,也可以是用于产生复位信号。

看门狗定时器的工作频率是将PCLK经过8位预分频器后,再通过16分频、32分频、64分频、或者128分频后得到的。

分频可在WTCON中设置。

用下面的公式算出watchdog定时器的工作频率:看门狗定时器的工作频率= 1/[ PCLK / (Prescaler value + 1) / Division_factor ]Prescaler value = 0~255Division_factor = {16,32,64,128}WTDAT & WTCNT当看门狗寄存器启动时,看门狗定时器数据寄存器(WTDAT)不能自动重装到定时计数器(WTCNT)。

因此,初始值必须在看门狗定时器启动前写入定时计数寄存器(WTCNT)。

l WATCHDOG TIMER CONTROL (WTCON) REGISTER 该寄存器用于允许/禁止看门狗定时器、中断,四种时钟信号的选择,以及预分频系数的设定。

l WATCHDOG TIMER DATA (WTDAT) REGISTERWTDAT寄存器用于设置看门狗定时持续时间。

在初始化看门狗定时器WTDAT的数值不能自动重载到定时计数器。

但是,当计数到0时,WTDAT会自动重载到WTCNT。

l WATCHDOG TIMER COUNT (WTCNT) REGISTERWTCNT寄存器是当前看门狗定时器正常工作下的数值。

注意,WTDAT寄存器的数值在初始化时不能重在到WTCNT寄存器,因此WTCNT寄存器需要在启动看门狗前设置好初始值。

演示程序:启动看门狗定时器后,程序进入LED闪烁循环,并且显示WTCNT的数值。

当WTCNT到0时候,系统重启。

/******************************************************函数名:void init_watchdog(void)作者:jammy-lee创建日期:2009-02-21说明:初始化看门狗定时器******************************************************/void init_watchdog(void){rWTCON = ((0x60<<8)|(3<<3)); //设置预分频值0x60,分频因子128rWTDAT = 0x6000;rWTCNT = 0x6000;rWTCON &= ~(1<<2); //禁止中断rWTCON |= ((1<<5)|(1<<0)); //启动看门狗,允许复位信号}/******************************************************函数名:void Main(void)作者:jammy-lee创建日期:2009-02-21说明: 主函数******************************************************/void Main(void){int wt_count;rGPBCON = 0x55555;rGPBUP = 0x7ff;while(1)Led(1,1);Uart_Printf("LED 1 power ON\n");delay(100);Led(1,0);Uart_Printf("LED 1 power ON\n");delay(100);wt_count = rWTCNT; //读取WTCNT寄存器当前的值Uart_Printf("the value of WTCNT is %d\n",wt_count); }}。

S3C44BOX看门狗定时器

S3C44BOX看门狗定时器

看门狗可分为硬件和软件看门狗, S3C44BOX看门狗定 时器属于软件看门狗。
一 S3C44BOX看门狗定时器概述
S3C44BOX看门狗定时器特性: 1) 带中断请求的普通间隔定时器模式; 2) 当定时器计数值达到0时(时限),内部复位信号被激活
128个MCLK周期;
3) 16位的看门狗定时器;
4) 在定时器溢出时发出中断请求或复位。
2 S3C44BOX看门狗定时器在电子词典中的应用
看门狗测试流程图
三 S3C44BOX看门狗定时器应用编程
1) 看门狗定时器初始化程序
void initWDTimer(void) { rINTMSK=~(BIT_GLOBAL|BITWDT); rWTCON=(255<<8)|(3<<3)|(1<<0); rWTDAT=2000; rWTCNT=2000; rWTCON=rWTCON|(1<<5);
二 S3C44BOX看门狗定时器功能及应用描述
2 功能实现与控制
看门狗定时器框图
二 S3C44BOX看门狗定时器功能及应用描述
输入到计数器的时钟周期为:
T_wtd=1/(MCLK/(预分频值+1)/再分频因子)
有效的预分频值0到2^8-1, 看门狗的定时周期为: 通过WTCON寄存器配置 再分频因子可选为16、32、 64、128
//T_wtd=1/256/128,复位使能t=0.5ms
//使能看门狗
2) 喂狗程序
void feeddog(void) { rWTCNT=2000; }
S3C44BOX看门狗定时器
(Watch Dog Timer)
报告人:xxxx 组 员:xxxx xxxx

看门狗定时器实训报告

看门狗定时器实训报告

本次实训旨在使学生了解看门狗定时器的基本原理、工作方式以及在嵌入式系统中的应用,通过实际操作,掌握看门狗定时器的配置、使用方法,并学会利用看门狗定时器解决嵌入式系统中的故障和异常。

二、实训内容1. 看门狗定时器原理- 看门狗定时器是一种监测硬件或软件故障的定时器,其工作原理是在程序运行过程中不断重装载,以防止溢出引发中断或复位。

- 看门狗定时器分为独立看门狗和窗口看门狗两种类型。

2. 独立看门狗(FWDGT)- 独立看门狗使用独立的32kHz内部时钟,适用于对计时精度要求不高的场合。

- 独立看门狗内部有一个12位的向下计数的定时器,当计数值达到0时,会产生一个系统复位。

3. 窗口看门狗(WWDGT)- 窗口看门狗使用PCLK分频而来的时钟,计数器位数较小,需要在窗口范围内重装载以防复位。

4. 看门狗定时器的配置与使用- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。

- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。

- 在程序中定期重装载看门狗定时器,以防止系统复位。

5. 看门狗定时器的实际应用- 利用看门狗定时器解决嵌入式系统中的故障和异常。

- 通过看门狗定时器监控程序运行状态,防止死锁。

- 作为系统安全特性的一部分,确保在检测到异常时能够安全地重启系统。

1. 准备工作- 准备好实训所需的硬件设备和软件环境,如单片机开发板、调试器、IDE等。

2. 环境搭建- 根据实际需求搭建实训环境,包括硬件电路连接和软件配置。

3. 看门狗定时器配置- 了解看门狗定时器的相关寄存器,如预分频器、计数器、重装载寄存器、键寄存器和状态寄存器等。

- 根据实际需求配置看门狗定时器的时钟源、计数器值、窗口范围等参数。

4. 程序编写- 编写程序,实现看门狗定时器的初始化、重装载和监控功能。

- 在程序中定期重装载看门狗定时器,以防止系统复位。

5. 调试与验证- 使用调试器对程序进行调试,观察看门狗定时器的运行状态。

016:MSP430_WDT看门狗定时器

016:MSP430_WDT看门狗定时器

016:MSP430_WDT看门狗定时器1, 看门狗定时器概述看门狗定时器(WDT)是 MSP430 系列单⽚机中常⽤的⼀种部件。

在⼯业现场,往往会由于供电电源、空间电磁⼲扰或其他原因引起强烈的⼲扰噪声。

这些⼲扰作⽤于数字器件,极易使其产⽣误动作,从⽽失去应有的控制功能,引起 MSP430 发⽣“程序跑飞”事故。

若不进⾏有效的处理,程序就不能回到正常的状态,从⽽失去应有的控制功能。

看门狗定时器正是为了解放这类问题⽽产⽣的,尤其是在具有循环结构的程序任务中更为有效。

在正常操作器件,⼀次 WDT 定时时间到,将产⽣⼀次器件复位。

如果通过编制程序使 WDT 定时时间稍⼤于程序执⾏⼀遍所⽤的时间时,并且程序执⾏过程中都有对看门狗定时器清零的指令,使计数器重新计数,则程序正常执⾏时,就会在 WDT 定时时间到达之前对 WDT 清零,不会产⽣ WDT 溢出,如果由于⼲扰使程序跑飞,则不会在 WDT 定时时间到达之前执⾏ WDT 清零指令,WDT 就会产⽣溢出,从⽽产⽣系统复位 CPU 需⽤重新运⾏⽤户程序,这样程序就可以⼜恢复正常运⾏状态。

MSP430 看门狗除了具有上述系统监测的特定⽤途之外,还可以作为内部定时器来使⽤,当选择的时间到达之后,和其他定时器⼀样产⽣⼀个定时中断。

此外 WDT 还可以被完全停⽌活动以⽀持超低功耗应⽤2 看门狗定时器结构3 看门狗定时器寄存器[1] WDTCTL 看门狗控制寄存器WDTCTL 由两部分组成:⾼ 8 位是对 WDT 操作的控制命令。

要写⼊操作 WDT 的控制命令,出于安全原因必须先正确写⼊⾼字节看门狗⼝令。

⼝令位 5AH,如果⼝令写错将导致系统复位。

读 WDTCTL 时,不需要⼝令,可直接读取地址 120H 中的内容,读出数据低字节位 WDTCTL 的值,⾼字节始终位 69H。

WDTCTL 除了看门狗定时器的控制位之外,还有两个⽤于设置 NMI 引脚功能。

WDTISx:选择看门狗定时器的计时输出其中 T 是 WDTCNT 的输⼊时钟源周期。

看门狗定时器

看门狗定时器

5.12 模数转换器(ADC)


在数字信号处理器的具体应用中,往往需要采集 一些模拟信号量,如电池电压、面板旋钮输入值 等,模数转换器就是用来将这些模拟量转化为数 字量来供DSP使用。 本节主要介绍TMS320VC5509A内部集成的10 位的连续逼近式模数转换器(ADC)。
1 ADC的结构和时序
ADC数据寄存器ADCDATA
位 字 段 数 值 ADC 转换标志位: 15 ADCBUSY 0 1 采样数据已存在 正在转换之中,在 ADCSTART 置为 1 后,ADCBUSY 变为 1,直到转换结束 数据通道选择: 000 14~12 CHSELECT 001 010 011 100~111 11~10 9~0 保留 ADCDATA AIN0 通道 AIN1 通道 AIN2 通道(BGA 封装) AIN3 通道(BGA 封装) 保留 保留,读时总为 0 存放 10 位 ADC 转换结果 说 明
5.时钟同步

在正常状态下,只有一个主设备产生时钟信号,但 如果有两个或两个以上主设备进行仲裁,这时就需 要进行时钟同步。串行时钟线SCL具有线与的特性, 这意味着如果一个设备首先在SCL线上产生一个低 电平信号就将否决其他设备,这时其他设备的时钟 发生器也将被迫进入低电平。如果有设备仍处在低 电平,SCL信号也将保持低电平,这时其他结束低 电平状态设备必须等待SCL被释放后开始高电平状 态。通过这种方法时钟得到同步。

表8-37 I2C模块的寄存器
寄存器 I2CMDR I2CIER I2CSTR I2CISRC I2CPSC I2CCLKL I2CCLKH I2CSAR I2COAR I2CCNT I2CDRR I2CDXR I2CRSR I2CXSR I2CIVR I2CGPIO 说 明 包含 I2C 模块的控制位 使能或屏蔽 I2C 中断 用来判定中断是否发生,并可查询 I2C 的状态 用来判定产生中断的事件 用来对系统时钟分频以获得 12MHz 时钟 对主时钟分颁,产生低速传输频率 对主时钟分颁,产生低速传输频率 存放所要通信的从设备的地址 保存自己作为从设备的 7 位或 10 位地址 该寄存器被用来产生结束条件以结束传输 供 DSP 读取接收的数据 供 DSP 写发送的数据 DSP 无法访问 DSPF 无法访问 供 DSP 查询已经发生的中断 当 I2C 模块工作在通用 IO 模式下时,控制 SDA 和 SCL 引脚 功 能 I2C 模式寄存器 I2C 中断使能寄存器 I2C 中断状态寄存器 I2C 中断源寄存器 I2C 预定标寄存器 I2C 时钟分频低计数器 I2C 时钟分频高计数器 I2C 从地址寄存器 I2C 自身地址寄存器 I2C 数据计数寄存器 I2C 数据接收寄存器 I2C 数据发送寄存器 I2C 接收移位寄存器 I2C 发磅移位寄存器 I2C 中断向量寄存器 I2C 通用输入输出寄存器

dsp看门狗定时器的作用解析

dsp看门狗定时器的作用解析

dsp 看门狗定时器的作用解析
一、DSP 看门狗定时器介绍
看门狗在外围监控DSP 中软件的运行以及硬件的操作,当CPU 出现故障时,看门狗将执行系统复位。

如果软件进入了一个不正确的循环或者CPU 出现暂时的混乱,看门狗定时器将出现溢出来使系统复位。

在大多数情况下,DSP 短暂的混乱以及CPU 不正确的操作都可以被看门狗所清除并重新进行设置。

由于看门狗稳定的性能,其增加了CPU 的可靠性,以确保系统的完整。

在看门狗中这个外围设备中,所有的寄存器都是8 位的,连接到16 位CPU 的低8 位外围数据总线上。

240XA 看门狗定时器和C240 看门狗定时器唯一的区别就是其缺乏实时的中断能力。

看门狗定时器将通过对从CPU 出来的CLKOUT 进行分频而得到自己所需的时钟
二、看门狗定时器工作原理
使用时,WDT 将递增,直到溢出,或称超时。

除非处于休眠或空闲模式,WDT 超时会强制器件复位。

为避免WDT 超时复位,用户必须定期用。

6_看门狗定时器

6_看门狗定时器

在正常工作期间,一次看门狗定时时间将产生一次系统复位。如果通过编程使
看门狗定时时间稍大于程序中主循环执行一遍所用的时间,并且程序执行过程 中都有对看门狗定时器清零的指令,使计数值重新计数,程序正常运行时,就 会在看门狗定时时间到达之前对看门狗清零,不会产生看门狗溢出。如果由于 干扰使程序跑飞,则不会在看门狗定时时间到达之前执行看门狗清零指令,看 门狗就会产生溢出,从而产生系统复位,使CPU重新运行用户程序,这样程序就 又可以恢复正常运行。
定时时间/ms tsmclk *32768 tsmclk *8192 tsmclk *512 tsmclk *64
1 1
1 1
0 0
1 1
0 1
0 1
1000 250
15.63 1.95
taclk *32768 taclk *8192
taclk *512 taclk *64
看门狗定时器(WDT)
中断控制位
在应用中应根据需要选择合适的定时器模块。MSP430单片机的定时器模块功 能如下: ① 看门狗定时器:基本定时,当程序发生错误时执行一个受控的系统重启动 ② 定时器A:基本定时,支持软件和各种外围模块工作在低频、低功耗条件下 ③ 定时器B:基本定时,功能基本同定时器A,但比定时器A灵活,功能更强大
④ 实时时钟:基本定时,日历功能
#include <msp430f149.h> void main(void) { WDTCTL = WDT_ADLY_1000; // 定时周期设为1000ms IE1 |=WDTIE; // 使能WDT中断 P1DIR |= BIT0; // 将P1.0设为输出 _ _bis_SR_register(LPM0_bits + GIE);// 进入LPM0并使能全局中断 } //看门狗定时器中断服务程序 #pragma vector=WDT_VECTOR _ _interrupt void watchdog_timer(void) { P1OUT ^= BIT0; // 反转P1.0端口状态 }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、外部看门狗
一般硬件设计的时候使用芯片外部看门狗,该看门狗使用一个不停翻转GPIO来控制。

二、内部看门狗
一般ARM芯片都是有内部看门狗模块。

S5PV210内部看门狗模块有两个功能:
1、作为看门狗。

打开看门口狗后,如果没有“喂狗”,看门狗计数值减到0,会产生一个reset信号,S5PV210就会复位,从BL0重新执行代码。

2、普通的定时器。

可以产生周期性的中断。

三、210看门狗模块的框图
1、看门狗“喂狗”就是向计数寄存器赋一个新的计数值。

2、看门狗clock(基准周期)=
四、看门狗的寄存器
1、WTCON
2、WTDA T
3、WTCNT
4、WTCLRINT
五、实验程序。

相关文档
最新文档