![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第九章_第1頁](http://file4.renrendoc.com/view12/M0A/07/16/wKhkGWdz46yAOwD6AAOlW3TZiPg092.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第九章_第2頁](http://file4.renrendoc.com/view12/M0A/07/16/wKhkGWdz46yAOwD6AAOlW3TZiPg0922.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第九章_第3頁](http://file4.renrendoc.com/view12/M0A/07/16/wKhkGWdz46yAOwD6AAOlW3TZiPg0923.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第九章_第4頁](http://file4.renrendoc.com/view12/M0A/07/16/wKhkGWdz46yAOwD6AAOlW3TZiPg0924.jpg)
![《ARM Cortex-A9多核嵌入式系統(tǒng)開發(fā)教程》課件第九章_第5頁](http://file4.renrendoc.com/view12/M0A/07/16/wKhkGWdz46yAOwD6AAOlW3TZiPg0925.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PWM定時器和WatchDog定時器9PWM定時器PWM定時器控制寄存器PWM定時器應(yīng)用實例WatchDog定時器WatchDog定時器控制寄存器WatchDog定時器程序?qū)嵗?章PWM定時器和WatchDog定時器9.1PWM定時器9.1.1PWM定時器概述
在Exynos4412處理器中,共有5個32位的具有脈沖寬度調(diào)制(PulseWidthModulation,PWM)功能的定時器,這些定時器都可產(chǎn)生內(nèi)部中斷信號給ARM子系統(tǒng)。另外,定時器0、1、2、3具有脈沖寬度調(diào)制功能,并可驅(qū)動其對應(yīng)的I/O口。其中,定時器0有可選的死區(qū)(dead-zone)產(chǎn)生功能,用以支持大電流設(shè)備;定時器4是內(nèi)置的,沒有外部引腳。PWM定時器的特點:●
5個32位定時器;●
2個8位的預(yù)分頻器對PLCK進(jìn)行第一次分頻,5個時鐘分頻器和多路復(fù)用器進(jìn)行第二次分頻;●?可編程選擇PWM通道;●
4個獨立的PWM通道,可編程進(jìn)行占空比和極性控制;第9章PWM定時器和WatchDog定時器PWM定時器的特點:●?提供靜態(tài)配置方式,在PWM沒有啟動時使用;●?提供動態(tài)配置方式,在PWM運行期間使用;●?支持自動重載模式和觸發(fā)脈沖模式;●?兩個PWM輸出具有死區(qū)發(fā)生器;第9章PWM定時器和WatchDog定時器9.1.2PWM定時器工作原理5個定時器都采用APB-PCLK作為時鐘源。通過預(yù)分頻器進(jìn)行第一級分頻,其中定時器0和1共用一個可編程8位的預(yù)分頻器0,定時器2、3、4共用另外一個預(yù)分頻器1。之后,通過定時器各自的時鐘分頻器進(jìn)行第二級分頻,時鐘分頻器有5種分頻輸出(1/1,1/2,1/4,1/8,1/16)。然后,通過TCNTBn和TCMPBn進(jìn)行計數(shù)和電平翻轉(zhuǎn)。第9章PWM定時器和WatchDog定時器圖9.1Exynos4412PWM定時器的工作原理第9章PWM定時器和WatchDog定時器PWM定時器工作的具體過程:●?當(dāng)時鐘被使能后,定時器計數(shù)緩沖寄存器(TCNTBn)把計數(shù)初始值下載到遞減計數(shù)器(TCNTn)中,定時器比較緩沖寄存器(TCMPBn)把其初始值下載到比較寄存器(TCMPn)中?!襁f減計數(shù)器從TCNTBn得到初值以后,按其時鐘頻率進(jìn)行遞減計數(shù)。當(dāng)其值達(dá)到0時,產(chǎn)生定時器中斷請求并通知CPU該次計時完成?!馮CMPBn的值用于脈沖寬度調(diào)制。當(dāng)定時器的遞減計數(shù)器的值和比較寄存器的值相等時,PWM輸出將改變輸出電平的狀態(tài)。第9章PWM定時器和WatchDog定時器9.1.3PWM定時器的死區(qū)功能
圖9.1中,XpwmTOUT0和XpwmTOUT1可用于電源設(shè)備的PWM控制。Exynos4412具有死區(qū)產(chǎn)生器,能夠產(chǎn)生如圖9.3所示的波形。這個功能允許在一個設(shè)備關(guān)閉和另外一個設(shè)備開啟之間插入一個時間間隔。這個時間間隔能夠有效防止兩個設(shè)備的同時啟/停。。第9章PWM定時器和WatchDog定時器圖9.3死區(qū)使能時的波形第9章PWM定時器和WatchDog定時器9.2PWM定時器控制寄存器定時器配置寄存器0(TFCG0)
該寄存器用于配置兩個8位預(yù)分配器的值和死區(qū)長度,如表9.1所示表9.1定時器配置寄存器0(TFCG0)第9章PWM定時器和WatchDog定時器2.定時器配置寄存器1(TFCG1)
該寄存器用于配置PWM定時器多路開關(guān)MUX的輸入,即選擇分頻器的值,如表9.2所示。表9.2定時器配置寄存器1(TFCG1)第9章PWM定時器和WatchDog定時器定時器的輸入頻率的計算公式為:定時器的輸入時鐘頻率?=?PCLK/({預(yù)分頻值?+?1})/{分頻值}其中:
預(yù)分頻值的取值范圍為1~255,按照表9.1;
各個定時器的分頻值則按表9.2列出的寄存器TCFG1中各對應(yīng)位域進(jìn)行設(shè)置;第9章PWM定時器和WatchDog定時器3.定時器控制寄存器(TCON)
該寄存器用于自動重載、定時器自動更新、定時器啟/停、輸出翻轉(zhuǎn)、死區(qū)啟/停等功能的控制,如表9.3所示。第9章PWM定時器和WatchDog定時器表9.3定時器控制寄存器(TCON)第9章PWM定時器和WatchDog定時器4.定時器計數(shù)緩沖寄存器(TCNTBn,n
=
0~4)該類寄存器用來預(yù)裝PWM定時器的計數(shù)初值,如表9.4所示。表9.4定時器比較緩沖寄存器第9章PWM定時器和WatchDog定時器5.定時器比較緩沖寄存器(TCMPBn,n
=
0~3)該類寄存器用來更改PWM波形的電平狀態(tài),從而更改PWM的占空比,如表9.5所示。表9.5定時器比較緩沖寄存器第9章PWM定時器和WatchDog定時器9.3PWM定時器應(yīng)用實例以產(chǎn)生定時器0中斷為例,介紹定時器0的配置過程。第9章PWM定時器和WatchDog定時器/*1.相關(guān)寄存器的定義,關(guān)聯(lián)各自的物理地址*/#include"int.h"#include"stdio.h"#define PWMTIMER_BASE (0x139D0000)#define TCFG0
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x00)))#define TCFG1
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x04)))#define TCON
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x08)))#define TCNTB0
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x0C)))#define TCMPB0
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x10)))#define TCNTO0
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x14)))#define
TINT_CSTA
(*((volatileunsignedlong*)(PWMTIMER_BASE+0x44)))#defineulongunsignedlongvoidpwm_stop(void);voidtimer_request(void);voidirq_handler(void);voidtimer_init(ulong
utimer,ulong
uprescaler,ulong
udivider,ulong
utcntb,ulong
utcmpb);voidirs_timer(?);intcounter=0; //用于記錄中斷發(fā)生的次數(shù)第9章PWM定時器和WatchDog定時器/*2.定義各個功能函數(shù)*/voidpwm_stop(void) //停止timer0{ TCON&=~0x1;}voidirs_timer(?) //?timer0中斷的中斷處理函數(shù){TINT_CSTAT|=(0x1<<5); //清timer0的中斷狀態(tài)寄存器printf("Timer0IntCounter=%d\r\n",counter++); //打印中斷發(fā)生次數(shù)
intc_clearvectaddr(?); //清除vic相關(guān)的中斷}第9章PWM定時器和WatchDog定時器voidtimer_request(void){ printf("\r\n#############Timertest############\r\n");
pwm_stop(?); //禁止timer0 counter=0; intc_setvectaddr(NUM_TIMER0,irs_timer); //設(shè)置timer0的中斷處理函數(shù),未列出函數(shù)原型 intc_enable(NUM_TIMER0); //使能timer0中斷,未列出函數(shù)原型 //設(shè)置timer0的參數(shù):定時器0,預(yù)分配值(65+1),分頻值4(0b0100), tcntb=62500,tcmpb=0 timer_init(0,66,4,62500,0); }第9章PWM定時器和WatchDog定時器9.4WatchDog定時器9.4.1看門狗原理
看門狗(WatchDog)原理上就是一個定時器。定時器對時鐘脈沖進(jìn)行計數(shù),當(dāng)定時器溢出時,產(chǎn)生復(fù)位信號,使得整個系統(tǒng)復(fù)位。在正常的程序或嵌入式系統(tǒng)中,需要定期對看門狗進(jìn)行復(fù)位,使其重新計數(shù),這樣定時器不會溢出而導(dǎo)致復(fù)位系統(tǒng),從而保證系統(tǒng)的正常運行。
看門狗的作用就是防止系統(tǒng)因意外而“跑飛”;而在可能導(dǎo)致整個系統(tǒng)癱瘓時,保證系統(tǒng)能夠在無人監(jiān)守的情況下仍然能夠復(fù)位,正常運行。第9章PWM定時器和WatchDog定時器9.4.2Exynos4412看門狗控制Exynos4412處理器的看門狗模塊如圖9.4所示,包括一個預(yù)分頻因子、一個四分頻的分頻器和一個16位的計數(shù)器。輸入時鐘為PCLK,它經(jīng)過兩級分頻(預(yù)分頻和分頻),將分頻后的時鐘作為該定時器的輸入時鐘。當(dāng)計數(shù)器計滿后可以產(chǎn)生中斷或者復(fù)位信號。第9章PWM定時器和WatchDog定時器圖9.4Exynos4412處理器的看門狗模塊第9章PWM定時器和WatchDog定時器看門狗定時器計數(shù)值的計算公式如下:輸入到計數(shù)器的時鐘周期t_WatchDog=1/(PCLK/(預(yù)分頻值?+?1)/分頻值)其中:預(yù)分頻器(Prescaler,取值范圍為0~254)及分頻因子(Divisionfactor,取值為16、32、64、128)的值由用戶在WTCON(看門狗時鐘控制寄存器)中設(shè)置。第9章PWM定時器和WatchDog定時器(2)看門狗的定時周期為T?=?計數(shù)值(WTCNT初值?-?WTCNT當(dāng)前值)?*t_WatchDog其中,WTCNT為看門狗計數(shù)寄存器,用來設(shè)置計數(shù)多少個時鐘周期,乘以時鐘周期則是定時的總時間。第9章PWM定時器和WatchDog定時器9.5WatchDog定時器控制寄存器1.看門狗時鐘控制寄存器(WTCON)
該寄存器用于配置用戶是否啟用看門狗定時器、預(yù)分頻值、4個分頻比的選擇、是否允許中斷產(chǎn)生、是否允許復(fù)位操作等。表9.6看門狗時鐘控制寄存器(WTCON)第9章PWM定時器和WatchDog定時器2.看門狗數(shù)據(jù)寄存器(WTDAT)WTDAT用于指定定時時間。在初始化看門狗操作后,看門狗寄存器的值不能被自動裝載到看門狗計數(shù)器(WTCNT)中。表9.7看門狗數(shù)據(jù)寄存器(WTDAT)第9章PWM定時器和WatchDog定時器3.看門狗計數(shù)寄存器(WTCNT)WTCNT用于設(shè)定看門狗定時器工作時計數(shù)器的當(dāng)前計數(shù)值。初始化看門狗操作后,看門狗數(shù)據(jù)寄存器的值不能被自動裝載到看門狗計數(shù)寄存器中。表9.8看門狗計數(shù)寄存器(WTCNT)第9章PWM定時器和WatchDog定時器9.6WatchDog定時器程序?qū)嵗?.看門狗程序設(shè)計思路一般流程如下:(1)設(shè)置看門狗中斷操作,包括全局中斷和看門狗中斷的使能以及看門狗中斷向量的定義。如果只是進(jìn)行復(fù)位操作,這一步可以不用設(shè)置。(2)對看門狗控制寄存器進(jìn)行設(shè)置,包括設(shè)置預(yù)分頻因子、分頻器的分頻值、中斷使能和復(fù)位使能等。(3)對看門狗數(shù)據(jù)寄存器(WTDAT)和看門狗計數(shù)寄存器(WTCNT)進(jìn)行設(shè)置。(4)啟動看門狗定時器。第9章PWM定時器和WatchDog定時器2.看門狗程序設(shè)計#include"int.h"#include"stdio.h"#defineWDT_BASE (0x10060000)#defineWTCON (*((volatileunsignedlong*)(WDT_BASE+0x00)))#defineWTDAT (*((volatileunsignedlong*)(WDT_BASE+0x04)))#defineWTCNT (*((volatileunsignedlong*)(WDT_BASE+0x08)))#defineWTCLRINT (*((volatileunsignedlong*)(WDT_BASE+0x0C)))#defineulongunsignedlongvoidisr_wtd(void);voidwtd_operate(ulonguenreset,ulonguenint,ulonguselectclk,ulonguenwtd,ulong uprescaler,ulonguwtdat,ulonguwtcnt);第9章PWM定時器和WatchDog定時器voidwtd_test(void){ printf("\r\n\r\n#############WatchDogtest#############\r\n");
//設(shè)置看門狗中斷的中斷處理函數(shù) intc_setvectaddr(NUM_WDT,isr_wtd); intc_enable(NUM_WDT); //使能看門狗中斷 wtd_operate(0,1,0,1,100,100000000,100000000); //測試看門狗的定時功能}第9章PWM定時器和WatchDog定時器//看門狗中斷處理函數(shù)voidisr_wtd(?){ staticintwtdcounter=0; //記錄中斷發(fā)生次數(shù) printf("%d\r\n",++wtdcounter); WTCLRINT=1; //看門狗
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借錢補(bǔ)充合同范本寫
- 倉儲送貨批發(fā)合同范例
- 一次合同范本
- 關(guān)于轉(zhuǎn)讓車輛合同范本
- 勞務(wù)派遣保潔合同范本
- 產(chǎn)權(quán)經(jīng)紀(jì)合同范本
- 出租兒童書架合同范例
- 2025年度化工產(chǎn)品綠色包裝設(shè)計與采購合同
- 修車搬運服務(wù)合同范本
- 2025年精煉銅線項目投資可行性研究分析報告
- 醫(yī)學(xué)心理學(xué)人衛(wèi)八版66張課件
- 物業(yè)服務(wù)五級三類收費重點標(biāo)準(zhǔn)
- 工商注冊登記信息表
- 仿古建筑施工常見質(zhì)量通病及防治措施
- 漢代儒學(xué)大師董仲舒思想課件
- 普通沖床設(shè)備日常點檢標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- 科技文獻(xiàn)檢索與利用PPT通用課件
- 《紅樓夢講稿》PPT課件
- DB33∕T 628.1-2021 交通建設(shè)工程工程量清單計價規(guī)范 第1部分:公路工程
- 吉祥喜金剛現(xiàn)證中品事業(yè)六支妙嚴(yán)(節(jié)錄)
- 國民中小學(xué)九年一貫課程綱要語文學(xué)習(xí)領(lǐng)域(國語文)
評論
0/150
提交評論