第三章MSP基本外設(定時器)_第1頁
第三章MSP基本外設(定時器)_第2頁
第三章MSP基本外設(定時器)_第3頁
第三章MSP基本外設(定時器)_第4頁
第三章MSP基本外設(定時器)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

3.4定時器(Timer)本節(jié)內(nèi)容MSP430定時功能及其實現(xiàn)看門狗定時器WDT的操作看門狗定時器的中斷控制功能看門狗應用舉例16位定時器A定時器A的特性Timer_A結構Timer_A工作原理Timer_A典型應用16位定時器B16位定時器D定時器庫函數(shù)MSP430定時功能及其實現(xiàn)(1/4)定時功能模塊是MSP430應用系統(tǒng)中經(jīng)常用到的重要部分,可用來實現(xiàn)定時控制、延遲、頻率測量、脈寬測量和信號產(chǎn)生、信號檢測等等。一般來說,MSP430所需的定時信號可以用軟件和硬件兩種方法來獲得。MSP430定時功能及其實現(xiàn)(2/4)軟件定時

軟件定時是根據(jù)所需要的時間常數(shù)來設計延遲子程序,當時間常數(shù)比較大時,常常將延遲子程序設計為循環(huán)程序,通過循環(huán)常數(shù)和循環(huán)體內(nèi)的指令來確定延遲時間,設計者要對這些指令的執(zhí)行時間進行嚴密的計算或精確的測量。優(yōu)點:節(jié)省硬件,所需的時間可以靈活調(diào)整。缺點:執(zhí)行延遲程序期間,CPU一直被占用,降低了CPU的利用率,也不容易提供多作業(yè)環(huán)境。硬件定時硬件定時是指利用專門定時器件作為主要實現(xiàn)器件,根據(jù)所需的定時時間,用指令對定時器設置定時常數(shù),并用指令啟動定時器,當定時器計數(shù)到確定值時,自動產(chǎn)生定時輸出。優(yōu)點:計數(shù)時不占用CPU時間,利用定時器產(chǎn)生中斷請求,還可以建立多作業(yè)環(huán)境。MSP430定時功能及其實現(xiàn)(3/4)MSP430系列有豐富定時器資源:看門狗定時器(WDT),定時器A(Timer_A),定時器B(Timer_B)定時器D(Timer_D)和實時時鐘等。MSP430x不同系列的單片機包含有不同的定時器模塊。每種定時器除了具有定時功能外,各自還有一些特定的用途,在應用中根據(jù)需求來選擇定時器模塊。MSP430定時功能及其實現(xiàn)(4/4)MSP430系列定時器部件功能,如下表所示:定時器功能看門狗定時器基本定時、當程序發(fā)生錯誤時執(zhí)行一個受控的系統(tǒng)重啟動基本定時器基本定時、支持軟件和各種外圍模塊工作在低頻率、低功耗條件下定時器A基本定時、支持同時進行的多種時序控制、多個捕獲/比較功能和多種輸出波形(PWM),可以以硬件方式支持串行通信。定時器B基本定時、功能基本同定時器A,但比定時器A靈活,功能更強大定時器D基本定時、功能基本同定時器A,但比定時器A靈活,功能更強大看門狗定時器的概述◆看門狗定時器的主要作用:用于在“程序跑飛”時,WDT就會產(chǎn)生溢出,從而產(chǎn)生系統(tǒng)復位,CPU需要重新運行用戶程序,這樣程序就可以又回到正常運行狀態(tài)?!鬗SP430F6638單片機的看門狗模塊具有以下特性:32種軟件可選的定時時間看門狗工作模式定時器工作模式帶密碼保護的WDT控制寄存器時鐘源可選擇為降低功耗,可停止時鐘失效保護看門狗定時器寄存器(1/3)◆計數(shù)單元WDTCNT

WDTCNT是不能通過軟件直接訪問的32位增計數(shù)器,由MSP430所選定的時鐘電路產(chǎn)生的固定周期脈沖信號對計數(shù)器進行加法計數(shù),如果計數(shù)器事先被預置的初始狀態(tài)不同,那么從個開始計數(shù)到計數(shù)溢出所用的時間就不同?!?/p>

控制寄存器WDTCTL

WDTCTL由兩部分組成:高8位被用作密鑰;低8位是對WDT操作的控制命令。要寫入操作WDT的控制命令,出于安全原因必須先正確寫入高字節(jié)看門狗密鑰5AH,如果密鑰寫錯將觸發(fā)PUC系統(tǒng)復位。讀WDTCTL時不需要密鑰,高字節(jié)讀取結果為69H??撮T狗定時器寄存器(2/3)高8位:

◆WDTPW:Bits15~8看門狗密鑰,讀出值0x69,寫時必須為0x5A,否則將產(chǎn)生PUC。低8位:

WDTHOLD:Bit70沒有禁用看門狗,1禁用看門狗

WDTSSEL:Bits6~5看門狗時鐘源選擇

00SMCLK01ACLK

10VLOCLK11X_CLK例:WDTCTL=WDTPW+WDTSSEL;//選擇X_CLK時鐘源

◆WDTTMSEL:Bit4工作模式選擇

0看門狗模式,1間隔定時器模式

例:WDTCTL=WDTPW+WDTTMSEL;//定時器模式

WDTCNTCL:Bit3看門狗計數(shù)器清零

0無任何操作,1WDTCNT計數(shù)器清0

例:WDTCTL=WDTPW+WDTCNTCL;//對看門狗計數(shù)器清零看門狗定時器寄存器(3/3)◆WDTIS:Bits2~0看門狗定時間隔選擇

000看門狗時鐘源/(2^31)(18h:12m:16s基于32.768KHz)

001看門狗時鐘源/(2^27)(01h:08m:16s基于32.768KHz)

010看門狗時鐘源/(2^23)(00h:04m:16s基于32.768KHz)

011看門狗時鐘源/(2^19)(00h:00m:16s基于32.768KHz)

100看門狗時鐘源/(2^15)(1s基于32.768KHz)

101看門狗時鐘源/(2^13)(250ms基于32.768KHz)

110看門狗時鐘源/(2^9)(15.625ms基于32.768KHz)

111看門狗時鐘源/(2^6)(1.95ms基于32.768KHz)例:晶振為32768Hz,SMCLK=1MHz,需定時1s。

WDTCTL=WDTPW+WDTSSEL_3+WDTTMSEL+WDTCNTCL+WDTIS2

看門狗定時器——WDT的操作(1/4)MSP430X5XX/6XX系列單片機的看門狗定時器原理,如下圖所示:看門狗定時器——WDT的操作(2/4)

用戶可以通過WDTCTL寄存器中的WDTTMSEL(工作模式控制位)

和WDTHOLD(密鑰控制位)位設置WDT工作在看門狗模式、定時器模式和低功耗模式。

◆看門狗模式PUC后,WDT進入默認狀態(tài)。它自動配置為看門狗模式,SCLK作為時鐘源,復位間隔時間為32ms。如果系統(tǒng)不用看門狗功能,應該在程序開始處禁止看門狗功能。

例:MOV#WDTPW+WDTHOLD,&WDTCTL;

WDTCTL=WDTPW+WDTHOLD;//關閉看門狗看門狗定時器——WDT的操作(3/4)

在看門狗模式下,如果計數(shù)器超過了定時時間,就會產(chǎn)生復位和激活系統(tǒng)上電清除信號。系統(tǒng)從上電復位的地址重啟。用戶軟件一般都需要進行如下操作: ▼進行WDT的初始化:設置合適的時間。

通過WDTSSEL、WDTIS0、WDTIS1、

WDTIS2位來選定

▼周期性地對WDTCNT清零:防止WDT溢出。

保證WDT的正確使用:

例:

MOV#WDTPW+WDTCNTCL,&WDTCTL;

WDTCTL=WDTPW+WDTCNTCL;//關閉看門狗

看門狗定時器——WDT的操作(4/4)◆定時器模式WDTTMSEL設置為1時,WDT工作在定時器模式。在定時器模式下,定時間隔到以后,不會產(chǎn)生PUC,WDTIFG標志位置1?!?/p>

低功耗模式當不需要看門狗定時器時,可使用WDTHOLD位來停止看門狗計數(shù)器WDTCNT,以降低功耗??撮T狗定時器的中斷控制功能◆

用到特殊功能寄存器(SFR)的兩位:WDT中斷標志——SFRIFG1.0的WDTIFG;WDT中斷使能——SFRIE1.0的WDTIE。例:SFRIE1|=WDTIE;//使能看門狗中斷◆

在定時器模式下,定時間隔到了,WDTIFG標志置1。當WDTIE和GIE都置位時,WDTIFG將請求中斷。當中斷請求被響應時,WDTIFG中斷標志可自動清除,也可以通過軟件清除?!舳〞r器模式下中斷是可屏蔽的,由設定的間隔時間到時而引發(fā)??撮T狗模式下中斷是不可屏蔽的,由受控程序非正常運行引發(fā),前者的優(yōu)先級低于后者??撮T狗定時器——WDT應用舉例(1/2)例:使用看門狗定時功能產(chǎn)生一個方波(周期性的取反P1.0)程序代碼如下:#include<msp430f6638.h>voidmain(void){WDTCTL=WDT_MDLY_32;//定時周期為32ms

SFRIE1|=WDTIE;//使能WDT中斷

P1DIR|=0x01;//P1.0輸出

__enable_interrupt();//系統(tǒng)中斷允許

for(;;){

//進入LPM0__bis_SR_register(LPM0_bits);__no_operation();}}P1.0

MSP430F6638 //看門狗中斷服務子程序#pragmavector=WDT_VECTOR__interruptvoidwatchdog_timer(void){P1OUT^=0x01;//P1.0取反}看門狗定時器——WDT應用舉例(2/2)定時器A的主要內(nèi)容◆定時器A的特性◆定時器A的結構◆定時器A的工作原理定時器工作模式捕獲/比較模塊輸出單元Timer_A中斷◆定時器A的典型應用定時器A的特性◆

定時器A由一個16位定時器和多路捕獲/比較通道組成?!?/p>

MSP430X5XX/6XX系列單片機的Timer_A有以下特性:帶有4種操作模式的異步16位定時/計數(shù)器。輸入時鐘可以有多種選擇,可以是慢時鐘,快時鐘以及外部時鐘。可配置捕獲/比較寄存器數(shù)多達7個。可配置的PWM(脈寬調(diào)制)輸出。異步輸入和同步鎖存。不僅能捕獲外部事件發(fā)生的時間還可鎖定其發(fā)生時的高低電平。完善的中斷服務功能。快速響應Timer_A中斷的中斷向量寄存器。8種輸出方式選擇。可實現(xiàn)串行通訊。定時器A的結構(1/2)下圖為MSP430X5XX/6XX系列單片機的Timer_A結構定時器A的結構(2/2)◆

從上圖可以看出,Timer_A有以下部分組成:定時計數(shù)器:16位定時/計數(shù)寄存器(TAxR),它可通過軟件讀寫,Timer_A能選擇4種工作模式。時鐘源的選擇和分頻:定時器時鐘TACLK可以選擇ACLK,SMCLK或者來自外部的TAxCLK。選擇的時鐘源,可以通過軟件選擇分頻系數(shù)(2、3、4、5、6、7、8)。捕獲/比較器:用于捕獲事件發(fā)生的時間或產(chǎn)生時間間隔,捕獲比較功能的引入主要是為了提高I/O端口處理事務的能力和速度。

輸出單元:具有可選的8種輸出模式,用于產(chǎn)生用戶需要的輸出信號,支持PWM。定時器A的工作原理◆定時器工作模式停止模式增計數(shù)模式連續(xù)計數(shù)模式增/減計數(shù)模式◆捕獲/比較模塊◆輸出單元◆Timer_A中斷定時器A的工作模式MSP430X5XX/6XX系列單片機的Timer_A共有4種計數(shù)模式,如下表所示:MCx模式說明00停止模式定時器停止01增計數(shù)模式定時器重復從0計數(shù)到TAxCCR010連續(xù)計數(shù)模式定時器器重復從0計數(shù)到0FFFFh11增/減計數(shù)模式定時器重復從0增計數(shù)到TAxCCR0再減計數(shù)到0定時器A工作模式——停止模式◆停止模式用于定時器暫停,并不發(fā)生復位,所有寄存器現(xiàn)行的內(nèi)容在停止模式結束后都可用。當定時器暫停后重新計數(shù)時,計數(shù)器將從暫停時的值開始以暫停前的計數(shù)方向計數(shù)。例如,停止模式前,Timer_A工作于增/減計數(shù)模式并且處于下降計數(shù)方向,停止模式后,Timer_A仍然工作于增/減計數(shù)模式。重新計數(shù)時,從暫停前的狀態(tài)開始繼續(xù)沿著下降方向開始計數(shù)。捕獲/比較寄存器TAxCCR0用作Timer_A增計數(shù)模式的周期寄存器,該模式適用于定時周期小于65536的連續(xù)計數(shù)情況。計數(shù)器TAxR與TAxCCR0的值相等(或TAxR大于TAxCCR0的值)時,定時器TAxR將立即重新從0開始計數(shù)。下圖說明了增計數(shù)模式的計數(shù)過程。定時器A工作模式——增計數(shù)模式

(1/3)定時器A工作模式——增計數(shù)模式

(2/3)運行時改變捕獲/比較寄存器TAxCCR0如果新的計數(shù)周期大于或者等于舊的計數(shù)周期或者大于當前計數(shù)值,定時器將一直計數(shù)到新的計數(shù)周期。如果新的計數(shù)周期小于當前計數(shù)值,計數(shù)值將減至0。但是,在定時器回到0之前會有一次計數(shù)。當定時器計數(shù)到TAxCCR0時,設置標志位TAxCCR0CCIFG(捕獲比較中斷標志)為1,而當定時器從TAxCCR0計數(shù)到0時,設置標志位TAIFG(定時器溢出標志)位為1。中斷標志位的設置過程,如下圖所示。定時器A工作模式——增計數(shù)模式(3/3)定時器A工作模式——連續(xù)計數(shù)模式(1/3)連續(xù)計數(shù)模式適用于需要65536個時鐘周期定時,此模式下,定時器從當前值計數(shù)到0FFFFH后,又從0開始重新計數(shù)。如下圖所示,此時捕獲/比較寄存器TAxCCR0和其它捕獲/比較寄存器的工作方式相同。定時器A工作模式——連續(xù)計數(shù)模式

(2/3)標志位的設置過程,如下圖所示:當定時器從0FFFFh計數(shù)到0時,中斷標志TAIFG置位。定時器A工作模式——連續(xù)計數(shù)模式(3/3)連續(xù)計數(shù)模式的典型應用:產(chǎn)生多個定時信號:通過中斷處理程序在相應的比較寄存器TAxCCRx上加上一個時間差來實現(xiàn)。這個時間差是當前時刻(即相應的TAxCCRx中的值)到下一次中斷發(fā)生時刻所經(jīng)歷的時間,如下圖所示。定時器A工作模式——增/減計數(shù)模式(1/3)需要對稱波形時可使用增/減計數(shù)模式,該模式下,定時器先增計數(shù)到TAxCCR0的值,然后反向減計數(shù)到0。計數(shù)周期仍由TAxCCR0定義,它是TAxCCR0計數(shù)器數(shù)值的2倍。增/減計數(shù)模式時計數(shù)器中數(shù)值的變化情況如下圖所示。定時器A工作模式——增/減計數(shù)模式(2/3)運行時改變周期寄存器TAxCCR0當計數(shù)器正在運行且在減計數(shù)方向時改變TAxCCR0的值,定時器將會繼續(xù)減計數(shù)方向到0。定時器減到0后,新的周期才有效。當定時器在增計數(shù)方向時。如果新的計數(shù)周期大于或者等于原來的計數(shù)周期,或者比當前的計數(shù)值大,定時器會增計數(shù)到新的計數(shù)周期,再反向計數(shù)。如果新的計數(shù)周期小于當前的計數(shù)值,則定時器將立即開始減計數(shù)。但是,在定時器減計數(shù)之前有一個額外的計數(shù)。定時器A工作模式——增/減計數(shù)模式(3/3)定時器TAxR的值從TAxCCR0-1增計數(shù)到TAxCCR0時,中斷標志TAxCCR0CCIFG置位;當定時器從0001h減計數(shù)到0000h時,中斷標志TAIFG置位。標志位的設置情況如4-36圖所示。定時器A的捕獲/比較模塊(1/5)Timer_A有多個相同的捕獲/比較模塊,為實時處理提供靈活的手段,每個模塊都可用于捕獲事件發(fā)生的時間或產(chǎn)生定時間隔。通過TACCTLx中的CAP位選擇模式,該模塊既可用于捕獲模式,也可用于比較模式。當發(fā)生捕獲事件或定時時間到都將引起中斷。捕獲/比較模塊的結構,如下圖所示。定時器

A的捕獲/比較模塊(2/5)捕獲/比較模塊的邏輯結構定時器A的捕獲/比較模塊(3/5)◆捕獲模式當TACCTLx中的CAP=1,該模塊工作在捕獲模式。每個捕獲/比較寄存器可以用來記錄時間事件,例如: ▲

測量軟件程序所用時間 ▲測量硬件事件之間的時間 ▲測量系統(tǒng)頻率用CM1和CM0位選擇捕獲條件,可以選擇禁止捕獲、上升沿捕獲、下降沿捕獲或者上升沿下降沿都捕獲。當捕獲完成后,定時器的值被復制到TAxCCRn寄存器,并且中斷標志CCIFG置位。如果總的中斷允許位GIE允許,相應的中斷允許位CCIE也允許,則將產(chǎn)生中斷請求。如下圖所示:定時器A的捕獲/比較模塊(4/5)捕獲模式的信號定時器A的捕獲/比較模塊(5/5)◆比較模式當TACCTLx中的CAP=0,該模塊工作在比較模式。比較方式主要用于為軟件或應用硬件產(chǎn)生定時,還可為D/A轉換功能或者馬達控制等各種用途產(chǎn)生脈寬調(diào)制(PWM)輸出信號。在計數(shù)器TAxR計數(shù)到TAxCCRn(n代表具體的捕獲比較寄存器)的值時: ▲中斷標志CCIFG置位 ▲內(nèi)部信號EQUx=1 ▲EQUx根據(jù)輸出模式影響輸出 ▲輸入信號CCI被鎖存在SCCI定時器A的輸出單元(1/2)每個捕獲/比較模塊都包含一個輸出單元,用于產(chǎn)生輸出信號。每個輸出單元有8種工作模式,可產(chǎn)生基于EQUx的多種信號。除模式0外,其他模式的輸出都在定時器時鐘上升沿時發(fā)生變化。輸出模式2,3,6,7不適合輸出單元0,因為EQUx=EQU0。輸出單元在輸出控制位OUTMODx的控制下,有8種輸出模式輸出信號。這些模式與TAxR、TACCTLx、TAxCCR0的值有關,如下表所示。定時器A的輸出單元(2/2)OUTMODx模式說明000輸出模式0:輸出輸出信號取決與寄存器TACCTLx中的OUT位。當OUT位更新時,輸出信號立即更新。001輸出模式1:置位輸出信號在TAxR等于TAxCCRn時置位,并保持置位到定時器復位或選擇另一種輸出模式為止。010輸出模式2:翻轉/復位輸出在TAxR的值等于TAxCCRn時翻轉,當TAxR的值等于TAxCCR0時復位。011輸出模式3:置位/復位輸出在TAxR的值等于TAxCCRn時置位,當TAxR的值等于TAxCCR0時復位。100輸出模式4:翻轉輸出電平在TAxR的值等于TAxCCRn時翻轉,輸出周期是定時器周期的2倍。101輸出模式5:復位輸出在TAxR的值等于TAxCCRn時復位,并保持低電平直到選擇另一種輸出模式。110輸出模式6:翻轉/置位輸出電平在TAxR的值等于TAxCCRn時翻轉,當TAxR值等于TAxCCR0時置位。111輸出模式7:復位/置位輸出電平在TAxR的值等于TAxCCRn時復位,當TAxR的值等于TAxCCR0時置位。定時器A的中斷(1/2)◆

Timer_A中斷可由計數(shù)器溢出引起,也可以來自捕獲/比較寄存器。每個捕獲/比較模塊可獨立編程,由捕獲/比較外部信號以產(chǎn)生中斷。◆Timer_A模塊使用兩個中斷向量:一個單獨分配給捕獲/比較寄存器TAxCCR0;另一個作為共用中斷向量用于定時器和其他的捕獲/比較寄存器?!?/p>

TAxCCR0中斷如下圖所示:定時器A的中斷(2/2)◆

TAxCCR1~TAxCCRx和定時器按照優(yōu)先次序結合共用一個中斷向量,屬于多源中斷。中斷向量寄存器用于確定哪個標志請求中斷。◆TAxCCR1~TAxCCRx中斷,如下圖所示:定時器A典型應用——實現(xiàn)PWM(1/3)◆

PWM信號是一種具有固定周期不定占空比的數(shù)字信號,如下圖所示:◆

如果Timer_A定時器的計數(shù)器工作在增計數(shù)方式,輸出采用輸出模式7(復位/置位模式),則可利用寄存器TAxCCR0控制PWM波形的周期,用某個寄存器TAxCCRx控制占空比。這樣Timer_A就可以產(chǎn)生出任意占空比的PWM波形。如下圖所示:定時器A典型應用——實現(xiàn)PWM(2/3)◆可以隨時間變化任意改變PWM信號的占空比,具體做法:保持CCR0值(周期不變);改變CCRx值(改變占空比)。如下圖所示:定時器A典型應用——實現(xiàn)PWM(3/3)◆如果PWM信號占空比隨時間變化,那么經(jīng)過濾波之后的輸出信號就是幅度變化的模擬信號,因此通過控制PWM信號的占空比,就可以產(chǎn)生不同的模擬信號,實現(xiàn)D/A轉換。如下圖所示:◆

PWM不需要修改占空比和時間時,CPU在做完Timer_A初始化工作之后,Timer_A就能自動輸出PWM,而不需利用中斷維持PWM輸出,此時CPU就可以進入低功耗狀態(tài)。

定時器B的結構◆

定時器B(Timer_B)是一個帶有多路捕獲/比較寄存器的16位定時/計數(shù)器?!舫嗽诓东@/比較模塊中Timer_B比Timer_A增加了比較鎖存器,Timer_B和Timer_A的結構幾乎相同。多個比較鎖存器還可以成組工作,以達到同

溫馨提示

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

評論

0/150

提交評論