看门狗定时器
看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如 P 53Table 22 所示。看门狗复位指令WDR 用来复位看门狗定时器。 此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有 及时复位定时器,一旦时间超过复位周期,ATmega128 就复位,并执行复位向量指向的 程序。具体的看门狗复位时序在P 50 有说明。
为了防止无意之间禁止看门狗定时器或改变了复位时间,根据熔丝位M103C 和 WDTON 芯片提供了3 个不同的保护级别,如Table 21. 所示。安全级别0 相应于ATmega103 的 设置。使能看门狗定时器则没有限制。请参考P 54“ 改变看门狗定时器配置的时间序列” 。
看门狗定时器控制寄存器- 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 所示。
下面的例子分别用汇编和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) { /* 置位WDCE 和 WDE */ WDTCR = (1</* 关闭WDT */ WDTCR = 0x00; } |
改变看门狗定时器配置的时间序列
改变配置的序列根据不同的安全级别略有不同。下面将逐一说明。
安全级别0
这个模式与ATmega103 的看门狗操作相兼容。看门狗的初始状态是禁止的,可以没有限 制地通过置位WDE 来使能它,以及改变定时器溢出周期。禁止看门狗定时器时则需要遵 守有关WDE 的说明。
安全级别1
在这个模式下,看门狗定时器的初始状态是禁止的,可以没有限制地通过置位WDE 来使能它。改变定时器溢出周期及禁止( 已经使能的) 看门狗定时器时需要执行一个特定的时间序列:
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 的数值可以任意。
关键字:ATmega128 看门狗 定时器
引用地址:
ATmega128 看门狗定时器
推荐阅读最新更新时间:2024-11-09 10:23
STM32F407ZGT6学习之基本定时器
工程代码:https://pan.baidu.com/s/1Qlfg1_br0tN6yy0fcDwCjg,密码:fhh2 (一)概述 STM32基本定时器实现基本的计时功能,通过相应的配置,实现微妙、毫秒级的定时和计数。 1、定时器框架 从图中可以看出,定时器时钟输入到定时器的触发控制器中,在通过 PSC预分频器“分频之后,周期性的使计数器CNT累加或者累减。当计算器CNT计算发生上溢或者下溢时,产生一个更新事件,标志一次计时周期到。 2、基本定时器的概念 2.1输入时钟频率 RCC的系统时钟为168M,而APB1总线上的时钟为系统时钟的1/4为42M,而当APB1总线上的时钟是由系统时钟多分频得到的时
[单片机]
stm32f407之窗口看门狗使用流程
1.初始化 1.声明中断变量 NVIC_InitTypeDef NVIC_InitStructure; 2.打开WWDG时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); 3.设置预分频器分频 WWDG_SetPrescaler(fprer); 4.设置窗口值 WWDG_SetWindowValue(wr); 5.喂狗 WWDG_SetCounter(WWDG_CNT); 6.中断配置 NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; NVIC_InitStructure.NVIC_
[单片机]
M20 中断、定时器与程序存储方式
void main() //主程序 不同单片机写法基本一致 { } interrupt() //不同单片机 中断程序写法不同 { } 多个中断类似于多个中断车道的车行进,如果都来抢占红色小车的主车道,会造成红车行进缓慢。 所以中断程序写最简短的代码,尽量少的占用主车道的时间。 以上提到了四个关键名词: 中断 定时器 主程序 中断程序 书籍会给一个名词简短一两句话,作为解释或者定义,实际上大部分名词很难用一句话说明。很多同学学习过程中感觉越学越困难,越来越看不懂,实际上,关键问题就是很多名词需要一本书1000页打底的书来解释才行,我们把自己限定到仅看课本或者一两本关联度很少的书,这样自然是越学越累。因为这
[单片机]
定时器基本原理及常见问题详解
对于MCU来说,定时器是必备的一个模块,原因在于定时器是使用频率最高。 1写在前面 我之前写过许多关于定时器的文章,不过后台还是有很多朋友问与定时期相关的问题,所以,这里也给大家推荐下面的这个关于定时器的资料。 相信有部分朋友都收到STM32公众号的消息了,就是提供了一个我认为比较好的资料: STM32 定时器基本原理及常见问题之培训资料 。 这个资料我是第一时间就下载来看了,觉得 整理的很好 。特别是对于很多初学以及学习了一段时间STM32的朋友来说,对全方面掌握定时器有很大帮助作用。 考虑到很多朋友都只是知道有这么一个资料,没有下载来学习、掌握。所以,今天在这里挑一些要点, 带领大家学习 。 下载地址在ST中文网,(最
[单片机]
如何实现模拟看门狗?
对于看门狗大家或许不陌生,但对于模拟看门狗有的朋友可能就不甚了解了。本文来聊聊模拟看门狗,旨在梳理相应的概念,理解模拟看门狗原理、与常规看门狗的异同点以及工程应用价值。 啥是看门狗? 一般来讲,单片机的看门狗可简单看成相对独立的两部分,即计时单元和监控单元。计时单元实现计数与重装。在计数过程中,软件可以适时对计数器的初始值进行重装,以防溢出。监控单元监视计时器的溢出事件,若计数器因未被软件适时重装而发生溢出,看门狗通常会执行复位动作,比如复位处理器。 以STM32F4系列单片机独立看门狗IWDG( Independent watchdog)为例,看看其计时电路的功能架构: 我们再结合STM32的复位逻辑模块,来大致看看
[单片机]
零基础入门STM32定时器配置及其中断设置
我们大家都知道STM32定时器比较多,但调试都是一样的,寄存器都是一一对应的。就拿tiM2举例说明。在网上搜了好多关于定时器的设置,但大多数都是一个版本,而且都是针对库函数操作的,让人看起来一头雾水,对于初学者很是不利(我也是初学者)。下面我将自己的定时器设置过程一一记录下来,以供大家参考,我们共同学习…… 首先定义定时器头文件,也就是定义寄存器以供操作: #define TIM2_CR1 (*((volatile unsigned long *)0x40000000)) #define TIM2_CR2 (*((volatile unsigned long *)0x40000004)) #define
[单片机]
【单片机】【学习日志】51单片机学习日志[Day3、2022.1.11]
第一部分_定时器 一、定时器的介绍 51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 作用: (1、用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作; (2、替代长时间的Delay,提高CPU的运算效率和处理速度。 … 二、STC89C52定时器资源 定时器个数:3个(T0、T1、T2)T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源; 注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,TO和 T1的操作方式是所有51单片机所共有的。 三、计时器框图 定时器在单片机内部就像一个小闹钟一样,根
[单片机]
STM32通定时器时间设置步骤和计算公式方法寄存器值
一、STM32通用定时器原理 STM32 系列的CPU,有多达8个定时器,其中TIM1和TIM8是能够产生三对PWM互补输出的高级定时器,常用于三相电机的驱动,它们的时钟由APB2的输出产生。其它6个为普通定时器,时钟由APB1的输出产生。 下图是STM32参考手册上时钟分配图中,有关定时器时钟部分的截图: 从图中可以看出,定时器的时钟不是直接来自APB1或APB2,而是来自于输入为APB1或APB2的一个倍频器,图中的蓝色部分。 下面以通用定时器2的时钟说明这个倍频器的作用:当APB1的预分频系数为1时,这个倍频器不起作用,定时器的时钟频率等于APB1的频率;当APB1的预分频系数为其它数值(
[单片机]