AVR芯片大多數都有看門狗功能,看門狗電路實際上是一個定時電路,該定時器使用內部獨立的1M的RC振蕩器,根據設置看門狗的定時時間,當程序運行超過規定的時間后,如果沒有及時復位看門狗(俗稱喂狗),看門狗定時器就會發生溢出,這個溢出將導致程序復位,從而保證在程序跑飛的情況下,不會長時間沒有響應。WIN AVR內部帶有看門狗函數,需要包含頭文件:#include 新的AVR系列(例如,ATMEGA324P等)使用增強功能的看門狗(Enhanced Watchdog Timer),與原來的看門狗相比較,除了有相同復位的功能以外,還增加了中斷的功能設計。使用看門狗的中斷功能,可以實現從Power Down狀態喚醒CPU;另外同時使能中斷和復位功能,可以在系統發生錯誤時,先進入中斷狀態,保存關鍵數據到EEPROM,然后再進行系統復位。 下面說明以ATMEGA324P作一個簡單例子,簡要地說明一下注意要點: 看門狗定時器控制寄存器– WDTCR: 1.A1tmega168由于具有中斷功能,所以WDTCR增加了WDIF和WDIE兩個額外的bit的功能; 2.增加了WDP3,溢出周期可以有長達8秒; 3.新的看門狗在初始化時,WDT的值不再一定是0。只要MCUSR寄存器上的WDRF置位,WDT也將被強制置位。這時,如果WDE要清零,必須要WDRF先清零。 4.在設計時即使不用WDT,它也可能在無意中被使能,例如在runaway指針和掉電情況下。因此即使不用WDT,在初始代碼中一定要檢查復位標志,如果WDT系統復位發生要采取處理步驟。 AVR的看門狗是軟狗,也是硬狗! 如果熔絲位不設定,就是軟狗,因為程序可以關閉,也可以打開 如果熔絲位設定了,就是硬狗,因為程序只可以清除,而無法打開或關閉!如果你的while(1)循環體內每循環一次的時間不超過看門狗的復位時間,只要喂狗一次就可以了。 最近重新設計一個項目,由原先使用的ATMEGA16更新到ATMEGA324P。把原代碼轉換后,測試結果異常。經過一天多的測試,才發現是新的看門狗惹的禍。以前用ATMEGA16,在初始化后才開始喂狗,可是新的AVR系列(例如ATMEGA324P等),系統復位發生時(除上電復位外) ,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。 //在AVR ICC中對M128的初始化時最近使用下種方式 void Init_watdog(void) { WDR(); WDTCR = 0x1F;//設置最大分頻 WDTCR = 0x0f;//啟動看門狗 } WDR(); 補充,特別說明 使能看門狗不能用 |=,必須要直接賦值=。 還有數據手冊上說: 改變定時器溢出時間及禁止(已經使能的)看門狗定時器需要執行一個特定的時間序列: 1. 在同一個指令內對WDCE 和WDE 寫"1“,即使WDE 已經為"1“。 2. 在緊接的4 個時鐘周期之內將WDE 和WDP 設置為合適的值,而WDCE 寫"0”。 所以在WDTCR=0x0E;之前加上一句WDTCR=0x1F;
上一篇:以AVR為基礎的E2PROM數據動態存儲策略
下一篇:AVR單片機的定義以及優缺點匯總
推薦閱讀
史海拾趣
近年來,電子行業面臨著技術更新換代迅速、市場競爭激烈的挑戰。Beta Dyne也不例外,公司面臨著來自同行的競爭壓力以及客戶需求不斷變化的挑戰。為了應對這些挑戰,Beta Dyne不斷調整產品策略,加大研發投入,推出了一系列創新產品,并積極拓展新的應用領域。
Altus深知人才是企業發展的根本。因此,公司一直注重人才培養和引進工作。通過建立完善的培訓體系和激勵機制,Altus吸引了大量優秀人才加入公司,并為他們提供了廣闊的發展空間和職業晉升機會。這些人才在公司的各個崗位上發揮著重要作用,推動了公司的技術創新和市場拓展。同時,Altus還注重員工的福利待遇和文化建設,營造了積極向上、團結和諧的工作氛圍。
為了降低經營風險并尋求新的增長點,AIC公司開始實施多元化發展戰略。除了繼續深耕連接器領域外,公司還積極拓展至線纜、接口等其他相關領域。通過不斷的技術研發和市場拓展,AIC公司在這些領域也取得了不俗的成績,實現了業務的多元化發展。
Azoteq公司成立于1998年,由Frederick Bruwer博士創立。作為一家無晶圓廠半導體公司,Azoteq從一開始就致力于開發創新的傳感解決方案。其首個產品系列——LightSense?,是針對LED手電筒和穿戴頭燈的智能控制而設計的。這一產品系列的推出,為Azoteq在半導體設計制造領域奠定了堅實的基礎。
為了進一步擴大市場份額,高頻電子積極實施全球化戰略。公司在全球范圍內建立了銷售網絡和服務體系,與眾多國際知名企業建立了長期合作關系。同時,高頻電子還針對不同地區的市場需求,定制化開發符合當地標準的產品和服務。這些努力使得高頻電子的產品和服務能夠覆蓋全球多個國家和地區,為公司帶來了穩定的收入來源和持續增長的動力。
本文詳細比較了現有幾類主流汽車總線系統的特點。這些比較將有助于界定下一代高安全性、高容錯性的分布式汽車通信網絡標準。 汽車總線協議 隨著汽車功能的不斷增加、可靠性要求的不斷提高以及價格的不斷下降,越來越多的電子控制單元(ECU)將被引 ...… 查看全部問答∨ |
故障為:開機瞬間有電壓。斷開所有的負載。接上假負載也是一樣的。就是斷了可控硅的觸發端也只是瞬間有電壓。該機的CPU用的是HAIER8823-V4。0 不知道誰有該芯片的資料?最好是整機的電路圖。… 查看全部問答∨ |
SDHC DMAReceive TIMEOUT;SDHCD:BusRequestHandler() - DMAReceive() failed 標題說明了什么, 怎么樣與SD卡驅動通信,如控制其停止… 查看全部問答∨ |
我剛接觸嵌入式,用wince開發,平臺是PXA255,應如何快速入門? 1.wince操作系統開發平臺PB不會用,搞不清楚那個菜單、按扭是干什么用的,用了又有什么作用,基本的操作也不會。急需wince 的基本入門教程。 2.對于在網上找的關于嵌入式wince開發 ...… 查看全部問答∨ |
本書是一本以從51到ARM--32位嵌入式系統為論述對象的理論入門專著,內容主要涉及51系列單片機的基礎知識、ARM處理器的基本知識、ARM指令和51系列指令之間的差異、ARM處理器開發工具的使用等方面。 本書從51系列單片機的一般知識出發,將ARM處理 ...… 查看全部問答∨ |
|
1.Warning (10272): Verilog HDL Case Statement warning at usb.v(86): case item expression covers a value already covered by a previous case item2.Warning (10235): Verilog HDL Always Construct warning at usb.v(72): variable \"readMe ...… 查看全部問答∨ |
不論密封式的還是溢流式的蓄電池,影響其壽命的主要因素有以下四種:電池的化學組成、電池的環境溫度、電池的使用循環、電池維護和服務。 UPS電池化學組成 UPS電源容量的有效性,是由電池中有效 ...… 查看全部問答∨ |
MSP430單片機是TI公司1996年開始推向市場的超低功耗微處理器,另外他還集成了很多模塊功能,從而使得用一片MSP430 芯片可以完成多片芯片才能完成的功能,大大縮小了產品的體積與成本。如今,MSP430單片機已經用于各個領域,尤其是儀器儀表、監測、 ...… 查看全部問答∨ |