历史上的今天
返回首页

历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2021年10月21日 | ATmega48 看门狗定时器

2021-10-21 来源:eefocus

看门狗定时器由独立的128 kHz片内振荡器驱动。通过设置看门狗定时器的预分频器可以调节看门狗复位的时间间隔,如 P44Table26 所示。看门狗复位指令 WDR 用来复位看门狗定时器。此外,禁止看门狗定时器或发生复位时它也被复位。复位时间有 10 个选项。如果没有及时复位定时器,一旦时间超过复位周期, ATmega48/88/168 就复位,并执行复位向量指向的程序。具体的看门狗复位时序在 P44Table26 有说明。
看门狗定时器还可用来产生中断。这在使用看门狗将系统从掉电状态唤醒是非常有用的。

为了防止无意之间禁止看门狗定时器或改变了复位时间,熔丝位 WDTON 为此提供了 2个不同的保护级别,如 Table 24.所示。请参见P47”改变看门狗定时器配置的时间序列” 。

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

· Bits 7 – WDIF: 看门狗超时中断标志
当看门狗定时器超时且定时器作为中断使用时,该位置位。执行相应的中断处理程序时 WDIF 由硬件清零。也可通过对标志位写 "1” 对 WDIF 清零。当 SREG 寄存器中的 I 位与 WDIE 也置位时, MCU 执行看门狗超时中断。
· Bit 6 – WDIE: 看门狗超时中断使能
WDIE置"1”时WDE被清零,状态寄存器中的I位置位,看门狗超时中断使能。当看门狗定时器出现超时时执行相应的中断程序。

如果 WDE置位,当超时出现时, WDIE 由硬件自动清零。 这对使用中断时保证看门狗复 位的安全性非常有效。在 WDIE 位被清零后,下一个超时将引发系统复位。为避免看门狗 复位,在每次中断后必须对 WDIE置位。

· Bit 4 – WDCE: 看门狗修改使能
清零 WDE时必须置位 WDCE,否则不能禁止看门狗。一旦置位,硬件将在紧接的 4 个时 钟周期之后将其清零。请参考有关 WDE 的说明来禁止看门狗。修改预分频器也必须置位 WDCE,如 P47“改变看门狗定时器配置的时间序列”所示。
· Bit 3 – WDE: 使能看门狗
WDE为“1” 时,看门狗使能,否则看门狗将被禁止。只有在WDCE为“1”时WDE 才能清零。以下为关闭看门狗的步骤:
1. 在同一个指令内对WDCE 和WDE 写"1",即使WDE 已经为"1"。
2. 在紧接的4 个时钟周期之内对WDE 写"0"。这会禁用看门狗。

工作于安全级别 2 时,即使使用了上述的算法,也无法禁止看门狗定时器。参见 P47“改变看门狗定时器配置的时间序列”所示。

工作于安全级别 1 时, WDE 被 MCUSR 的 WDRF 功能所替换 ,请参见 P41”MCU 状态寄存器 – MCUSR” 中关于 WDRF 的说明。这意味着当 WDRF 置位时 WDE 同时置位。为清零 WDE,在使用上述过程禁用看门狗之前必须清零 WDRF。这一特性保证在出现故障时有多重复位,且在故障解决后可以安全地启动。

Note: 如果在应用中不需要使用看门狗定时器,则在器件初始化时应运行看门狗禁用程序。如果 看门狗被意外使能,如程序跑飞或出现 BOD,器件将会复位,且在结束复位时 WDRF 标 志位置位。这将自动激活看门狗,引发新的看门狗复位。为避免出现这种状况,在初始化 过程中应用程序应将 WDRF 标志位与 WDE控制位清零 。

· Bits 5,2..0 – WDP3..0:看门狗定时器预分频器 3, 2, 1, 与 0
当看门狗定时器使能时, WDP3..0 决定看门狗定时器的预分频器,如 Table26 所示。

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

汇编代码例程
WDT_off:
; MCUSR中的WDRF 清零
ldi r16, ( 0<< WDRF ) 
out MCUSR, r16 ; 置位WDCE 与 WDE 
ldi r16, (1<< WDCE )|( 1<< WDE ) ; 关闭WDT 
ldi r16, (0<< WDE ) 
out WDTCSR, r16
ret

C 代码例程
void WDT_off(void)
{
/*MCUSR 中的 WDRF清零*/
MCUSR = 0x00
/* 置位WDCE 与 WDE */
WDTCSR = (1<< WDCE) | (1<< WDE);
/* 关闭WDT */
WDTCSR = 0x00;
}


推荐阅读

史海拾趣

台湾美丽微(FMS)公司的发展小趣事

随着市场的不断拓展,FTDI也面临着诸多挑战,包括如何吸纳优秀的技术人才、打击假冒芯片以及提供本地化的技术支持等。为了应对这些挑战,FTDI采取了多项措施,包括引进经验丰富的工程师和潜力大学毕业生充实技术团队,加强对本地分销商的培训,以及增加对重点应用市场的技术支持力度。这些措施不仅提升了FTDI的技术实力和市场响应速度,也进一步巩固了其在全球市场的地位。

Exel Microelectronics Inc公司的发展小趣事

随着全球对环保问题的日益关注,Exel Microsystems Inc公司也积极响应,履行环保责任。公司在XXXX年开始实施绿色生产战略,通过采用环保材料、优化生产流程等措施,降低了生产过程中的能耗和废弃物排放。此外,Exel还积极参与环保公益活动,推动行业和社会的可持续发展。这些举措不仅彰显了公司的社会责任感,也为公司赢得了良好的社会声誉。

EEMB Co Ltd公司的发展小趣事

EEMB集团成立于1995年,初期以外销为主,总部位于武汉东西湖金银湖畔。公司创始人们凭借对电子行业的敏锐洞察力和对锂电池技术的深入研究,决定专注于锂电池的研发与生产。他们组建了一支技术实力强大的研发团队,并开始着手设计和生产高性能的锂电池产品。在初期的几年里,公司逐渐在市场上建立起了一定的声誉,并开始与一些知名的工业企业和设备制造商建立合作关系。

HSMC公司的发展小趣事

HSMC的发展离不开巨额的资金投入。公司项目总投资额达到约200亿美元(另一说法为1280亿元人民币),这一庞大的投资规模使得HSMC能够迅速构建起先进的生产设施。项目规划包括建设14纳米及7纳米以下节点的逻辑工艺生产线,以及晶圆级先进封装生产线。这些生产线预计月产能可达数万片,为市场提供高质量的芯片产品。

Cliff Electronic Components公司的发展小趣事

HSMC深知技术创新是企业发展的核心驱动力。公司不仅拥有丰富的14纳米及7纳米以下节点FinFET先进逻辑工艺与晶圆级先进封装技术经验,还持续投入研发,瞄准世界先进的制程工艺。通过与全球各大科研院所的合作,HSMC不断储备行业专利,增强自身的技术壁垒。这种对技术创新的执着追求,为公司的长远发展奠定了坚实基础。

First Sensor公司的发展小趣事

HSMC的发展离不开巨额的资金投入。公司项目总投资额达到约200亿美元(另一说法为1280亿元人民币),这一庞大的投资规模使得HSMC能够迅速构建起先进的生产设施。项目规划包括建设14纳米及7纳米以下节点的逻辑工艺生产线,以及晶圆级先进封装生产线。这些生产线预计月产能可达数万片,为市场提供高质量的芯片产品。

问答坊 | AI 解惑

清华LabVIEW编程与虚拟仪器设计例程库

replyreload += \',\' + 278125;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

xp下,fat16/32中应该是支持长文件名,但我在64M U盘上建立一个文件名bb.txt 后,用winhex查看fdt,发现只有短文件名目录项。而且是大写存

xp下,fat16/32中应该是支持长文件名,但我在64M U盘上建立一个文件名bb.txt 后,用winhex查看fdt,发现只有短文件名目录项。而且是大写存储。 请问,xp如何区分大小写的呢??因为没有长文件名目录项存在啊。 …

查看全部问答>

求51+sl811读写U盘的源程序+原理图

在网上有下了《51+sl811读写U盘的源程序+原理图》的原代码,但找不到原理图,请问哪位大哥有可以寄一份给我,或告知下载地址。谢谢! 我邮箱是: power_wjc@163.com…

查看全部问答>

字库下载!!!

嘿 各位!    知道哪里有5x8的字库下载吗??? 现在急等着用啊~~~~ 麻烦大家拉…

查看全部问答>

关于WINCE下的瘦客户机的问题!!!急

大家好我想问一下:我做的瘦客户机系统,在两台PC机上实验 现在有个问题:我通过网络从主机传nk.bin镜象到从机后,从机可以访问主机(类似远程桌面系统),但是如果把nk.bin直接拷到硬盘中,从硬盘启动后也可以进入瘦客户机界面,但是就是不能访问 ...…

查看全部问答>

STM32F103VGT是不是很不好买?

内存96k的,1M Flash 因为想跑eCOS,可就是不行,对比官方的3210E开发板,怀疑是内存不够导致 现在用的是VBT,才20k SRAM,所以想换成VGT试试看。。。 VGT版的不好买吗?google居然都很少有,dkey、派睿居然也没有,汗啊。。。…

查看全部问答>

请教,编程问题!

我现在是在flash主存中开辟了几个段,来存储一些实时数据,我存的数是一组一组存入的,为了避免在檫除时同一组数部分被檫除部分还有的现象,故同一组数要保证存如同一段里面,所以就出现了段结束判断;我对段判断的程序如下: #define flash_addr_ ...…

查看全部问答>

无线通信

先上图~~ [ 本帖最后由 574937246 于 2012-7-24 16:22 编辑 ]…

查看全部问答>

USB转DB9 转换器

市场卖的便宜货实在不行,贵的又实在是贵啊~~  干脆自己做了。 铁的头哦~~ 超耐用 不侧漏。连续12小时通讯测试,丢失率千万分之一不到。振动通讯测试,高温通讯测试(70°)效果都非常不错。 想要的同学可M 我啊~~ USB线给你弄根带屏蔽 ...…

查看全部问答>

MSP430AFE253+NRF24L01+进入低功耗问题

使用MSP430AFE253+NRF24L01+,做数据只发送模式,进入LPM3电流为330UA,如果NRF24L01+去掉电流就为0.5UA左右,最后发现是430跟无线发送模块的模拟SPI有问题,但是我怎么配置430的I/O口,电流都300UA以上(接NRF24L01+)。请各位大侠帮忙。(进入LPM ...…

查看全部问答>