




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第七單元 CC2530看門狗的應(yīng)用目 錄習(xí)題 任務(wù)九 實現(xiàn)自動復(fù)位本章小結(jié)任務(wù)要求使用CC2530看門狗定時器來控制LED1進行周期性閃爍,實現(xiàn)自動復(fù)位。具體要求如下:LED1周期性閃爍時間間隔為1s??撮T狗定時器工作在看門狗模式。任務(wù)分析本任務(wù)要求實現(xiàn)LED1自動復(fù)位,使用看門狗定時器來實現(xiàn)該功能。我們需要知道看門狗定時器的工作模式及寄存器的配置方法。建議學(xué)生帶著以下問題去進行本任務(wù)的學(xué)習(xí)和實踐:什么是看門狗?看門狗是如何工作的?看門狗有哪些工作模式?如何使用看門狗?必備知識1.看門狗簡介(1)看門狗的概念看門狗定時器(WDT,Watch Dog Timer)是單片機的一個組成部分,它實際上
2、是一個計數(shù)器,一般給看門狗一個大數(shù),程序開始運行后看門狗開始倒計數(shù)。如果程序運行正常,過一段時間CPU應(yīng)發(fā)出指令讓看門狗復(fù)位,重新開始倒計數(shù)。如果看門狗減到0就認為程序沒有正常工作,強制整個系統(tǒng)復(fù)位。必備知識(2)看門狗的功能看門狗是在軟件跑飛的情況下CPU自恢復(fù)的一個方式,當(dāng)軟件在選定的時間間隔內(nèi)不能置位看門狗定時器(WDT),WDT就復(fù)位系統(tǒng)??撮T狗可用于電噪聲,電源故障或靜電放電等惡劣工作環(huán)境或高可靠性要求的環(huán)境。如果系統(tǒng)不需要應(yīng)用到看門狗,則WDT可配置成間隔定時器,在選定時間間隔內(nèi)產(chǎn)生中斷。2.CC2530的看門狗模塊必備知識CC2530的看門狗定時器具有以下特性: 四個可選的定時器
3、間隔 看門狗模式 定時器模式 在定時器模式下產(chǎn)生中斷請求WDT可被配置作為看門狗定時器或一般定時器。WDT模塊的執(zhí)行由WDCTL控制??撮T狗定時器緩存器由1個15位計數(shù)器構(gòu)成,時鐘源為32KHz時鐘。注意:實驗者不能訪問該15位計數(shù)器的內(nèi)容。在所有功耗模式下,15位計數(shù)器的內(nèi)容將被保留。在重新進入到工作模式后計數(shù)器將繼續(xù)計數(shù)。必備知識(1)看門狗模式在系統(tǒng)復(fù)位之后,看門狗定時器就被禁用。要設(shè)置WDT 在看門狗模式,必須設(shè)置WDCTL.MODE1:0位為10 。然后看門狗定時器的計數(shù)器從0 開始遞增。在看門狗模式下,一旦定時器使能,就不可以禁用定時器,因此,如果WDT 位已經(jīng)運行在看門狗模式下,
4、再往WDCTL.MODE1:0寫入00 或10 就不起作用了。WDT 運行在一個頻率為32.768 kHz(當(dāng)使用32 kHz XOSC)的看門狗定時器時鐘上。這個時鐘頻率的超時期限等于1.9ms,15.625 ms,0.25 s 和1s,分別對應(yīng)64,512,8192 和32768 的計數(shù)值設(shè)置。如果計數(shù)器達到選定定時器的間隔值,看門狗定時器就必備知識為系統(tǒng)產(chǎn)生一個復(fù)位信號。如果在計數(shù)器達到選定定時器的間隔值之前,執(zhí)行了一個看門狗清除序列,計數(shù)器就復(fù)位到0,并繼續(xù)遞增??撮T狗清除的序列包括在一個看門狗時鐘周期內(nèi),寫入0 xA 到WDCTL.CLR3:0,然后寫入0 x5 到同一個寄存器位。如
5、果這個序列沒有在看門狗周期結(jié)束之前執(zhí)行完畢,看門狗定時器就為系統(tǒng)產(chǎn)生一個復(fù)位信號。當(dāng)看門狗模式下,WDT 使能,就不能通過寫入WDCTL.MODE1:0位改變這個模式,且定時器間隔值也不能改變。在看門狗模式下,WDT 不會產(chǎn)生一個中斷請求。必備知識(2)定時器模式要在一般定時器模式下設(shè)置WDT,必須把WDCTL.MODE1:0位設(shè)置為11。定時器就開始,且計數(shù)器從0開始遞增。當(dāng)計數(shù)器達到選定間隔值,CPU將IRCON2.WDTIF置1,如果IEN2.WDTIE=1且IEN0.EA=1,定時器將產(chǎn)生一個中斷請求(IRCON2.WDTIF/IEN2.WDTIE)。在定時器模式下,可以通過寫入1 到
6、WDCTL.CLR0來清除定時器內(nèi)容。當(dāng)定時器被清除,計數(shù)器的內(nèi)容就置為0。寫入00 或01 到WDCTL.MODE1:0來停止定時器,并清除它為0。必備知識定時器間隔由WDCTL.INT1:0位設(shè)置。在定時器操作期間,定時器間隔不能改變,且當(dāng)定時器開始時必須設(shè)置。在定時器模式下,當(dāng)達到定時器間隔時,不會產(chǎn)生復(fù)位。注意如果選擇了看門狗模式,定時器模式不能在芯片復(fù)位之前選擇。3.CC2530看門狗的相關(guān)寄存器CC2530看門狗的控制寄存器為WDCTL,其功能描述見表7-1。必備知識表7-1 CC2530看門狗定時器控制寄存器WDCTL(0 xC9)必備知識表7-1 CC2530看門狗定時器控制寄
7、存器WDCTL(0 xC9)必備知識4.CC2530看門狗的配置和運用設(shè)置WDCTL.MODE1:0位為10,WDT即工作在看門狗模式,看門狗定時器的計數(shù)器從0 開始遞增??撮T狗模式下,在計數(shù)器達到選定定時器的間隔值之前,必須執(zhí)行一個看門狗清除序列,使計數(shù)器復(fù)位到0,并繼續(xù)遞增。當(dāng)啟動看門狗定時器后,它就會從0開始計數(shù),若程序在規(guī)定的時間間隔內(nèi)沒有及時對其清零(喂狗),看門狗定時器就會復(fù)位系統(tǒng)(相當(dāng)于重啟),如圖7-1所示。必備知識在看門狗模式下,看門狗一旦被使能,就不能通過改變WDCTL.MODE1:0來改變該模式,且選定的計數(shù)器最終計數(shù)值也不能被改變。位域的值在看門狗模式下,看門狗不會產(chǎn)生
8、中斷請求。(在喂狗超時向系統(tǒng)產(chǎn)生一個重置信號。)設(shè)置WDCTL.MODE1:0位為11,則WDT即工作在定時器模式,看門狗定時器的計數(shù)器從0 開始遞增。當(dāng)計數(shù)器達到選定間隔值,CPU將IRCON2.WDTIF置1,如果IEN2.WDTIE=1且IEN0.EA=1,定時器將產(chǎn)生一個中斷請求(IRCON2.WDTIF/IEN2.WDTIE)。必備知識圖7-1 看門狗定時器任務(wù)實施建立任務(wù)10的工程項目,進行代碼設(shè)計和調(diào)試。1.基本設(shè)定本任務(wù)是在看門狗模式下實現(xiàn)LED1閃爍周期1s的自動復(fù)位功能。(1)定時時間間隔設(shè)置要設(shè)定定時時間間隔為1s,首先設(shè)置系統(tǒng)時鐘源震蕩周期為32 kHz,可通過時鐘控制
9、命令寄存器CLKCONCMD.OSC32K位來設(shè)定。然后設(shè)定看門狗定時器控制寄存器WDCTL.INT1:0為00設(shè)定時間間隔為1s。設(shè)置代碼為: CLKCONCMD &= 0 x80; /系統(tǒng)時鐘源選擇32kHz WDCTL = 0 x00; /時間間隔一秒任務(wù)實施(2)看門狗定時器WDT工作模式設(shè)置設(shè)置WDT 為看門狗模式,設(shè)置WDCTL.MODE1:0位為10 。設(shè)置代碼為: WDCTL = 0 x00; /看門狗模式 (3)喂狗設(shè)置??撮T狗清除的序列包括在一個看門狗時鐘周期內(nèi),寫入0 xA 到WDCTL.CLR3:0,然后寫入0 x5 到同一個寄存器位。即對寄存器WDCTL進行如下配置:
10、 WDCTL |= 0 xA0; WDCTL |= 0 x50;任務(wù)實施但本任務(wù)要求LED1周期閃爍自動復(fù)位,所以我們在規(guī)定的時間間隔1s內(nèi)不必對其清零(喂狗)。2.代碼設(shè)計對系統(tǒng)的各部分功能分別用函數(shù)實現(xiàn),主函數(shù)調(diào)用各函數(shù)即可。(1)LED初始化void led_Init(void) P1SEL = 0 x00; /P1為普通 I/O 口 P1DIR |= 0 x01; /P1.0輸出 LED1 = 0; / 滅LED1 任務(wù)實施(2)系統(tǒng)時鐘初始化void systemClock_Init(void) unsigned char clkconcmd,clkconsta; CLKCONCMD
11、 &= 0 x80; /* 等待所選擇的系統(tǒng)時鐘源(主時鐘源)穩(wěn)定 */ clkconcmd = CLKCONCMD; / 讀取時鐘控制寄存器CLKCONCMD任務(wù)實施 do clkconsta = CLKCONSTA; / 讀取時鐘狀態(tài)寄存器CLKCONSTA while(clkconsta != clkconcmd); / 直到選擇的系統(tǒng)時鐘源(主時鐘源)已經(jīng)穩(wěn)定 任務(wù)實施(3)軟件延時void delay(unsigned int time) unsigned int I; unsigned char j; for(I = 0; I time; i+) for(j = 0; j 240;
12、 j+) asm(“NOP”); asm(“NOP”); asm(“NOP”); 、 / asm是內(nèi)嵌匯編,nop是空操作,執(zhí)行一個指令周期 任務(wù)實施(4)看門狗初始化void watchdog_Init(void) WDCTL = 0 x00; /看門狗模式,時間間隔一秒 WDCTL |= 0 x08; /啟動看門狗 (5)喂狗void FeedWD(void) WDCTL |= 0 xA0; WDCTL |= 0 x50; 任務(wù)實施(6)主程序void main(void) systemClock_Init(); led_Init(); watchdog_Init(); delay(300
13、0); /延時小于1秒。若大于1秒,會出現(xiàn)什么情況? LED1 =1; /亮LED1 任務(wù)實施while(1) / FeedWD(); /系統(tǒng)不斷復(fù)位,小燈每隔1s閃爍一次) 編譯并生成目標(biāo)代碼,下載到實驗板上運行,觀察LED1的顯示效果。也可使用示波器觀察LED1控制引腳的信號輸出。任務(wù)拓展(1)看門狗應(yīng)用拓展練習(xí)1在此任務(wù)程序設(shè)計中,我們在主函數(shù)中把喂狗函數(shù)FeedWD注釋掉,請把該函數(shù)加入系統(tǒng)重新編譯下載至實驗板運行,觀察現(xiàn)象。LED1還閃爍嗎?為什么?(2)看門狗應(yīng)用應(yīng)用拓展練習(xí)2使看門狗定時器WDT工作在定時器模式,控制LED1的亮/滅,具體要求如下:LED1亮滅時間間隔2s。采用中
14、斷方式,在中斷服務(wù)函數(shù)中切換一次LED1的亮滅狀態(tài)。(3)定時/計數(shù)器應(yīng)用拓展練習(xí)3目 錄習(xí)題 任務(wù)十 實現(xiàn)自動復(fù)位本章小結(jié)本章小結(jié)看門狗的使用可以總結(jié)為:選擇模式選擇定時器間隔放狗喂狗(1)選擇模式:看門狗定時器有兩種模式,即“看門狗模式”和“定時器”模式。在定時器模式下,它就相當(dāng)于普通的定時器,達到定時間隔會產(chǎn)生中斷(可以在ioCC2530.h文件中找到其中斷向量為WDT_VECTOR);在看門狗模式下,當(dāng)達到定時間隔時,不會產(chǎn)生中斷,取而代之的是向系統(tǒng)發(fā)送一個復(fù)位信號。本章小結(jié)本任務(wù)中,通過WDCTL.MODE位來選擇為看門狗定時器模式。(2)選擇定時間隔:有四種可供選擇的時鐘周期,為了測試方便,我們選擇時間間隔為1s(即令WDCTL.INT=00)。(3)放狗:令WDCTL.EN=1,即可啟動看門狗定時器。(4)喂狗:定時器啟動之后,就會從0開始計數(shù)。在其計數(shù)值達到32768之前(即1s),若我們用以下代碼喂狗:本章小結(jié)WDCTL=0 x0A;WDCTL=0 x05;則定時器的計數(shù)值會被清0,然后它會再次從0 x0000開始計數(shù),這樣就防止了其發(fā)送復(fù)位信號,表現(xiàn)在開發(fā)板上就是:LED1會一直亮著,不會閃爍;若我們不喂狗(即把此代碼注釋掉),那么當(dāng)定時器計數(shù)達到32768時,就會發(fā)出復(fù)位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中原地產(chǎn)手房買賣合同
- 學(xué)校采購校服合同
- 工地門窗安裝合同
- 建設(shè)工程勞務(wù)分包合同
- 場地汽車租賃合同
- 污水處理廠施工合同
- 漳州理工職業(yè)學(xué)院《飛機液壓與燃油系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 漳州理工職業(yè)學(xué)院《室內(nèi)模型設(shè)計》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西水利職業(yè)學(xué)院《現(xiàn)代儀器分析綜合實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京郵電大學(xué)世紀(jì)學(xué)院《物流管理》2023-2024學(xué)年第二學(xué)期期末試卷
- CentOS 7系統(tǒng)配置與管理(Linux 試題庫) 習(xí)題答案 (楊海艷 第2版)
- 中國氫內(nèi)燃機行業(yè)發(fā)展環(huán)境、市場運行格局及前景研究報告-智研咨詢(2024版)
- 開學(xué)季初三沖刺中考開學(xué)第一課為夢想加油課件
- 2025年四川綿陽科技城新區(qū)投資控股集團有限公司招聘筆試參考題庫附帶答案詳解
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年參考題庫含答案解析
- 2024年沙洲職業(yè)工學(xué)院高職單招語文歷年參考題庫含答案解析
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫【學(xué)生專用】
- 2025年人教版英語五年級下冊教學(xué)進度安排表
- 水文工程施工方案
- 學(xué)校食堂餐廳管理者食堂安全考試題附答案
- 2025延長石油(集團)限責(zé)任公司社會招聘高頻重點提升(共500題)附帶答案詳解
評論
0/150
提交評論