久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5371|回復: 0
打印 上一主題 下一主題
收起左側

新的AVR系列(例如,ATMEGA168等

[復制鏈接]
跳轉到指定樓層
樓主
ID:83710 發表于 2015-6-24 19:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
新的AVR系列(例如,ATMEGA168等)使用增強功能的看門狗(Enhanced Watchdog Timer),與原來的看門狗相比較,除了有相同復位的功能以外,還增加了中斷的功能設計時。使用看門狗的中斷功能,可以實現從Power Down狀態喚醒CPU;另外同時能使中斷和復位功能,可以在系統發生錯誤時,先進入中斷狀態,保存關鍵數據到EEPROM,然后在進行系統復位。

AVR新的看門狗與舊狗(例如,ATMEGA16等)比較,增加了新的功能的同時脾氣也有了不少改變。設計時要摸清它的脾氣,以防被狗咬。

下面說明以ATMEGA16和ATMEGA168作一個簡單比較為例,簡要地說明一下注意要點:
看門狗定時器控制寄存器– WDTCR:




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 <stdint.h>
#include <avr/wdt.h>
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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久99久久99| 一级特黄色毛片 | 亚洲精品一区国产精品 | 成人精品国产免费网站 | 99精品电影 | www.国产视频 | 欧美成人a∨高清免费观看 色999日韩 | 91久久久久| 国产日韩精品在线 | 欧美日韩久久久 | 久久久久久高潮国产精品视 | 成人影院在线 | 亚洲欧美在线一区 | 亚洲国产成人精品一区二区 | 欧洲免费毛片 | 青春草国产 | 欧美专区在线视频 | 最近日韩中文字幕 | 国产精品久久久乱弄 | 国产一区二区三区四区 | 玖玖综合网| 中文字幕欧美一区 | 中文字幕精品一区二区三区精品 | h视频在线免费看 | 日本特黄a级高清免费大片 成年人黄色小视频 | 高清国产午夜精品久久久久久 | 91 视频网站 | 国产精品久久久久久久久久 | 天天射天天干 | 中文字幕一二三区 | 91精品国产色综合久久 | 国产免费黄网 | 日韩在线一区二区 | 中文字幕国 | 五月婷婷丁香婷婷 | 91国内外精品自在线播放 | 一级片毛片 | 美女黄视频网站 | 欧美片网站免费 | 艹逼网 | 国产一区999 |