劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第8章_第1頁(yè)
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第8章_第2頁(yè)
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第8章_第3頁(yè)
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第8章_第4頁(yè)
劉彥文《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》第8章_第5頁(yè)
已閱讀5頁(yè),還剩55頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于ARM的

嵌入式系統(tǒng)原理及應(yīng)用

劉彥文編著

2017年2月

第8章脈寬調(diào)制定時(shí)器、實(shí)時(shí)時(shí)鐘

及看門狗定時(shí)器高等院校信息技術(shù)規(guī)劃教材本課件的配套教材《基于ARM的嵌入式系統(tǒng)原理及應(yīng)用》

劉彥文清華大學(xué)出版社2017/2

第8章脈寬調(diào)制定時(shí)器、

實(shí)時(shí)時(shí)鐘

及看門狗定時(shí)器

8.1脈寬調(diào)制定時(shí)器8.1.1S3C2440A/S3C2410A

脈寬調(diào)制定時(shí)器概述⒈定時(shí)器模塊參見(jiàn)圖8.1,S3C2440A/S3C2410A有5個(gè)16位的定時(shí)器。定時(shí)器0~3帶有脈寬調(diào)制(PulseWidthModulation,PWM)功能,這4個(gè)定時(shí)器的輸出信號(hào)連接到芯片的TOUT0~TOUT3輸出引腳,輸出波形的頻率和占空比可編程控制。定時(shí)器4是一個(gè)內(nèi)部定時(shí)器,沒(méi)有PWM功能,輸出信號(hào)不連接到芯片引腳。定時(shí)器0有一個(gè)死區(qū)發(fā)生器(deadzonegenerator),能夠用于對(duì)大電流設(shè)備進(jìn)行控制。定時(shí)器0和1共用一個(gè)8位預(yù)分頻器(prescaler),定時(shí)器2~4共用另一個(gè)8位預(yù)分頻器。定時(shí)器計(jì)數(shù)時(shí)鐘信號(hào)來(lái)源于時(shí)鐘分頻器(clockdivider),通過(guò)編程能夠選擇時(shí)鐘分頻器的1/2、1/4、1/8、1/16分頻信號(hào)或選擇使用TCLK0、TCLK1。8位預(yù)分頻器是可編程的,根據(jù)保存在定時(shí)器配置寄存器TCFG0中的預(yù)分頻值,對(duì)PCLK分頻。定時(shí)器配置寄存器TCFG1為每個(gè)定時(shí)器選擇時(shí)鐘分頻信號(hào)(1/2、1/4、1/8、1/16)或選擇TCLK0、TCLK1。S3C2440A/S3C2410A片內(nèi)定時(shí)器,支持自動(dòng)重裝模式(一次定時(shí)結(jié)束,以重裝值開(kāi)始下一次定時(shí))或一次脈沖模式(一次定時(shí)結(jié)束,停止定時(shí)器)。定時(shí)器模塊圖見(jiàn)圖8.1。

⒉定時(shí)器寄存器組成和定時(shí)器主要操作過(guò)程參見(jiàn)圖8.2,除了定時(shí)器4,定時(shí)器0~3中每個(gè)定時(shí)器內(nèi)部,都有下述寄存器。⑴定時(shí)器計(jì)數(shù)緩沖器寄存器TCNTBn,程序可讀寫(xiě),用于保存定時(shí)器計(jì)數(shù)初值。在手動(dòng)更新(manualupdate)允許時(shí),將這個(gè)初值送到定時(shí)器計(jì)數(shù)寄存器TCNTn,在TCNTn中進(jìn)行遞減計(jì)數(shù)操作。當(dāng)自動(dòng)重裝(autoreload)允許時(shí),一次計(jì)數(shù)結(jié)束(TCNTn遞減計(jì)數(shù)達(dá)到0時(shí)),自動(dòng)將TCNTBn的值裝到TCNTn。TCNTBn值的不同,決定了輸出信號(hào)TOUTn頻率的不同。

⑵定時(shí)器比較緩沖器寄存器TCMPBn,程序可讀寫(xiě),用于保存定時(shí)器比較初值。在手動(dòng)更新允許時(shí),將這個(gè)初值送到定時(shí)器比較寄存器TCMPn。當(dāng)執(zhí)行計(jì)數(shù)的TCNTn的值與TCMPn的值相等時(shí),計(jì)數(shù)器輸出信號(hào)TOUTn電平由低變高。當(dāng)自動(dòng)重裝允許時(shí),一次計(jì)數(shù)結(jié)束(TCNTn遞減計(jì)數(shù)達(dá)到0時(shí)),自動(dòng)將TCMPBn的值裝到TCMPn。TCMPBn的值,被用作脈寬調(diào)制,即在輸出信號(hào)TOUTn頻率不變時(shí),對(duì)每個(gè)輸出脈沖低電平、高電平占用時(shí)間的調(diào)制,也稱為輸出信號(hào)占空比的調(diào)制。⑶定時(shí)器計(jì)數(shù)寄存器TCNTn,是內(nèi)部寄存器,程序不可讀寫(xiě)。TCNTn也稱為減法計(jì)數(shù)器、倒計(jì)數(shù)器或遞減計(jì)數(shù)器。定時(shí)器的計(jì)數(shù)操作在TCNTn中執(zhí)行。TCNTn計(jì)數(shù)時(shí)鐘信號(hào)來(lái)源于時(shí)鐘分頻器。當(dāng)TCNTn一次計(jì)數(shù)結(jié)束,或產(chǎn)生DMA請(qǐng)求,或產(chǎn)生中斷請(qǐng)求,由編程決定。當(dāng)一次計(jì)數(shù)結(jié)束,如果自動(dòng)重裝允許時(shí),TCNTBn值送TCNTn、TCMPBn值送TCMPn,開(kāi)始下一次計(jì)數(shù);如果自動(dòng)重裝禁止,則計(jì)數(shù)器停止。⑷定時(shí)器比較寄存器TCMPn,是內(nèi)部寄存器,程序不可讀寫(xiě)。在計(jì)數(shù)過(guò)程中,一旦TCNTn的值與TCMPn的值相等,計(jì)數(shù)器輸出TOUTn電平由低變高。

⑸定時(shí)器計(jì)數(shù)觀察寄存器TCNTOn,程序可讀寫(xiě)。在計(jì)數(shù)過(guò)程中,如果希望讀出TCNTn的值,只能通過(guò)讀出TCNTOn實(shí)現(xiàn),不能直接讀TCNTn的值。要使定時(shí)器0~3運(yùn)行,主要操作包括:

通過(guò)編程先送出計(jì)數(shù)值到TCNTBn,送出比較值(脈寬調(diào)制值)到TCMPBn。當(dāng)設(shè)置為手動(dòng)更新允許時(shí),定時(shí)器自動(dòng)將TCNTBn、TCMPBn的內(nèi)容送TCNTn、TCMPn。然后設(shè)置啟動(dòng)定時(shí)器(TCON寄存器對(duì)應(yīng)的start/stop位為1),則TCNTn開(kāi)始遞減計(jì)數(shù)。計(jì)數(shù)過(guò)程中當(dāng)TCNTn的值與TCMPn的值相等時(shí),輸出信號(hào)TOUTn的電平由低變高。如果允許自動(dòng)重裝,當(dāng)TCNTn計(jì)數(shù)達(dá)到0時(shí),進(jìn)行重裝,同時(shí)產(chǎn)生中斷請(qǐng)求或DMA請(qǐng)求,再開(kāi)始下一次定時(shí)。如果不允許自動(dòng)重裝,則定時(shí)器停止。在計(jì)數(shù)過(guò)程中,可以給TCNTBn和TCMPBn裝入一個(gè)新的值,在自動(dòng)重裝方式,新的值只能用于下一次定時(shí),對(duì)當(dāng)前正在進(jìn)行的定時(shí)操作,不產(chǎn)生影響。定時(shí)器4除了沒(méi)有TCMPB4和TCMP4寄存器外,其他寄存器與定時(shí)器0~3相同。定時(shí)器4不能進(jìn)行脈寬調(diào)制,只能通過(guò)對(duì)TCNTB4設(shè)置不同的值,改變輸出信號(hào)的頻率。⒊PWM定時(shí)器用到的S3C2410A引腳信號(hào)PWM定時(shí)器輸出信號(hào),作為S3C2440A/S3C2410A的TOUT0~TOUT3引腳信號(hào)??梢詫3C2440A/S3C2410A引腳引入的時(shí)鐘源TCLK1、TCLK0,作為定時(shí)器的時(shí)鐘信號(hào)。

8.1.2S3C2440A/S3C2410A脈寬調(diào)制定時(shí)器操作⒈基本定時(shí)操作基本定時(shí)操作見(jiàn)圖8.3(P321)。⒉自動(dòng)重裝與雙緩沖S3C2440A/S3C2410APWM定時(shí)器有雙緩沖功能,也就是說(shuō)有兩個(gè)緩沖器,定時(shí)器計(jì)數(shù)緩沖器寄存器TCNTBn和定時(shí)器比較緩沖器寄存器TCMPBn。圖8.4(P322)是雙緩沖功能的一個(gè)舉例,圖中省略了TCMPBn寄存器的值。

⒊定時(shí)器初始使用手動(dòng)更新位和反相器位當(dāng)TCNTn在遞減計(jì)數(shù)過(guò)程中,一旦達(dá)到0時(shí),如果定時(shí)器控制寄存器TCON允許該定時(shí)器自動(dòng)重裝,會(huì)出現(xiàn)自動(dòng)重裝操作。而TCNTn和TCMPn的初值,必須由用戶(程序)事先設(shè)置,在這種情況下,通過(guò)設(shè)置定時(shí)器控制寄存器TCON中某一定時(shí)器的手動(dòng)更新位為1,初值從TCNTBn、TCMPBn裝到TCNTn、TCMPn。以下步驟描述了如何啟動(dòng)定時(shí)器開(kāi)始定時(shí):⑴寫(xiě)初值到TCNTBn和TCMPBn。⑵在定時(shí)器控制寄存器TCON中,設(shè)置對(duì)應(yīng)定時(shí)器的手動(dòng)更新位為1,之后定時(shí)器自動(dòng)將TCNTBn和TCMPBn值送TCNTn和TCMPn。推薦同時(shí)配置反相器on/off位,決定輸出TOUTn是否經(jīng)過(guò)反相器。⑶在定時(shí)器控制寄存器TCON中設(shè)置對(duì)應(yīng)定時(shí)器的start/stop位為1,啟動(dòng)該定時(shí)器開(kāi)始定時(shí);同時(shí)要清0手動(dòng)更新位。⒋定時(shí)器操作舉例定時(shí)器操作舉例見(jiàn)圖8.5(P323)。⒌脈寬調(diào)制脈寬調(diào)制(PulseWidthModulation,PWM)功能通過(guò)使用TCMPBn寄存器來(lái)實(shí)現(xiàn),而PWM的頻率由TCNTBn寄存器的值確定。圖8.6(P324)通過(guò)舉例,表明了TCMPBn的值越小,TOUTn輸出高電平的時(shí)間越短,輸出低電平的時(shí)間越長(zhǎng);而TCMPBn的值越大,TOUTn輸出高電平的時(shí)間越長(zhǎng),輸出低電平的時(shí)間越短。

⒍輸出電平控制如圖8.7(P324)所示,反相器設(shè)定為off或on,其輸出信號(hào)TOUTn的波形高低電平正好相反。⒎死區(qū)發(fā)生器(deadzonegenerator)使用PWM對(duì)大電流設(shè)備進(jìn)行控制時(shí),常用到死區(qū)(deadzone)功能。死區(qū)功能在切斷一個(gè)開(kāi)關(guān)設(shè)備和接通另一個(gè)開(kāi)關(guān)設(shè)備之間,允許插入一個(gè)時(shí)間間隙。在這個(gè)時(shí)間間隙,禁止兩個(gè)開(kāi)關(guān)設(shè)備同時(shí)被接通,即使接通非常短的時(shí)間也不允許。當(dāng)定時(shí)器死區(qū)功能被允許時(shí),輸出波形見(jiàn)圖8.8(P325)。⒏DMA請(qǐng)求模式定時(shí)器在每段指定時(shí)間后(一次定時(shí)結(jié)束)能夠產(chǎn)生DMA請(qǐng)求信號(hào)。DMA模式配置和DMA/中斷操作見(jiàn)P325表8-1。圖8.9(P326)表明,定時(shí)器2一旦設(shè)置為DMA模式,將不產(chǎn)生中斷請(qǐng)求。定時(shí)器2的DMA請(qǐng)求和響應(yīng)時(shí)間關(guān)系,也在圖8.9中給出。

8.1.3

S3C2440A/S3C2410A脈寬調(diào)制

定時(shí)器特殊功能寄存器⒈定時(shí)器配置寄存器0、定時(shí)器配置寄存器1和定時(shí)器控制寄存器定時(shí)器配置寄存器0、定時(shí)器配置寄存器1和定時(shí)器控制寄存器,寄存器名、地址、R/W、描述及Reset值如表8-2所示,各寄存器具體含義見(jiàn)P326-327表8-3、表8-4和表8-5。定時(shí)器輸入時(shí)鐘頻率=PCLK/{prescaler值+1}/{divider值}{prescaler值}=0~255{divider值}=2、4、8、162.定時(shí)器計(jì)數(shù)緩沖器寄存器、比較緩沖器寄存器和計(jì)數(shù)觀察寄存器定時(shí)器0~4都有計(jì)數(shù)緩沖器寄存器TCNTBn和計(jì)數(shù)觀察寄存器TCNTOn,定時(shí)器4沒(méi)有比較緩沖器寄存器,定時(shí)器0~3有比較緩沖器寄存器TCMPBn。除了地址不同以外,各定時(shí)器對(duì)應(yīng)的寄存器含義相同,如P328表8-6和表8-7所示。8.1.4S3C2410A脈寬調(diào)制定時(shí)器應(yīng)用舉例【例8.1】當(dāng)PCLK=66.5MHz時(shí),選擇不同的時(shí)鐘分頻(1/2、1/4、1/8、1/16)輸入,分別計(jì)算定時(shí)器最小分辨率、最大分辨率及最大定時(shí)區(qū)間。參見(jiàn)8.1.3節(jié)中定時(shí)器配置寄存器TCFG0的內(nèi)容,根據(jù)定時(shí)器輸入時(shí)鐘頻率計(jì)算式,計(jì)算結(jié)果見(jiàn)P328表8-8。⑴最小分辨率:定時(shí)器輸入時(shí)鐘的頻率=PCLK/{prescaler值+1}/{divider值}=66.5(MHz)/{0+1}/{2}=33.2500(MHz)一個(gè)計(jì)數(shù)脈沖的時(shí)間

=1/33.2500(MHz)=0.0300(μs)⑵最大分辨率:定時(shí)器輸入時(shí)鐘的頻率=PCLK/{255+1}/{2}=66.5(MHz)/256/2=129.8828(KHz)一個(gè)計(jì)數(shù)脈沖的時(shí)間=1/129.8828(KHz)=7.6992(μs)⑶最大定時(shí)區(qū)間:由于TCNTBn=65535,計(jì)數(shù)到0共65536個(gè)計(jì)數(shù)脈沖,所以65536×7.6992(μs)=0.5045(sec)。【例8.2】下面給出了使用C語(yǔ)言編寫(xiě)的,對(duì)定時(shí)器0/1/2/3測(cè)試的程序片段,假定程序中用到的寄存器地址在別的程序中已定義過(guò),定時(shí)器產(chǎn)生中斷后的處理程序這里沒(méi)有列出。

(見(jiàn)P329-331)

8.1.5S3C44B0X脈寬調(diào)制定時(shí)器S3C44B0X脈寬調(diào)制定時(shí)器的功能與S3C2440A/S3C2410A脈寬調(diào)制定時(shí)器的功能相同,組成上主要區(qū)別是S3C44B0X多了一個(gè)脈寬調(diào)制定時(shí)器。S3C44B0X有6個(gè)16位的定時(shí)器,定時(shí)器0~4帶有脈寬調(diào)制功能,定時(shí)器5是一個(gè)內(nèi)部定時(shí)器。8.2實(shí)時(shí)時(shí)鐘8.2.1S3C2440A/S3C2410A實(shí)時(shí)時(shí)鐘概述S3C2440A/S3C2410A芯片內(nèi)部有一個(gè)實(shí)時(shí)時(shí)鐘(RealTimeClock,RTC)模塊,當(dāng)系統(tǒng)電源閉合時(shí),使用系統(tǒng)提供的電源,當(dāng)系統(tǒng)電源切斷時(shí),由后備電池為RTC模塊供電。無(wú)論系統(tǒng)加電或切斷電源,RTC都在運(yùn)行;可以對(duì)RTC設(shè)定報(bào)警時(shí)間。使用STRB/LDRB指令,可以在RTC和CPU之間傳送8位BCD碼的數(shù)據(jù),包括秒、分、時(shí)、日、星期、月、年。RTC模塊使用32.768KHz的外部晶振工作。

RTC作為系統(tǒng)時(shí)鐘使用,也能夠執(zhí)行報(bào)警功能、產(chǎn)生節(jié)拍時(shí)間中斷。主要特點(diǎn)有:·

使用BCD碼表示秒、分、時(shí)、日、星期、月、年;·

有閏年產(chǎn)生器;·

報(bào)警功能:有報(bào)警中斷或從Power_OFF模式中喚醒功能;·

解決了2000年問(wèn)題;·

獨(dú)立的電源引腳(RTCVDD);·

支持毫秒級(jí)節(jié)拍時(shí)間中斷,可用于RTOS內(nèi)核;·

支持秒進(jìn)位復(fù)位功能。RTC用到的S3C2440A/S3C2410A引腳信號(hào)有:外接晶振引腳信號(hào)XTIrtc、XTOrtc和外接電源引腳RTCVDD(1.8V)。

8.2.2S3C2440A/S3C2410A實(shí)時(shí)時(shí)鐘組成與操作RTC組成框圖見(jiàn)圖8.10。

⒈閏年產(chǎn)生器閏年產(chǎn)生器基于從BCDDATE、BCDMON、BCDYEAR來(lái)的數(shù)據(jù),確定每個(gè)月的最后一天是28、29、30或31日。一個(gè)8位的計(jì)數(shù)器只能表示2位BCD數(shù)字,因此它不能確定00(年的最低2位數(shù)字)年是閏年或不是閏年。為了解決這一問(wèn)題,在S3C2410A的RTC模塊中有一個(gè)硬件邏輯支持2000年作為閏年。要注意1900年不是閏年而2000年是閏年。因此在S3C2410A中,2位BCD碼的00代表2000年,而不是1900年。⒉讀/寫(xiě)寄存器RTCCON控制寄存器位[0]必須被設(shè)置為1,然后才可以寫(xiě)RTC模塊中的寄存器。如果這一位被設(shè)置為0,不能寫(xiě)入RTC模塊中的寄存器。⒊后備電池當(dāng)系統(tǒng)電源切斷時(shí),通過(guò)RTC引腳提供電源到RTC模塊,RTC邏輯由后備電池驅(qū)動(dòng)。這時(shí)CPU接口與RTC的邏輯被阻塞,后備電池僅僅驅(qū)動(dòng)晶振電路和BCD計(jì)數(shù)器,使得BCD計(jì)數(shù)器功耗為最小。⒋報(bào)警功能在SLEEP/Power_OFF模式或Normal操作模式,RTC在規(guī)定的時(shí)間產(chǎn)生一個(gè)報(bào)警信號(hào)。在Normal操作模式,報(bào)警中斷INT_RTC/ALMINT被激活;在SLEEP/Power_OFF模式,像INT_RTC/ALMINT一樣,電源管理喚醒信號(hào)PMWKUP也能夠被激活,詳見(jiàn)8.2.3節(jié)。RTC報(bào)警控制寄存器RTCALM,確定報(bào)警允許/禁止和報(bào)警時(shí)間設(shè)定條件。⒌節(jié)拍時(shí)間(ticktime)中斷RTC節(jié)拍時(shí)間被用作中斷請(qǐng)求。節(jié)拍時(shí)間計(jì)數(shù)寄存器TICNT有1位中斷允許位和7位節(jié)拍時(shí)間計(jì)數(shù)值位。計(jì)數(shù)值達(dá)到0時(shí),節(jié)拍時(shí)間中斷出現(xiàn)。中斷周期計(jì)算如下:Period=(n+1)/128(second)式中:n為節(jié)拍時(shí)間計(jì)數(shù)值,范圍為1~127。⒍進(jìn)位復(fù)位功能(roundresetfunction)進(jìn)位復(fù)位功能由RTC進(jìn)位復(fù)位寄存器RTCRST來(lái)實(shí)現(xiàn)。產(chǎn)生秒進(jìn)位的邊界(30、40或50秒)可以選擇,在進(jìn)位復(fù)位后,秒的值被設(shè)置為0。例如,如果當(dāng)前時(shí)間是23:37:47,并且設(shè)置進(jìn)位邊界為40秒,則進(jìn)位復(fù)位功能改變當(dāng)前時(shí)間為23:38:00。⒎32.768KHz外接晶振連接舉例圖8.11是使用32.768KHz晶振作為RTC單元晶振電路的一個(gè)實(shí)例。8.2.3S3C2440A/S3C2410A實(shí)時(shí)時(shí)鐘

特殊功能寄存器⒈RTC控制寄存器RTC控制寄存器RTCCON由4位組成,位[0]即RTCEN用作控制禁止/允許對(duì)RTC寄存器的寫(xiě)入,而其他3位CLKSEL、CNTSEL、CLKRST用于測(cè)試。RTCCON寄存器地址、Reset值及各位含義見(jiàn)P334-335表8-9和表8-10⒉RTC報(bào)警控制和報(bào)警數(shù)據(jù)寄存器RTC報(bào)警控制寄存器RTCALM,確定允許/禁止報(bào)警和報(bào)警時(shí)間。在SLEEP/Power_OFF模式,通過(guò)INT_RTC/ALMINT和PMWKUP,RTCALM寄存器產(chǎn)生報(bào)警信號(hào),參見(jiàn)圖8.10。在Normal操作模式,僅僅通過(guò)INT_RTC/ALMINT產(chǎn)生報(bào)警信號(hào)。RTC報(bào)警控制和報(bào)警數(shù)據(jù)寄存器地址及Reset值見(jiàn)P335表8-11,寄存器各位的含義見(jiàn)表8-12。

⒊RTC進(jìn)位復(fù)位寄存器RTC進(jìn)位復(fù)位寄存器RTCRST,Reset值為0x0,地址及各位含義見(jiàn)P336表8-13。⒋節(jié)拍時(shí)間計(jì)數(shù)寄存器節(jié)拍時(shí)間計(jì)數(shù)寄存器TICNT,Reset值為0x00,地址及各位含義見(jiàn)P337表8-14。⒌秒、分、時(shí)、日、星期、月、年數(shù)據(jù)寄存器可以對(duì)這些寄存器設(shè)置當(dāng)前時(shí)間和日期,讀取當(dāng)前時(shí)間和日期。這些寄存器使用BCD值,Reset值未定義,地址及各位含義見(jiàn)表8-15。8.2.4RTC程序舉例【例8.3】下面給出了測(cè)試RTC的程序片段。寄存器與地址的對(duì)應(yīng)值在其他文件中定義過(guò)了,此處省略。第1段程序讀RTC日期、時(shí)間各寄存器值并顯示;第2段程序由輸入值設(shè)置RTC。

(見(jiàn)P338-310)8.3看門狗定時(shí)器8.3.1看門狗定時(shí)器概述看門狗定時(shí)器(WatchDogTimer,WDT)簡(jiǎn)稱看門狗,屬于定時(shí)器中的一種。⒈一般看門狗定時(shí)器概述一般看門狗定時(shí)器,通??梢杂沙绦蚩刂圃试S/禁止看門狗定時(shí)器,允許即啟動(dòng)定時(shí)器,禁止即停止定時(shí)器??撮T狗定時(shí)器內(nèi)部最少有一個(gè)計(jì)數(shù)寄存器,執(zhí)行計(jì)數(shù)操作。使用時(shí)應(yīng)該由程序給這個(gè)計(jì)數(shù)寄存器設(shè)定一個(gè)計(jì)數(shù)初值,然后允許看門狗定時(shí)器(啟動(dòng)),來(lái)一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)寄存器計(jì)一次數(shù)。對(duì)于減法計(jì)數(shù)器,當(dāng)減到0時(shí),產(chǎn)生一個(gè)定時(shí)輸出信號(hào),通常把這個(gè)定時(shí)輸出信號(hào)作為內(nèi)部Reset信號(hào)使用,重新啟動(dòng)控制器(指CPU中的控制器)。簡(jiǎn)單地說(shuō),使用看門狗定時(shí)器,目的是當(dāng)運(yùn)行的程序受到了干擾,發(fā)生了死循環(huán),或者由于運(yùn)行的程序內(nèi)部事先未發(fā)現(xiàn)的錯(cuò)誤,導(dǎo)致程序不是按照程序員預(yù)定的運(yùn)行路線運(yùn)行時(shí),看門狗定時(shí)器能夠重新啟動(dòng)控制器。

⒉S3C2440A/S3C2410A看門狗定時(shí)器概述S3C2440A/S3C2410A片內(nèi)有一個(gè)看門狗定時(shí)器模塊,當(dāng)控制器的操作受到像噪音或系統(tǒng)錯(cuò)誤的干擾時(shí),看門狗定時(shí)器能夠重新啟動(dòng)控制器操作;這個(gè)定時(shí)器也能被用作一個(gè)通常的16位間隔時(shí)間定時(shí)器,產(chǎn)生中斷請(qǐng)求??撮T狗定時(shí)器用于重啟控制器時(shí),在看門狗定時(shí)器計(jì)數(shù)寄存器WTCNT中執(zhí)行計(jì)數(shù)操作,當(dāng)允許看門狗定時(shí)器時(shí)(WTCON[5]=1),每來(lái)一個(gè)計(jì)數(shù)脈沖,減1。當(dāng)計(jì)數(shù)值減到0時(shí),能夠產(chǎn)生一個(gè)長(zhǎng)度為128個(gè)PCLK時(shí)間長(zhǎng)度的復(fù)位(Reset)信號(hào)。8.3.2看門狗定時(shí)器操作⒈

看門狗定時(shí)器源時(shí)鐘的分頻看門狗定時(shí)器功能框圖如圖8.12所示。

看門狗定時(shí)器用PCLK作為它唯一的源時(shí)鐘。為了產(chǎn)生相應(yīng)的看門狗定時(shí)器時(shí)鐘,PCLK先被預(yù)分頻,之后再次被分頻(稱為時(shí)鐘分頻)。預(yù)分頻值和時(shí)鐘分頻值的選擇,在看門狗定時(shí)器的控制寄存器WTCON中被指定。合法的預(yù)分頻值的范圍從0到255。時(shí)鐘分頻值可以選擇16、32、64或128。使用下式計(jì)算看門狗定時(shí)器時(shí)鐘頻率和每個(gè)定時(shí)時(shí)鐘周期的時(shí)長(zhǎng)。t_watchdog=1/(PCLK/(Prescalervalue+1)/Division_factor)(式8.1)式中Prescalervalue為預(yù)分頻值,Division_factor為分頻因子,即時(shí)鐘分頻選擇的值。⒉WTDAT和WTCNT一旦看門狗定時(shí)器被允許(啟動(dòng)),看門狗定時(shí)器數(shù)據(jù)寄存器WTDAT(WatchdogTimerDataRegister)的值不能被自動(dòng)裝入定時(shí)器計(jì)數(shù)寄存器WTCNT中,由于這個(gè)原因,計(jì)數(shù)初值必須同時(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論