ATMEGA128看门狗定时器

发布者:温柔阳光最新更新时间:2017-11-23 来源: eefocus关键字:ATMEGA128  看门狗  定时器 手机看文章 扫描二维码
随时随地手机看文章

一、ATMEGA128数据手册

看门狗定时器

       看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗复位的时间间隔,如P53 Table 22 所示。看门狗复位指令WDR用来复位看门狗定时器。此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有及时复位定时器,一旦时间超过复位周期,ATmega128 就复位,并执行复位向量指向的程序。具体的看门狗复位时序在P50 有说明。

       为了防止无意之间禁止看门狗定时器或改变了复位时间,根据熔丝位M103C 和 WDTON 芯片提供了3 个不同的保护级别,如Table 21. 所示。安全级别0 相应于ATmega103 的 设置。使能看门狗定时器则没有限制。请参考P 54“ 改变看门狗定时器配置的时间序列”。

ATmega128 WDT配置表 看门狗定时器

看门狗定时器控制寄存器- WDTCR

ATmega128 看门狗定时器控制寄存器- WDTCR

• Bits 7..5 – Res: 保留
保留位,读操作返回值为零。

• Bit 4 – WDCE: 看门狗修改使能
清零WDE 时必须先置位WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的4 个 时钟周期之后将其清零。请参考有关WDE 的说明来禁止看门狗。工作于安全级别1 和2 时也必须置位WDCE 以修改预分频器的数据,如P 54 “ 改变看门狗定时器配置的时间序列” 所示。

• Bit 3 – WDE: 看门狗使能
WDE为"1“时,看门狗使能,否则看门狗将被禁止。只有在WDCE为"1“时WDE才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内对WDE 写"0”。
工作于安全级别2 时是永远无法禁止看门狗定时器的。参见 P 54 “ 改变看门狗定时器配置的时间序列” 。

• Bits 2..0 – WDP2, WDP1, WDP0: 看门狗定时器预分频器2, 1, 和0
WDP2、WDP1 和WDP0 决定看门狗定时器的预分频器,如Table 22 所示。

ATmega128 看门狗定时器预分频器选项

       下面的例子分别用汇编和C 实现了关闭WDT 的操作。在此假定中断处于用户控制之下 (比如禁止全局中断) ,因而在执行下面程序时中断不会发生。

汇编代码例程
WDT_off:
; 置位 WDCE 和 WDE
ldi r16, (1<out WDTCR, r16
; 关闭WDT
ldi r16, (0<out WDTCR, r16
ret

C 代码例程

void WDT_off(void)
{

WDTCR = (1<
WDTCR = 0x00;
}

       看门狗初始化程序      

C 代码例程

 void WDT_Init(void)

{

  _WDR();//reset watchdog timer
 WDTCR |= (1< WDTCR = 0x0F;//enable watchdog timer andset timeout value 1.9 sencond

}

改变看门狗定时器配置的时间序列

改变配置的序列根据不同的安全级别略有不同。下面将逐一说明。

安全级别0

这个模式与ATmega103 的看门狗操作相兼容。看门狗的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它,以及改变定时器溢出周期。禁止看门狗定时器时则需要遵 守有关WDE 的说明。

安全级别1

在这个模式下,看门狗定时器的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它(例如:WDTCR  |= (1<1. 在同一个指令内对WDCE 和WDE 写"1“,即使WDE 已经为"1“。
2. 在紧接的4 个时钟周期之内同时对WDE 写"0”,以及为WDP 写入合适的数据,而WDCE 则写"0”。

安全级别2

在这个模式下,看门狗定时器总是使能的, WDE 的读返回值为"1”。 改变定时器溢出周期需要执行一个特定的时间序列:
1. 在同一个指令内对WDCE和WDE写"1“。虽然WDE总是为置位状态,也必须写"1“以启动时序。
2. 在紧接的4 个时钟周期之内同时对WDCE 写"0”,以及为WDP 写入合适的数据。WDE 的数值可以任意。

 

二、看门狗AVR-GCC例程

       头文件:#include ,包含看门狗复位命令 _WDR();

      avr-libc 提供三个API 支持对器件内部Watchdog 的操作,它们分别是:
      wdt_reset() // Watchdog 复位
      wdt_enable(timeout) // Watchdog 使能
      wdt_disable() // Watchdog 禁止
      调用上述函数前要包含头文件 wdt.h ,wdt.h 中还定义Watchdog 定时器超时符号常量,它们用于为wdt_enable 函数提供timeout 值。符号常量分别如下:
      符号常量                                   值含意
      WDTO_15MS Watchdog       定时器15 毫秒超时
      WDTO_30MS Watchdog       定时器30 毫秒超时
      WDTO_60MS Watchdog       定时器60 毫秒超时
      WDTO_120MS Watchdog    定时器120 毫秒超时
      WDTO_250MS Watchdog    定时器250 毫秒超时
      WDTO_500MS Watchdog    定时器500 毫秒超时
      WDTO_1S Watchdog           定时器1 秒超时
      WDTO_2S Watchdog           定时器2 秒超时
      Watchdog 测试程序:
      在CA-M8 上执行此程序时应打开S1-8(LEDY),使黄色发光管连接PB0 引脚。

#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define SET_LED PORTB&=0XFE //PB0 接黄色发光管

#define CLR_LED PORTB|=0X01
//误差不会太大的延时1ms 函数
void DelayMs(uint ms)
{
     uint i;
     for(i=0;i
     _delay_loop_2(4 *250);
}
int main(void)
{
     DDRB=_BV(PB0);
     PORTB=_BV(PB0); //CLR_LED
     //WDT 计数器同期为一秒
     wdt_enable(WDTO_1S);
     wdt_reset();//喂狗
     DelayMs(500);
     SET_LED;
     //等待饿死狗
     DelayMs(5000);
     SET_LED;
     while(1)
     wdt_reset();
}
      执行结果:
      CA-M8 上的黄色发光管不断的闪烁,证明了Watchdog 使MCU 不断的复位。

三、注意事项

      如果循环体内每循环一次的时间不超过看门狗的复位时间,主要喂狗一次就可以,否则需要多次喂狗。


关键字:ATMEGA128  看门狗  定时器 引用地址:ATMEGA128看门狗定时器

上一篇:12864液晶显示图片-CVAVR程序
下一篇:AVR单片机使用内部上拉电阻的疑问

推荐阅读最新更新时间:2024-03-16 15:46

采用定时器0产生多个时间间隔
采用单片机定时器0产生多个时间间隔。程序中使用定时器0每50ms中断一次,然后用全局变量tt,t1,t2,t3,t4,t5对中断次数计数,获得100ms,1s,2s,4s,8s,16s间隔,在各个定时间隔内,分别使LED灯亮灭一次。源程序如下: #include AT89X51.H unsigned char tt,t1,t2,t3,t4,t5; //全局时间隔变量 unsigned char code dispcode ={0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90}; //七段数码管译码表 void main(void) //主函数 { TMOD=0x01
[单片机]
S3c2440ARM异常与中断体系详解8---定时器中断程序示例
这节课我们来写一个定时器的中断服务程序 使用定时器来实现点灯计数 查考资料就是第10章PWM TIMER 我们先把这个结构图展示出来 这个图的结构很好 这里面肯定有一个clk(时钟), 1 、每来一个clk(时钟)这个TCNTn减去1 2、 当TCNTn == TCMPn时,可以产生中断,也可以让对应的SPWM引脚反转,(比如说原来是高电平,发生之后电平转换成低电平) 3、 TCNTn继续减1,当TCNTn == 0时,可以产生中断,pwm引脚再次反转 TCMPn 和 TCNTn的初始值来自TCMPBn,TCNTBn 4 、TCNTn == 0时,可自动加载初始 怎么使用定时器? 1、 设置时钟 2 、设置初值 3
[单片机]
S3c2440ARM异常与中断体系详解8---<font color='red'>定时器</font>中断程序示例
STM32F4 ADC1 模拟看门狗
ADC的模拟看门狗用于检查电压是否越界。他又上下两个边界,可分别在寄存器ADC_HTR和ADC_LTR中设置。库函数是使用ADC_AnalogWatchdogThresholdsConfig设置的,无论是常规通道还是注入通道,都非常简单。 当模拟看门狗检测到电压高于上限或者低于下限时将会产生看门狗中断。捕获这个中断,可以做出一些应对措施。 数据手册上特别之处的一个东西:模拟看门狗说使用的比较数据与ADC_CR2寄存器中设置的数据对齐方式无关。看门狗比较是在数据对齐之前完成的。先进行看门狗比较,再将数据放入ADC_DR数据寄存器。 在ST的库中,只有简单的三个与看门狗相关的函数: void ADC_AnalogWatchdogCmd
[单片机]
4. avr 定时器/计数器1 --TC1 --CTC模式输出PWM
T/C1是16位定时器/计数器,它的计数器由两个8位寄存器TCNT1H,TCNT1L构成,TCNT1H是高8位寄存器,TCNT1L是低8位寄存器。最大计算值为2的16次幂,十六进制是0xFFFF=65535. 例如:定时200ms ,晶振8MHZ,分频系数1024,计数时钟频率为8MHZ/1024=8000000HZ/1024=7812.5HZ,每个计数脉冲的周期时间为1/7812.5=0.128ms,计时200ms的计数器值为:65635-200ms/0.128ms=63972=0xF9E4 ,则TCNT1H付初值为0xF9,TCNT1L付初值为0xE4. //函数功能:实现PA口的led亮0.1S,灭0.9S #include
[单片机]
看门狗技术在某型相机导航数据接口板中的应用
摘要:介绍一种将软件和硬件相结合实现的“看门狗”技术在某型相机导航数据接口板中的应用。结合实际应用给出硬件电路和软件流程。实践证明,采用该技术可使429接口板具有较高的抗干扰性及高可靠性。 关键词:航空相机; 抗干扰性; 可靠性; “看门狗”技术 在某型航空相机中,通过429总线数据接口板与任务机通讯接收相关数据和控制指令,同时与相机主板通过并口通讯交换数据,这样一来, 如果接口板程序陷入“死机”或“死循环”状态,那么整个相机系统将无法正常运行,因此,必须尽早发现故障并采取补救措施。本设计系统中采用了软件与硬件相结合的“看门狗”技术。 1 系统中的硬件“看门狗" 专用硬件看门狗是指一些集成化的或集成在单片机内的专用看
[传感技术]
STM32的定时器有两种捕获模式
一个定时器最多能同时捕获几路PWM波? 我只需要得到PWM的高电平宽度,PWM的频率是50HZ STM32的定时器有两种捕获模式 PWM输入模式和普通输入模式 在PWM输入模式下,一个定时器只能同时捕获一路PWM波 在普通输入模式下,理论上是可以同时捕获4路PWM波 即,在定时器中断中改变触发模式(上升沿、下降沿) 然后寄存器两次的差值即近似为高电平长度
[单片机]
单片机实验-利用定时器产生方波
ORG 0000H LJMP MAIN ORG 0003H LJMP TOINT ORG 001BH LJMP TOINT1 ORG 0030HMAIN: MOV SP,#60H SETB IT0 SETB EX0 SETB EA SJMP $TOINT:MOV TMOD,#10H MOV TH1,#0FEH MOV TL1,#0CH SETB ET1 SETB TR1 RETITOINT1:MOV TH1,#0FEH MOV TL1,#0CH CPL P1.0 RETI END
[单片机]
利用555定时器构成白光LED电压调节器的方法
本文以一个555定时器为主要器件构成电压调节电路(如图所示),用来控制一个或多个白光LED。定时器IC1与R1、R2、C2构成了可复位非稳态多谐振荡器。 首次输入电压V S 后,D1将使存储电容器C1充电直到其电压略低于V S 。最初,晶体管Q2处于截止状态,IC1的复位输入为高电平,输出端(OUTPUT)为高电平,以让电流能经过R1给C2充电。 这段时间内,R4拉动放电端(DISCHARGE)导通晶体管Q1,电感L1中的电流I L 开始斜线增大。由于Q1饱和,因此D3和LED都处于反向偏压状态。 当C2的电压超过IC1中管脚6的极限电压(THRESHOLD)时,输出端(OUTPUT)与放电端(DISCHARGE)都变为低电平
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved