历史上的今天
返回首页

历史上的今天

今天是:2025年03月03日(星期一)

正在发生

2020年03月03日 | AVR看门狗心得

2020-03-03 来源:eefocus

简介:AVR单片机系列(例如,ATMEGA168等)使用增强功能的看门狗(Enhanced Watchdog Timer),与原来的看门狗相比较,除了有相同复位的功能以外,还增加了中断的功能设计时。使用看门狗的中断功能,可以实现从Power Down状态唤醒CPU;另外同时能使中断和复位功能,可以在系统发生错误时,先进入中断状态,保存关键数据到EEPROM,然后在进行系统复位。


AVR单片机系列(例如,ATMEGA168等)使用增强功能的看门狗(Enhanced Watchdog Timer),与原来的看门狗相比较,除了有相同复位的功能以外,还增加了中断的功能设计时。使用看门狗的中断功能,可以实现从Power Down状态唤醒CPU;另外同时能使中断和复位功能,可以在系统发生错误时,先进入中断状态,保存关键数据到EEPROM,然后在进行系统复位。


AVR新的看门狗与旧狗(例如,ATMEGA16等)比较,增加了新的功能的同时脾气也有了不少改变。设计时要摸清它的脾气,以防被狗咬。


下面说明以ATMEGA16和ATMEGA168作一个简单比较为例,简要地说明一下注意要点:


看门狗定时器控制寄存器– WDTCR:


1.jpg?imageView2/2/w/550


1.A1tmega168由于具有中断功能,所以WDTCR增加了WDIF和WDIE两个额外的bit的功能;


2.增加了WDP3,溢出周期可以有长达8秒;


3.新的看门狗在初始化时,WDT的值不再一定是0。只要MCUSR寄存器上的WDRF置位,WDT也将被强制置位。这时,如果WDE要清零,必须要WDRF先清零。


4.在设计时即使不用WDT,它也可能在无意中被能使,例如在runaway指针和调电情况下。因此即使不用WDT,在初始代码中一定要检查复位标志,如果WDT系统复位发生要采取处理步骤。


最近重新设计一个项目,由原先使用的ATMEGA16更新到ATMEGA168。把原代码转换后,测试结果异常。经过一天多的测试,才发现是新的看门狗惹的祸。以前用ATMEGA16,在初始化后才开始喂狗,可是新的AVR系列(例如ATMEGA168等),系统复位发生时(除上电复位外) ,WDT可能继续运行,并使用最小溢出周期(大约15mS) ,造成了系统不断复位。根据datasheet,在程序开始时的关狗后一切就恢复正常了:


#include


#include


uint8_t mcusr_mirror;


void get_mcusr(void)


__attribute__((naked))


__attribute__((section(".init3")));


void get_mcusr(void)


{


mcusr_mirror = MCUSR;


MCUSR = 0;


wdt_disable();


}


5.使用看门狗的中断时,当WDIF和WDIE置位,就会产生中断。进入相应的中断程序后,系统自动WDIF和WDIE清零。下次要使用看门狗的中断时必须重新WDIE置位。

推荐阅读

史海拾趣

Datapro International Inc公司的发展小趣事

随着技术的不断进步和市场的不断扩大,Datapro International Inc公司开始寻求新的市场机会。他们发现,随着企业信息化程度的提高,对数据存储和处理的需求也越来越大。于是,公司决定进军企业市场,并开发了一系列针对企业的数据存储解决方案。

在拓展企业市场的过程中,Datapro International Inc公司面临着来自竞争对手的激烈竞争。然而,他们凭借卓越的产品质量、专业的技术服务和灵活的商业模式,成功赢得了客户的信任和支持。随着企业市场的不断拓展,Datapro International Inc公司的业务规模也逐渐扩大。

ABI Electronics公司的发展小趣事

为了进一步拓展业务,ABI Electronics公司开始积极寻求全球市场的布局。通过与各地的电子分销商、代理商建立合作关系,ABI的产品逐渐进入了全球各地的市场。同时,ABI还积极参加各类国际电子展会,展示其最新技术和产品,与全球同行建立了广泛的联系和合作。

Digital Equipment Corp公司的发展小趣事

随着业务的不断扩展和产品的不断创新,DEC在1966年决定公开上市。这次上市不仅为DEC带来了大量的资金,还提升了其在业界的知名度。借助资本市场的力量,DEC能够进一步扩大生产规模,加强研发能力,并推出更多具有竞争力的产品。在上市后的几年里,DEC的销售收入快速增长,成为计算机行业的重要参与者。

Dawning Precision Co Ltd公司的发展小趣事

Dawning Precision Co Ltd(以下简称“Dawning”)成立于本世纪初,当时正值电子行业的快速发展期。公司的创始人张先生是一位在电子行业摸爬滚打多年的资深人士,他看到了精密制造在电子行业中的巨大潜力。然而,初创时期,公司面临着资金短缺、技术瓶颈和市场认知度低等困难。张先生带领团队夜以继日地工作,不断研发新技术,优化产品性能,同时积极寻找投资者和合作伙伴。经过几年的不懈努力,Dawning逐渐在行业中树立了良好的口碑,开始获得客户的认可。

General Dynamics SATCOM Technologies公司的发展小趣事

在国内市场取得一定成绩后,Dawning开始将目光投向国际市场。公司积极参加国际电子展会,与全球知名企业进行交流合作。同时,Dawning还根据不同国家和地区的市场需求,调整产品策略,推出符合当地消费者喜好的产品。经过几年的努力,Dawning的产品已经成功打入欧美、东南亚等多个国家和地区的市场,公司的国际化进程取得了显著进展。

CCS[Custom Computer Services]公司的发展小趣事

CCS公司深知人才是企业发展的核心竞争力。因此,公司高度重视人才培养和团队建设。公司建立了完善的人才培养和激励机制,通过定期的培训、学习和实践锻炼,不断提升员工的专业技能和综合素质。同时,CCS公司还注重团队建设,通过团队建设活动和文化建设,增强员工的凝聚力和归属感,为公司的发展提供有力的人才保障。

问答坊 | AI 解惑

触发器综合问题

module register         #(parameter     Width=8)          (output reg [Width-1:0] out,           input    ...…

查看全部问答>

来长沙参加飞思卡尔智能车竞赛第二天。。。。

本帖最后由 paulhyde 于 2014-9-15 09:13 编辑 今天是来到长沙的第二天,参赛队可以在那里进行现场调试,我们的是上午九点到就点半,下午两点到两点半。 早上七点钟起来,吃完早餐后,坐公车到湖南大学~ 提前 九点钟进入场地调试,呵呵~ 迫不 ...…

查看全部问答>

jffs2文件系統挂載出錯,求助

瘋狂的出jffs2_scan_eraseblock錯誤。 我使用的是 8M Nor Flash 但是 沒有分區,請問 分區的作用是什麽? 這個問題最可能的原因是什麽,仰仗各位的經驗了。…

查看全部问答>

学习wifi有哪些经典的入门书籍?

  小弟是个菜鸟,最近要用到wince下的wifi编程,请高手们指点,推荐几本入门书籍!…

查看全部问答>

新手请教一下EVC的调试方法

请教一下EVC的调试方法 如何使用模拟机,我的模拟机为什么总提示我连不上,我的程序使用我的SDK在目标机上都成功执行了? 我可以在模拟机上单步调试我的程序吗? 我可以在目标机上单步调试我的程序吗?…

查看全部问答>

南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发

南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发 要求:      1:熟悉Delphi开发环境。      2:熟练使用SQL-Server编程语言      3:了解一定的硬件知识和 ...…

查看全部问答>

MSP430F1232 编程和仿真问题

 MSP430F1232 只能用TI GANG430 编程器烧写程序,用利尔达 USB仿真器及自己制作的 JTAG 编程器不能 仿真  , 只能用TI GANG430 编程器烧写程序一次而且并没有烧断熔丝,以后再刷就得用BSL.…

查看全部问答>

问下WWDG是怎么工作的?

1 在WWDG工作时 假如窗口值为0x50 是不是只有在计数值在0x50~0x40之间重新刷入计数值才能不引起mcu复位???   2 还有在RCC配置里有一条RCC_GetFlagStatus(RCC_FLAG_WWDGRST)/检验WWDG复位标志位是否职位是什么意思? 是指MCU本次复位是由W ...…

查看全部问答>