版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、v第第7章章-定時部件定時部件.LOGO vS3C2440芯片看門狗定時器的作用:當(dāng)系芯片看門狗定時器的作用:當(dāng)系統(tǒng)程序出現(xiàn)功能錯亂,引起系統(tǒng)程序死循環(huán)統(tǒng)程序出現(xiàn)功能錯亂,引起系統(tǒng)程序死循環(huán)時,能中斷該系統(tǒng)程序的不正常運行,恢復(fù)時,能中斷該系統(tǒng)程序的不正常運行,恢復(fù)系統(tǒng)程序的正常運行。系統(tǒng)程序的正常運行。 v嵌入式系統(tǒng)由于運行環(huán)境的復(fù)雜,既所處環(huán)嵌入式系統(tǒng)由于運行環(huán)境的復(fù)雜,既所處環(huán)境中有較強的干擾信號,或者系統(tǒng)底層程序境中有較強的干擾信號,或者系統(tǒng)底層程序本身的不完善,因而,不能排除系統(tǒng)程序不本身的不完善,因而,不能排除系統(tǒng)程序不會出現(xiàn)死循環(huán)現(xiàn)象。會出現(xiàn)死循環(huán)現(xiàn)象。 v 在農(nóng)村,幾乎每家每戶
2、都養(yǎng)狗,在農(nóng)村,幾乎每家每戶都養(yǎng)狗,其主要是防止主人不在家的時候家里其主要是防止主人不在家的時候家里出現(xiàn)異常事故,比如被盜等。出現(xiàn)異常事故,比如被盜等。v 同樣,計算機中也有看門狗,其同樣,計算機中也有看門狗,其作用是復(fù)位嵌入式系統(tǒng)在無人值守的作用是復(fù)位嵌入式系統(tǒng)在無人值守的時候出現(xiàn)異常導(dǎo)致時候出現(xiàn)異常導(dǎo)致“死機死機”現(xiàn)象?,F(xiàn)象。人們?yōu)槭裁匆B(yǎng)狗?計算機為什么需要看門狗?為什么需要看門狗狗看門狗來源于生活對象不同看門狗的作用v電源電源供電供電v干擾信干擾信號號v單片單片機機v正行運正行運行行v運行出運行出錯錯v看門狗看門狗復(fù)位復(fù)位v看門狗使單片機看門狗使單片機v從運行錯誤狀態(tài)從運行錯誤狀態(tài)v恢
3、復(fù)到正常運行恢復(fù)到正常運行v狀態(tài)。狀態(tài)。 看門狗(WatchDog)是計算機引入的一種專門的復(fù)位監(jiān)控電路。 一旦MCU運行出現(xiàn)故障,就強制對MCU進行硬件復(fù)位,確保MCU可靠和安全運行??撮T狗的應(yīng)用場合vDVR視頻監(jiān)控視頻監(jiān)控系統(tǒng)系統(tǒng)v看門狗看門狗v嵌入式儀表嵌入式儀表v智能電飯智能電飯煲煲v智能電冰智能電冰箱箱v網(wǎng)絡(luò)服務(wù)網(wǎng)絡(luò)服務(wù)器器看門狗的工作原理v看門狗工作原理示意圖看門狗工作原理示意圖MCUMCU完成一次喂狗操作完成一次喂狗操作在看門狗在看門狗“饑餓饑餓”前等待下次喂狗前等待下次喂狗程序異常,喂狗超時,復(fù)位單片機程序異常,喂狗超時,復(fù)位單片機看門狗的工作流程123FD123FDFD1功能
4、2執(zhí)行故障1v復(fù)位信號復(fù)位信號v CPU CPUv執(zhí)行順序執(zhí)行順序v喂狗周期喂狗周期v喂狗周期小于看門狗等喂狗周期小于看門狗等v待時間,看門狗不動作待時間,看門狗不動作v程序出現(xiàn)異常程序出現(xiàn)異常v超過喂狗時間超過喂狗時間v 看門狗輸看門狗輸出出v 復(fù)位信號復(fù)位信號v功能功能n n執(zhí)執(zhí)v行耗時行耗時v喂喂狗狗v耗耗時時vCPUCPU復(fù)位后進入復(fù)位后進入v正常工作狀態(tài)正常工作狀態(tài)vt tvt t功能1功能2功能3喂狗喂狗超時復(fù)位MCUv微處理器程序流程微處理器程序流程v看門狗工作流程看門狗工作流程看門狗的種類及用法v看門狗的種類有兩種,他們的使用方法也不同??撮T狗的種類有兩種,他們的使用方法也不同
5、??撮T狗外置的獨立看門狗控制器內(nèi)置看門狗改變輸入功能引腳的電平向看門狗寄存器寫 入特定數(shù)據(jù)序列 v喂狗接口喂狗接口v通過此喂狗接口實現(xiàn)喂狗操作通過此喂狗接口實現(xiàn)喂狗操作v操作方式操作方式v操作方式操作方式看門狗的正確用法 一般情況下,看門狗主要是針對在實際應(yīng)用環(huán)境中出現(xiàn)強烈干擾而導(dǎo)致程序跑飛的意外情況。v正行運正行運行行v運行出運行出錯錯v看門狗看門狗復(fù)位復(fù)位看門狗使用誤區(qū) 有部分工程師,尤其是入門級水平的開發(fā)者,誤將看門狗的使用作為解決程序本身存在bug導(dǎo)致程序跑飛的問題。v正行運正行運行行v運行出運行出錯錯v看門狗看門狗復(fù)位復(fù)位程序本身存在bugv誤區(qū)誤區(qū)v喂狗喂狗v不要在定時器程序中周期
6、喂狗!否則芯片將無法從死循環(huán)中恢復(fù)!不要在定時器程序中周期喂狗!否則芯片將無法從死循環(huán)中恢復(fù)! 看門狗周期設(shè)置 看門狗定時器的周期值應(yīng)大于功能模塊的最長運行時間程序員應(yīng)該在功能模塊的前后均執(zhí)行喂狗操作。v運行運行120msv的功能模塊的功能模塊v喂狗喂狗在功能模塊運行100ms內(nèi)插入喂狗指令溫馨提示v歷史的經(jīng)驗和教訓(xùn)歷史的經(jīng)驗和教訓(xùn)v 我們不能指望看門狗解決所有的問題,有時即使在軟我們不能指望看門狗解決所有的問題,有時即使在軟件中加了看門狗程序,軟件仍然會死機。這原因是多方面件中加了看門狗程序,軟件仍然會死機。這原因是多方面的,比如程序因為某些異常狀況而觸發(fā)死循環(huán),而該死循的,比如程序因為某些
7、異常狀況而觸發(fā)死循環(huán),而該死循環(huán)中沒有喂狗程序。因此,想要保住系統(tǒng)的穩(wěn)定性,必須環(huán)中沒有喂狗程序。因此,想要保住系統(tǒng)的穩(wěn)定性,必須增強程序的健壯性,提高軟硬件的抗干擾能力。增強程序的健壯性,提高軟硬件的抗干擾能力。 1.什么是看門狗?什么是看門狗?2.看門狗喂狗的描述?看門狗喂狗的描述?3.watchdog存在的意義是什么?存在的意義是什么?4.s3c2440寄存器的三個寄存器編程操作及作用?寄存器的三個寄存器編程操作及作用?5.看門狗工作原理描述?看門狗工作原理描述?vwatchdogwatchdog本質(zhì)上是一種定時器,那么普通定時器所擁有的特征它也應(yīng)本質(zhì)上是一種定時器,那么普通定時器所擁有
8、的特征它也應(yīng)該具備,是的,當(dāng)它記時超時時也會引起事件的發(fā)生,只是這個事件除該具備,是的,當(dāng)它記時超時時也會引起事件的發(fā)生,只是這個事件除了可以是系統(tǒng)中斷外,它也可以是一個系統(tǒng)重起信號了可以是系統(tǒng)中斷外,它也可以是一個系統(tǒng)重起信號(Reset Signal)(Reset Signal),可以,可以這么說吧,能發(fā)送系統(tǒng)重起信號的定時器我們就叫它這么說吧,能發(fā)送系統(tǒng)重起信號的定時器我們就叫它watchdog.watchdog.vwatchdog,watchdog,中文名稱叫做中文名稱叫做“看門狗看門狗”,全稱,全稱watchdog timer,watchdog timer,從字面上我們從字面上我們可
9、以知道其實它屬于一種定時器。然而它與我們平常所接觸的定時器在作可以知道其實它屬于一種定時器。然而它與我們平常所接觸的定時器在作用上又有所不同。普通的定時器一般起記時作用,記時超時用上又有所不同。普通的定時器一般起記時作用,記時超時(Timer Out)(Timer Out)則則引起一個中斷,例如觸發(fā)一個系統(tǒng)時鐘中斷。引起一個中斷,例如觸發(fā)一個系統(tǒng)時鐘中斷。v1.什么是看門狗?什么是看門狗?v2.看門狗喂狗工作描述看門狗喂狗工作描述 當(dāng)一個硬件系統(tǒng)開啟了當(dāng)一個硬件系統(tǒng)開啟了watchdog 功能,那么運行功能,那么運行在這個硬件系統(tǒng)之上的軟件必須在規(guī)定的時間間隔內(nèi)向在這個硬件系統(tǒng)之上的軟件必須在
10、規(guī)定的時間間隔內(nèi)向watchdog發(fā)送一個信號發(fā)送一個信號.這個行為簡稱為這個行為簡稱為喂狗喂狗(feed dog),以免,以免watchdog記時超時引發(fā)系統(tǒng)重記時超時引發(fā)系統(tǒng)重起。起。v3watchdog存在的意義是什么?存在的意義是什么?v你可能會問你可能會問watchdog存在的意義是什么?開啟了存在的意義是什么?開啟了watchdog之后軟件必須定時向它發(fā)信息,這不是麻之后軟件必須定時向它發(fā)信息,這不是麻煩又耗費資源的行為嗎?其實這個行為很重要,這個行煩又耗費資源的行為嗎?其實這個行為很重要,這個行為是軟件向硬件報告自身運行狀態(tài)的一中手法。一個軟為是軟件向硬件報告自身運行狀態(tài)的一中手
11、法。一個軟件運行良好,那么它應(yīng)該可以在規(guī)定的時間間隔內(nèi)向件運行良好,那么它應(yīng)該可以在規(guī)定的時間間隔內(nèi)向watchdog發(fā)送信息發(fā)送信息.v若軟件由于某個不當(dāng)?shù)牟僮鞫M入死循環(huán)若軟件由于某個不當(dāng)?shù)牟僮鞫M入死循環(huán)(也就是俗也就是俗稱的死機稱的死機),則他無法向,則他無法向watchdog發(fā)送信息了,發(fā)送信息了,watchdog將發(fā)生記時超時,從而引起硬件重起。將發(fā)生記時超時,從而引起硬件重起。4s3c2410watchdog的操作v4.s3c2440寄存器的三個寄存器編程操作及作用寄存器的三個寄存器編程操作及作用vWTCON:watchdog控制寄存器控制寄存器vWTDAT:watchdog數(shù)據(jù)
12、寄存器數(shù)據(jù)寄存器vWTCNT:watchdog記數(shù)寄存器記數(shù)寄存器v5.看門狗工作原理描述看門狗工作原理描述v.在開啟在開啟watchdog之前,我們必需在寄存器之前,我們必需在寄存器WTDAT里面存有一個值,在里面存有一個值,在watchdog開啟之后開啟之后這個值會被自動加載進寄存器這個值會被自動加載進寄存器WTCNT中,中,WTCNT的作用將在下面進行講解,現(xiàn)在你只需要的作用將在下面進行講解,現(xiàn)在你只需要知道知道WTDAT必須有一個值,這個值將被自動裝進必須有一個值,這個值將被自動裝進WTCNT中中。.Watchdog根據(jù)根據(jù)PCLK,Prescaler Value,Clock Sele
13、ct會產(chǎn)生一個會產(chǎn)生一個watchdog自己的工作周期,自己的工作周期,我們把這個工作周期記為我們把這個工作周期記為t_watchdog(注(注2),),watchdog在一個在一個t_watchdog周期結(jié)束時會產(chǎn)生一周期結(jié)束時會產(chǎn)生一個記數(shù)遞減信號,每當(dāng)這個信號產(chǎn)生時,個記數(shù)遞減信號,每當(dāng)這個信號產(chǎn)生時,WTCNT中的中的值便減值便減1,若在,若在WTCNT遞減為遞減為0(Timer Out)的時候的時候軟件層還沒有重新往軟件層還沒有重新往WTCNT中寫入數(shù)值中寫入數(shù)值(這個行為便這個行為便是我上文提到的喂狗是我上文提到的喂狗),則,則watchdog觸發(fā)觸發(fā)Reset Signal,系統(tǒng)
14、重起。,系統(tǒng)重起。根據(jù)上述的描述,我們可以更形象地描述根據(jù)上述的描述,我們可以更形象地描述watchdog的工作原理和的工作原理和3個寄存器之間的相互關(guān)系:個寄存器之間的相互關(guān)系:WTCNT通過通過WTDAT得到一個值,得到一個值,watchdog在每個在每個t_watchdog周期里向周期里向WTCNT發(fā)送一個遞減信號,當(dāng)發(fā)送一個遞減信號,當(dāng)WTCNT的值遞的值遞減到減到0的時候則發(fā)生的時候則發(fā)生time out,重而重起系統(tǒng)。,重而重起系統(tǒng)。LOGOv S3C2440芯片的看門狗定時器有芯片的看門狗定時器有2種工作模式:種工作模式: 帶中斷請求信號的常規(guī)時隙定時器。帶中斷請求信號的常規(guī)時隙
15、定時器。 產(chǎn)生內(nèi)部復(fù)位信號的定時器,即當(dāng)定時器中的計數(shù)器值產(chǎn)生內(nèi)部復(fù)位信號的定時器,即當(dāng)定時器中的計數(shù)器值變?yōu)樽優(yōu)?時,產(chǎn)生一個寬度為時,產(chǎn)生一個寬度為128 個個PCLK(系統(tǒng)時鐘周期(系統(tǒng)時鐘周期)的復(fù)位脈沖信號。)的復(fù)位脈沖信號。 看門狗定時器邏輯功能框圖如下:看門狗定時器邏輯功能框圖如下: LOGOvS3C2440芯片的看門狗定時器邏輯中含有芯片的看門狗定時器邏輯中含有3個個控制其操作的專用寄存器:控制其操作的專用寄存器:n看門狗控制寄存器(WTCON)n計數(shù)常數(shù)寄存器(WTDAT)n看門狗計數(shù)器寄存器(WTCNT) LOGO(1)看門狗控制寄存器()看門狗控制寄存器(WTCON) 用
16、來控制看門狗定時器是否允許工作。其內(nèi)容是可讀用來控制看門狗定時器是否允許工作。其內(nèi)容是可讀/寫寫的的LOGO(2)計數(shù)常數(shù)寄存器()計數(shù)常數(shù)寄存器(WTDAT)v計數(shù)常數(shù)寄存器用來存儲看門狗定時器的溢出時計數(shù)常數(shù)寄存器用來存儲看門狗定時器的溢出時間間隔值,既從定時器的計數(shù)器開始工作,到計間間隔值,既從定時器的計數(shù)器開始工作,到計數(shù)器值變?yōu)閿?shù)器值變?yōu)?的時間間隔。的時間間隔。v計數(shù)常數(shù)通過下面公式計算求得:計數(shù)常數(shù)通過下面公式計算求得: 計數(shù)常數(shù)計數(shù)常數(shù) = 所需時間間隔所需時間間隔/計數(shù)時鐘周期計數(shù)時鐘周期 = 所需時間間隔所需時間間隔(PCLK / (預(yù)分頻器值預(yù)分頻器值 + 1) / 分割
17、因子分割因子) LOGO(3)看門狗計數(shù)器寄存器()看門狗計數(shù)器寄存器(WTCNT)v看門狗計數(shù)器寄存器正常情況下用作減看門狗計數(shù)器寄存器正常情況下用作減1計數(shù)器計數(shù)器,它對計數(shù)時鐘信號進行減,它對計數(shù)時鐘信號進行減1計數(shù),既每來一個計數(shù),既每來一個計數(shù)時鐘脈沖,計數(shù)器內(nèi)的值減計數(shù)時鐘脈沖,計數(shù)器內(nèi)的值減1。 vWTCNT寄存器在看門狗定時器工作時存儲當(dāng)前寄存器在看門狗定時器工作時存儲當(dāng)前計數(shù)值。計數(shù)值。LOGO示例示例7-1v若一個采用若一個采用S3C2440芯片為核心開發(fā)的嵌入式芯片為核心開發(fā)的嵌入式系統(tǒng)需要看門狗功能,監(jiān)測系統(tǒng)程序的周期不大系統(tǒng)需要看門狗功能,監(jiān)測系統(tǒng)程序的周期不大于于4
18、0us,PCLK=50MHz。那么,我們需要使。那么,我們需要使用下面一段程序來完成初始化看門狗:用下面一段程序來完成初始化看門狗: ldr r0,=WTDAT ;WTDAT寄存器對應(yīng)的地址賦給寄存器對應(yīng)的地址賦給R0 ldr r1,=0 x7d ;計數(shù)器初始值計數(shù)器初始值 str r1,r0 ldr r0,=WTCON ;WTCON寄存器對應(yīng)的地址賦給寄存器對應(yīng)的地址賦給R0 ldr r1,=0 x0021 ;使能看門狗及其復(fù)位功能,分割器值設(shè)為使能看門狗及其復(fù)位功能,分割器值設(shè)為16 str r1,r0 LOGO v實時時鐘部件實時時鐘部件RTC是用于提供年、月、日、時、是用于提供年、月、
19、日、時、分、秒、星期等實時時間信息的定時部件。它通分、秒、星期等實時時間信息的定時部件。它通常在系統(tǒng)電源關(guān)閉后,由后備電池供電。常在系統(tǒng)電源關(guān)閉后,由后備電池供電。vRTC部件的主要特點有:部件的主要特點有: 年、月、日、時、分、秒、星期等信息采用年、月、日、時、分、秒、星期等信息采用BCDBCD碼表示。碼表示。 閏年發(fā)生器。閏年發(fā)生器。 具有報警功能,能提供報警中斷或者系統(tǒng)在節(jié)電模式下的喚醒。具有報警功能,能提供報警中斷或者系統(tǒng)在節(jié)電模式下的喚醒。 擁有獨立的電源引腳(擁有獨立的電源引腳(RTCVDDRTCVDD)。)。 支持支持RTOSRTOS內(nèi)核時間片所需的毫秒計時中斷。內(nèi)核時間片所需的
20、毫秒計時中斷。 進位復(fù)位功能。進位復(fù)位功能。 LOGOLOGOvRTC的時間片計時器用于產(chǎn)生一個中斷請求,TICNT 寄存器有一個中斷使能位,和計數(shù)器中的值一起用來控制中斷。當(dāng)計數(shù)器的值變?yōu)?時,引起時間片計時中斷。中斷信號的周期用下列公司計算: 周期=( n + 1 )/128sv上式中,n代表時間片計數(shù)器中的值,范圍是1127。RTC的時間片計時器可以用來產(chǎn)生實時操作系統(tǒng)內(nèi)核所需的時間片。 LOGOv RTC部件內(nèi)部有許多用于控制其操作的寄存器。通過編部件內(nèi)部有許多用于控制其操作的寄存器。通過編程對這些寄存器進行設(shè)定,用戶就可以控制程對這些寄存器進行設(shè)定,用戶就可以控制RTC部件的部件的工
21、作。工作。 (1)RTC控制寄存器控制寄存器(RTCCON) 【0 x57000040】LOGO(2)時間片計數(shù)器()時間片計數(shù)器(TICNT)v時間片計數(shù)器中的值計算公式:時間片計數(shù)器中的值計算公式: n 周期周期 128s 1 n值的范圍是:值的范圍是:1127v除了上述的寄存器,還有年、月、日等數(shù)值寄存除了上述的寄存器,還有年、月、日等數(shù)值寄存器,其格式請參考教材。器,其格式請參考教材。 LOGO vRTC部件的主要功能是產(chǎn)生實時時間,提供年、部件的主要功能是產(chǎn)生實時時間,提供年、月、日、時、分、秒等信息。月、日、時、分、秒等信息。 v在使用在使用RTC部件之前,需要對其進行初始化。部件
22、之前,需要對其進行初始化。 并并完成對完成對RTC內(nèi)部寄存器讀取內(nèi)部寄存器讀取/寫入操作。寫入操作。v具體的應(yīng)用程序代碼示例請參考教材的具體的應(yīng)用程序代碼示例請參考教材的7.3.3節(jié)節(jié)。 LOGO7.4 Timer部件部件 vTimer部件主要是用于提供定時功能、脈寬調(diào)制部件主要是用于提供定時功能、脈寬調(diào)制(PWM)功能的部件,它的應(yīng)用比較靈活,對)功能的部件,它的應(yīng)用比較靈活,對于需要一定頻率的脈沖信號、一定時間間隔的定于需要一定頻率的脈沖信號、一定時間間隔的定時信號的應(yīng)用場合,它都能提供應(yīng)用支持。時信號的應(yīng)用場合,它都能提供應(yīng)用支持。vS3C2440芯片內(nèi)部擁有芯片內(nèi)部擁有5個個16位的位
23、的Timer部件部件: vTimer0,Timer 1,Timer 2,Timer 3具具有脈寬調(diào)制(有脈寬調(diào)制(PWM)功能。)功能。vTimer4僅作定時器用,不具有僅作定時器用,不具有PWM功能。功能。 LOGOTimer部件內(nèi)部功能框圖:部件內(nèi)部功能框圖: LOGO定時器結(jié)構(gòu)圖預(yù)分頻器預(yù)分頻器8位位分頻器分頻器1/21/41/81/16TCLK0/1計數(shù)器計數(shù)器觀觀察察寄寄存存器器比較寄存器比較寄存器PCLK五五選選一一開開關(guān)關(guān)初初值值寄寄存存器器控控制制邏邏輯輯TOUT中斷中斷LOGO2、工作原理(1)定時器工作過程裝入初值、啟動計數(shù),計數(shù)結(jié)束產(chǎn)生中斷請求,并且可以重裝初值連續(xù)計數(shù)。
24、如下圖所示。LOGO(2)初值自動重裝、手動裝載和雙緩沖初值自動重裝功能: 5個定時器都具有此功能。當(dāng)計數(shù)器中值減到0后,若設(shè)置了自動重裝功能,則在下一計數(shù)周期開始前將初值裝入計數(shù)器重新計數(shù)。初值手動裝載功能:在啟動計數(shù)前,必須使用手動裝載功能將初值裝入計數(shù)器,而初值自動重裝僅是一次計數(shù)結(jié)束后重新裝入初值。雙緩沖功能:如果定時器正在工作,此時寫入新的數(shù)據(jù)到TCNTBn、或者到TCMPBn,該寫入的數(shù)據(jù)不影響本次定時器的操作。當(dāng)定時器到達0后下一次運行定時器時,新寫入的TCNTBn、或者TCMPBn才生效。 LOGO(3)PWM輸出寄存器TCMPB的作用:當(dāng)計數(shù)器TCNT中的值減到與TCMPB的
25、值相同時,TOUT的輸出值取反。改變TCMPB的值,便改變了輸出方波的占空比。TOUT的輸出可以設(shè)置為反相輸出,如下圖所示。正向輸出正向輸出正向輸出正向輸出反相輸出反相輸出周期開始周期開始LOGO(4)死區(qū)產(chǎn)生器死區(qū)的概念:是一小段時間間隔,在這個時間間隔內(nèi),禁止兩個開關(guān)同時處于開啟狀態(tài)。死區(qū)是在功率設(shè)備控制中常采用的一種技術(shù),防止兩個開關(guān)同時打開起反作用。S3C2410的timer0具有死區(qū)發(fā)生器功能,可用于控制大功率設(shè)備。死區(qū)發(fā)生器開啟前后輸出波形對比死區(qū)發(fā)生器開啟前后輸出波形對比LOGO3、計數(shù)時鐘和輸出計算1)定時器輸入時鐘頻率f Tclk (即計數(shù)時鐘頻率) :f Tclk=f pc
26、lk(Prescaler+1) 分頻值式中:Prescaler,預(yù)分頻值,0-255;分頻值為1/2、1/4、1/8、1/16。 2)PWM輸出時鐘頻率 :PWM輸出時鐘頻率= f Tclk TCNTBn3)PWM輸出信號占空比(即高電平持續(xù)時間所占信號周期的比例):PWM輸出信號占空比 = TCMPBn TCNTBnLOGO定時器專用寄存器共有6種、17個寄存器TCNTBn-Timern計數(shù)初值寄存器(計數(shù)緩沖寄存器),計數(shù)初值寄存器(計數(shù)緩沖寄存器),16位位TCMPBn-Timern比較寄存器(比較緩比較寄存器(比較緩沖寄存器沖寄存器),),16位位TCNTOn-Timern計數(shù)讀出寄存
27、器,計數(shù)讀出寄存器,16位位Register Address R/W Description Reset Value TCFG00 x51000000 R/W 配置寄存器 00 x00000000 TCFG10 x51000004 R/W 配置寄存器 10 x00000000 TCON 0 x51000008 R/W 控制寄存器0 x00000000TCNTBn0 x510000 xx R/W 計數(shù)初值寄存器(5個)0 x0000TCMPBn0 x510000 xxR/W比較寄存器(4個)0 x0000TCNTOn0 x510000 xxR觀察寄存器(5個)0 x0000LOGODead zo
28、ne length-死區(qū)寬度設(shè)置位死區(qū)寬度設(shè)置位其值其值N為:為: 0255,以,以timer0的定時時間為單位的定時時間為單位死區(qū)寬度為:(死區(qū)寬度為:(N+1)timer0的定時時間的定時時間Prescaler1-timer2、3、4的預(yù)分頻值的預(yù)分頻值其值其值N為:為: 0255輸出頻率為:輸出頻率為:PCLK (N+1)Prescaler0- timer0、1的預(yù)分頻值的預(yù)分頻值其值其值N為:為: 0255輸出頻率為:輸出頻率為:PCLK (N+1)1、TCFG0-預(yù)分頻器配置寄存器預(yù)分頻器配置寄存器3124 2316 15870保留(為0)Dead zone lengthPresca
29、ler1Prescaler0LOGO2、TCFG1-DMA模式與分頻選擇寄存器模式與分頻選擇寄存器DMA mode-DMA通道選擇設(shè)置位通道選擇設(shè)置位0000:不使用:不使用DMA方式,所有通道都用中斷方式方式,所有通道都用中斷方式0001:選擇:選擇timer00010:選擇選擇timer10011:選擇:選擇timer20100:選擇選擇timer30101:選擇:選擇timer4011X:保留保留MUX4 MUX0-timer4timer0分頻值選擇分頻值選擇0000:1/20001:1/40010:1/8 0011:1/1601XX:選擇外部:選擇外部TCLK0、1(對(對timer0
30、、1是選是選TCLK0,對,對timer4、3、2是選是選TCLK1)31 2423 201916 15121187 43 0保留(為0)DMA modeMUX4MUX3MUX2MUX1MUX0第第1414講到講到此此LOGOTL4TL0-計數(shù)初值自動重裝控制位計數(shù)初值自動重裝控制位 0:單次計數(shù):單次計數(shù)1:計數(shù)器值減到:計數(shù)器值減到0時,自動重新裝入初值連續(xù)計數(shù)。時,自動重新裝入初值連續(xù)計數(shù)。TUP4TUP0-計數(shù)初值手動裝載控制位。計數(shù)初值手動裝載控制位。0:不操作:不操作1:立即將:立即將TCNTBn中的計中的計數(shù)初值裝載到計數(shù)寄存器數(shù)初值裝載到計數(shù)寄存器TCNTn中。中。說明:說明:
31、如果沒有執(zhí)行手動裝載初值,則計數(shù)器啟動時如果沒有執(zhí)行手動裝載初值,則計數(shù)器啟動時無初值。無初值。121110987543210TR2TL1TO1 TUP1TR1保留DZETL0TO0 TUP0TR03、TCON-定時器控制寄存器定時器控制寄存器312322212019181716151413保留TL4TUP4 TR4TL3TO3 TUP3 TR3TL2TO2 TUP2LOGOTR4TR0-TIMER4TIMER0運行控制位運行控制位0:停止:停止1:啟動對應(yīng)的:啟動對應(yīng)的TIMERTO3TO0- TIMER4TIMER0輸出控制位輸出控制位0:正相輸出:正相輸出1:反相輸出:反相輸出DZE-T
32、IMER0死區(qū)操作控制位死區(qū)操作控制位0:禁止死區(qū)操作:禁止死區(qū)操作1:使能死區(qū)操作:使能死區(qū)操作121110987543210TR2TL1TO1 TUP1TR1保留DZETL0TO0 TUP0TR03、TCON-定時器控制寄存器(續(xù))定時器控制寄存器(續(xù))312322212019181716151413保留TL4TUP4 TR4TL3TO3 TUP3 TR3TL2TO2 TUP2LOGO四、定時器的使用1、定時器初始化方法(1)寫TCFG0,設(shè)置計數(shù)時鐘的預(yù)分頻值和Timer0死區(qū)寬度;(2)寫TCFG1,選擇各個定時器的分頻值和DMA、中斷服務(wù);(3)對TCNTBn和TCMPBn分別寫入計
33、數(shù)初值和比較初值;(4)寫TCON,設(shè)置計數(shù)初值自動重裝、手動裝載初值、設(shè)置反相輸出;(5)再寫TCON,清除手動裝載初值位、設(shè)置正相輸出、啟動計數(shù)。2、定時器停止運行方法寫TCON,禁止計數(shù)初值自動重裝。(一般不使用運行控制位停止運行)LOGO3、定時器操作例子(1)按照前面初始化定時器;設(shè)置TCNTBn=160(50+110),TCMPBn=110;手動裝入初值后,又重設(shè)TCNTBn=80, TCMPBn=40;(2)啟動定時器,按第一個初值計數(shù);(3)與第一個比較值相同,輸出取反;(4)第一次計數(shù)結(jié)束,自動重裝初值80、40;(5)在第一次中斷處理程序又重設(shè)TCMPBn=60;(8)在第
34、二次中斷處理程序禁止自動重裝初值,準備結(jié)束計數(shù);(10)第三次計數(shù)結(jié)束,不再計數(shù)。50 110 40 40 20 60 1 2 3 4 6 7 9 105 8TOUTnLOGO定時器應(yīng)用舉例#define BIT_TIMER0 (0 x110)int variable0,variable1,variable2,variable3,variable4;void _irq Timer0Done(void) rSRCPND = BIT_TIMER0; /Clear pending bit rINTPND = BIT_TIMER0; /Clear serve bit variable0+; void
35、_irq Timer1Done(void) rSRCPND = BIT_TIMER1; /Clear pending bit rINTPND = BIT_TIMER1; variable1+; rINTPND; /Prevent an double interrupt pendingLOGO#define pISR_TIMER0 (*(unsigned *)(_ISR_STARTADDRESS+0 x48)#define pISR_TIMER1 (*(unsigned *)(_ISR_STARTADDRESS+0 x4c)void Test_TimerInt(void) variable0 =
36、 0;variable1 = 0;variable2 = 0; variable3 = 0;variable4 = 0; rINTMSK = (BIT_TIMER4 | BIT_TIMER3 | BIT_TIMER2 | BIT_TIMER1 | BIT_TIMER0);/將各個中斷向量寫入中斷向量表中 pISR_TIMER0 = (int)Timer0Done; pISR_TIMER1 = (int)Timer1Done; pISR_TIMER2 = (int)Timer2Done; pISR_TIMER3 = (int)Timer3Done; pISR_TIMER4 = (int)Time
37、r4Done; Uart_Printf(n Timer 0,1,2,3,4 Interrupt Test nn); LOGO rTCFG0 = rTCFG0 & (0 xffffff) | 0 x000f0f; /死區(qū)寬度=0,/T1預(yù)分頻=0 x0f,T0預(yù)分頻=0 x0f rTCFG1 =rTCFG1 & (0 xffffff) | 0 x001233; /全部使用中斷/T4-T0分頻值為:1/2,1/4,1/8,1/16,1/16 /設(shè)置T0-T4計數(shù)初值 rTCNTB0 = 0 xffff; / (1/(50MHz/16/16) * 0 xffff (65535) = 0.334s rTCNTB1 = 0 xffff;
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源車間承包管理合同范本4篇
- 二零二五版影視制作公司聯(lián)合借款合同樣本
- 二零二五版電商一件代發(fā)合作企業(yè)品牌授權(quán)協(xié)議3篇
- 教育與醫(yī)療共促學(xué)生創(chuàng)造力的發(fā)展與提升
- 2025年飼料行業(yè)環(huán)保責(zé)任合同3篇
- 二零二五年度港口碼頭租賃及港口物流服務(wù)合同4篇
- 教育機構(gòu)實驗設(shè)備的節(jié)能環(huán)保設(shè)計理念
- 2025版城市道路照明設(shè)備采購合同范本4篇
- 二零二五年度城市軌道交通鋁合金軌道板鋪設(shè)合同3篇
- 2025標志牌材質(zhì)研發(fā)與生產(chǎn)合作協(xié)議3篇
- 春節(jié)聯(lián)歡晚會節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對挑戰(zhàn)
- 噴漆外包服務(wù)合同范本
- 2024年電信綜合部辦公室主任年度述職報告(四篇合集)
- 微機原理與接口技術(shù)考試試題及答案(綜合-必看)
- 濕瘡的中醫(yī)護理常規(guī)課件
- 初中音樂聽課筆記20篇
- NUDD新獨難異 失效模式預(yù)防檢查表
- 內(nèi)蒙古匯能煤電集團有限公司長灘露天煤礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
評論
0/150
提交評論