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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

8、器寄存器的結(jié)構(gòu)體類型以及4個(gè)定時(shí)器的結(jié)構(gòu)體指針宏。typedef struct /結(jié)構(gòu)體中寄存器的安排嚴(yán)格按照寄存器地址的先后順序 各寄存器定義 LPC_TIM_TypeDef;/APB1與APB2總線基地址宏定義#define LPC_APB0_BASE (0 x40000000UL)#define LPC_APB1_BASE (0 x40080000UL)/定時(shí)器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)/定時(shí)器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 )定時(shí)器應(yīng)用舉例用查詢方式使用定時(shí)器用查詢方式使用定時(shí)器可以提供非常準(zhǔn)確的延時(shí)時(shí)間。但在該方式中處理器被獨(dú)占,系統(tǒng)效率低,所以在實(shí)際應(yīng)用中不宜大量使用這種方式。函數(shù)delayMs使用定時(shí)器0或1產(chǎn)生毫秒級(jí)的延時(shí)。函數(shù)共有兩個(gè)參數(shù):timer_num為定時(shí)器序號(hào),delayInMs為延時(shí)時(shí)間,單位為毫秒。由于定時(shí)器時(shí)鐘由Fpclk提供,當(dāng)預(yù)分頻寄存器PR設(shè)為0時(shí),計(jì)數(shù)Fpclk個(gè)時(shí)鐘周期為1秒。所以延時(shí)要以毫秒為基本單位就可以設(shè)置MR寄存器為Fpclk/1000的整數(shù)倍。對(duì)Fpclk的設(shè)置請(qǐng)參閱系統(tǒng)時(shí)鐘設(shè)置相關(guān)章節(jié)。定時(shí)器應(yīng)用舉例中斷方式使用定時(shí)器 在實(shí)際應(yīng)用中一般要求處

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論