第04章-2、定時器_第1頁
第04章-2、定時器_第2頁
第04章-2、定時器_第3頁
第04章-2、定時器_第4頁
第04章-2、定時器_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、LOGO第四章 LPC1700系列處理器基本接口技術(shù)4.2 定時器LPC1700定時器特性LPC1700系列芯片具有4個32位可編程定時/計數(shù)器。時器對外設(shè)時鐘(PCLK)周期或外部時鐘進行計數(shù),可選擇產(chǎn)生中斷或根據(jù)匹配寄存器的設(shè)定,在到達指定的定時值時執(zhí)行其它動作(輸出高/低電平、翻轉(zhuǎn)或者無動作)。捕獲輸入用于在輸入信號發(fā)生跳變時捕獲定時器值,并可選擇產(chǎn)生中斷。 4個定時器可用做對內(nèi)部事件進行計數(shù)的間隔定時器,或者通過捕獲輸入實現(xiàn)脈寬調(diào)制,也可以作為自由運行的定時器。 4個定時器除了外設(shè)基地址以外,其它功能都相同。 定時器應(yīng)用場合對內(nèi)部事件計數(shù)的內(nèi)部計數(shù)器通過捕獲輸入實現(xiàn)脈沖寬度調(diào)制器普通定

2、時器定時器引腳功能描述引腳類型功能描述CAP01:0CAP11:0CAP21:0CAP31:0輸入捕獲信號捕獲信號 捕獲管腳的跳變可配置為將定時器值裝入一個捕獲寄存器,并可選擇產(chǎn)生一個中斷??蛇x擇多個管腳用作捕獲功能,當(dāng)有多個管腳被選擇用作一個TIMER0/1 通道的捕獲輸入時,使用編號最小的管腳。MAT01:0MAT12:0MAT23:0MAT33:0輸出外部匹配輸出外部匹配輸出 0/1 當(dāng)匹配寄存器0/1(MR3:0)等于定時器計數(shù)器(TC)時,該輸出可翻轉(zhuǎn),變?yōu)榈碗娖?、變?yōu)楦唠娖交虿蛔?。外部匹配寄存器(EMR)控制該輸出的功能??蛇x擇多個管腳并行用作匹配輸出功能。定時器寄存器功能描述中斷

3、寄存器(T0/1/2/3IR) 中斷寄存器包含4個位用于匹配中斷,4個位用于捕獲中斷。如果有中斷產(chǎn)生,IR中的對應(yīng)位會置位,否則為0。向?qū)?yīng)的IR位寫入1復(fù)位中斷,寫入0無效。定時器寄存器功能描述定時器控制寄存器(T0/1/2/3CR) 計數(shù)控制器(T0/1/2/3CTCR)該寄存器用來選擇定時器或計數(shù)器模式,計數(shù)器模式下選擇計數(shù)的管腳和邊沿。 定時器寄存器功能描述當(dāng)選擇工作在計數(shù)器模式時,在每個PCLK時鐘的上升沿對CAP輸入(由CTCR位3:2選擇)進行采樣。比較完CAP輸入的2次連續(xù)采樣結(jié)果后,可以識別下面四個事件中的一個:上升沿、下降沿、任一邊沿或選擇的CAP輸入的電平無變化。只要識別

4、到的事件與 CTCR寄存器中位1:0選擇的事件相對應(yīng)時,定時器計數(shù)器寄存器加1。 計數(shù)器的外部時鐘源的操作受到一些限制。由于PCLK時鐘的2個連續(xù)的上升沿用來識別CAP選擇輸入的一個邊沿,所以CAP輸入的頻率不能大于1/2個PCLK時鐘。因此,這種情況下同一CAP輸入的高/低電平持續(xù)時間不能小于1/(2*PCLK)。定時器寄存器功能描述定時器計數(shù)器寄存器(T0/1/2/3TC) 當(dāng)預(yù)分頻計數(shù)器到達計數(shù)的上限時,32 位定時器計數(shù)器加1。如果TC在到達計數(shù)上限之前沒有被復(fù)位,它將一直計數(shù)到0 xFFFFFFFF然后翻轉(zhuǎn)到0 x00000000。該事件不會產(chǎn)生中斷。如果需要,可用匹配寄存器檢測溢出

5、。思考:如果定時器工作在定時器模式,PCLK頻率為10MHz,定時器可產(chǎn)生的最長時間間隔是多少?定時器寄存器功能描述預(yù)分頻寄存器(T0/1/2/3PR) 32 位預(yù)分頻寄存器指定預(yù)分頻計數(shù)器的最大值。TC每經(jīng)過PR+1個PCLK加1。 預(yù)分頻計數(shù)器寄存器(T0/1/2/3PC) 預(yù)分頻計數(shù)器使用某個常量來控制PCLK的分頻。預(yù)分頻計數(shù)器每個PCLK周期加1,當(dāng)其到達預(yù)分頻寄存器PR中保存的值時,定時器計數(shù)器TC加1,預(yù)分頻計數(shù)器PC在下個PCLK周期復(fù)位。這樣就使得當(dāng)PR=0時,每個PCLK周期TC加1,當(dāng)PR=1時,每兩個PCLK周期TC加1,以此類推。定時器寄存器功能描述匹配寄存器(MR0

6、-MR3)匹配寄存器值連續(xù)與定時器計數(shù)值相比較。當(dāng)兩個值相等時自動觸發(fā)相應(yīng)動作(產(chǎn)生中斷,復(fù)位定時器計數(shù)器或停止定時器)。具體執(zhí)行什么動作由MCR寄存器控制。寄存器地址詳見表5.25。 匹配控制寄存器(T0/1/2/3MCR-0 xE0004014,0 xE0008014,0 xE0070014,0 xE0074014) 定時器寄存器功能描述捕獲寄存器(CR0-CR3) 每個捕獲寄存器都與一個器件管腳相關(guān)聯(lián)。當(dāng)管腳發(fā)生特定的事件時,可將定時器計數(shù)值裝入該寄存器。捕獲控制寄存器的設(shè)定決定捕獲功能是否使能以及捕獲事件在管腳的上升沿、下降沿或是雙邊沿發(fā)生。寄存器地址詳見表5.25。 捕獲控制寄存器(

7、T0/1/2/3CCR-0 xE0004028,0 xE0008028,0 xE0070028,0 xE0074028) 當(dāng)發(fā)生捕獲事件時,捕獲控制寄存器用于控制將定時器計數(shù)值是否裝入4個捕獲寄存器中的一個以及是否產(chǎn)生中斷。同時設(shè)置上升沿和下降沿位也是有效的配置,這樣會在雙邊沿觸發(fā)捕獲事件。 定時器寄存器功能描述外部匹配寄存器(T0/1/2/3EMR-0 xE000403C,0 xE000803C,0 xE007003C,0 xE007403C) 外部匹配寄存器提供外部匹配管腳MAT0-3的控制和狀態(tài) 。定時器應(yīng)用舉例定時器寄存器相關(guān)宏定義為了方便用戶使用定時器相關(guān)寄存器,在頭文件中定義了定時

8、器寄存器的結(jié)構(gòu)體類型以及4個定時器的結(jié)構(gòu)體指針宏。typedef struct /結(jié)構(gòu)體中寄存器的安排嚴格按照寄存器地址的先后順序 各寄存器定義 LPC_TIM_TypeDef;/APB1與APB2總線基地址宏定義#define LPC_APB0_BASE (0 x40000000UL)#define LPC_APB1_BASE (0 x40080000UL)/定時器T0-T3基地址宏定義#define LPC_TIM0_BASE (LPC_APB0_BASE + 0 x04000)#define LPC_TIM1_BASE (LPC_APB0_BASE + 0 x08000)#define

9、LPC_TIM2_BASE (LPC_APB1_BASE + 0 x10000)#define LPC_TIM3_BASE (LPC_APB1_BASE + 0 x14000)/定時器T0-T3結(jié)構(gòu)體指針宏定義#define LPC_TIM0 (LPC_TIM_TypeDef *) LPC_TIM0_BASE )#define LPC_TIM1 (LPC_TIM_TypeDef *) LPC_TIM1_BASE )#define LPC_TIM2 (LPC_TIM_TypeDef *) LPC_TIM2_BASE )#define LPC_TIM3 (LPC_TIM_TypeDef *) LP

10、C_TIM3_BASE )定時器應(yīng)用舉例用查詢方式使用定時器用查詢方式使用定時器可以提供非常準確的延時時間。但在該方式中處理器被獨占,系統(tǒng)效率低,所以在實際應(yīng)用中不宜大量使用這種方式。函數(shù)delayMs使用定時器0或1產(chǎn)生毫秒級的延時。函數(shù)共有兩個參數(shù):timer_num為定時器序號,delayInMs為延時時間,單位為毫秒。由于定時器時鐘由Fpclk提供,當(dāng)預(yù)分頻寄存器PR設(shè)為0時,計數(shù)Fpclk個時鐘周期為1秒。所以延時要以毫秒為基本單位就可以設(shè)置MR寄存器為Fpclk/1000的整數(shù)倍。對Fpclk的設(shè)置請參閱系統(tǒng)時鐘設(shè)置相關(guān)章節(jié)。定時器應(yīng)用舉例中斷方式使用定時器 在實際應(yīng)用中一般要求處

11、理器間隔固定時間作相應(yīng)處理,如定時讀取外部數(shù)據(jù)或刷新數(shù)碼管顯示等等。這時使用定時器中斷功能就非常有必要。而且在這種方式下定時器與處理器可以并行工作,等計數(shù)完成定時器通過中斷通知處理器轉(zhuǎn)而執(zhí)行中斷服務(wù)程序。這樣的使用方式可以提高系統(tǒng)的效率。程序首先要初始化使用的定時器,init_timer()函數(shù)執(zhí)行內(nèi)容包括設(shè)置定時器的匹配寄存器MRn和匹配控制寄存器MCRn,還有安裝定時器中斷服務(wù)函數(shù)等。該函數(shù)有兩個參數(shù):timer_num為初始化定時器序號,TimerInterval為Fpclk周期數(shù)也即定時器中斷間隔時間??撮T狗功能使用看門狗(WD,Watchdog)是在系統(tǒng)進入錯誤狀態(tài)后,為了防止系統(tǒng)死

12、機,在一段合理時間內(nèi)復(fù)位系統(tǒng)??撮T狗使能后,如果用戶軟件在看門狗預(yù)設(shè)的時間內(nèi)沒有“喂狗”(或叫重裝)看門狗定時器,系統(tǒng)將被復(fù)位。 特性帶內(nèi)部預(yù)分頻器的可編程32位定時器; 可選擇WDCLK4倍數(shù)的時間周期:從(WDCLK2564)到(WDCLK2324)。 看門狗時鐘看門狗時鐘模塊使用兩個時鐘源:PCLK和WDCLK。PCLK被APB總線使用來訪問看門狗寄存器;WDCLK被看門狗定時器用作計數(shù)時鐘。 看門狗時鐘WDCLK可以選擇RTC時鐘、內(nèi)部RC晶振或APB總線設(shè)備時鐘PCLK。這樣系統(tǒng)可以根據(jù)不同省電環(huán)境的要求選擇看門狗使用的時鐘源。而且看門狗定時器在使用內(nèi)部時鐘源時不需要外部晶振,可以提

13、高系統(tǒng)的可靠性。 看門狗操作設(shè)置WDTC寄存器設(shè)定看門狗重裝常數(shù);通過WDMOD寄存器設(shè)定工作模式;通過向WDFEED寄存器先寫0 xAA后寫0 x55序列使能看門狗;看門狗應(yīng)該在計數(shù)器下溢出前重新裝入常數(shù),避免復(fù)位或中斷發(fā)生。當(dāng)看門狗計數(shù)器下溢后將重新從0 x0開始,這與外部復(fù)位時情況相同??撮T狗超時標志位WDTOF可以用于檢測判斷看門狗是否引起了復(fù)位條件。WDTOF標志必須使用軟件清除。 看門狗結(jié)構(gòu)寄存器描述看門狗模式寄存器(WDMOD)一旦WDEN和/或WDRESET位設(shè)置,就無法使用軟件將其清零。這兩個標志由外部復(fù)位或看門狗定時器溢出清零。WDTOF位當(dāng)看門狗發(fā)生超時,看門狗超時標志置

14、位。該標志由軟件清零。WDINT位當(dāng)看門狗發(fā)生超時,看門狗中斷標志置位。產(chǎn)生的任何復(fù)位都會使該位清零。 寄存器描述看門狗定時器常數(shù)寄存器(WDTC) WDTC寄存器決定看門狗超時值。當(dāng)喂狗時序產(chǎn)生時,WDTC的內(nèi)容重新裝入看門狗定時器。它是一個32位寄存器,低8位在復(fù)位時設(shè)置為1。寫入一個小于0 xFF的值會使0 xFF裝入WDTC,因此超時的最小時間間隔為WDCLK2564。 寄存器描述看門狗喂狗寄存器(WDFEED)向該寄存器寫入0 xAA,然后寫入0 x55會使WDTC的值重新裝入看門狗定時器。如果看門狗通過WDMOD寄存器使能,該操作還將啟動看門狗運行。置位WDMOD中的WDEN位不足

15、以使能看門狗。在看門狗能夠產(chǎn)生中斷/復(fù)位之前,必須完成一次有效的喂狗時序。否則,看門狗將忽略喂狗錯誤。向WDFEED寄存器寫入0 xAA的下一個操作應(yīng)當(dāng)是向WDFEED寄存器寫入0 x55,除非看門狗被觸發(fā)。在一個喂狗時序中,一次對看門狗定時器寄存器不正確的訪問之后第二個PCLK周期將產(chǎn)生中斷/復(fù)位。 如果應(yīng)用程序開啟了其它中斷,為了保證喂狗操作的原子性(不可分割),在喂狗之前要關(guān)閉中斷,喂狗之后再開中斷。 寄存器描述看門狗定時器值寄存器(WDTV) WDTV寄存器用于讀取看門狗定時器的當(dāng)前值。當(dāng)讀出該數(shù)值時,鎖定和同步的過程需要6個WDCLK和6個PCLK周期,所以WDTV寄存器的真實值比CPU讀取出來的值要舊一些??撮T狗時鐘源選擇寄存器(WDCLKSEL) 該寄存器允許選擇看門狗定時器的時鐘源??赡艿倪x擇有:內(nèi)部RC晶振(IRC),RTC晶振,APB總線外設(shè)時鐘(PCLK)??撮T狗操作舉例 看門狗的應(yīng)用較靈活,可以選擇看門狗超時僅產(chǎn)生中斷或產(chǎn)生系統(tǒng)復(fù)位中斷。當(dāng)系統(tǒng)只需看門狗產(chǎn)生中斷時只設(shè)置WDEN位即可,一旦置位WDEN則只有通過系統(tǒng)復(fù)位才能復(fù)位WDEN位。WDRESET位用于設(shè)置看門狗復(fù)位定時器還是復(fù)位系統(tǒng)。

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論