第5講-定時器_第1頁
第5講-定時器_第2頁
第5講-定時器_第3頁
第5講-定時器_第4頁
第5講-定時器_第5頁
已閱讀5頁,還剩63頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 第五講第五講 定時器原理及應用定時器原理及應用定時器概述定時器概述 MSP430單片機中具有單片機中具有16位片上定時位片上定時/計數器,該定時計數器,該定時/計數器模塊除了計數器模塊除了通用的定時功能外,還捕獲、通用的定時功能外,還捕獲、PWM輸出、間隔計時等功能,并具有完善輸出、間隔計時等功能,并具有完善的中斷服務。的中斷服務。16位片上定時位片上定時/計數器可用來實現定時、計數、頻率測量、計數器可用來實現定時、計數、頻率測量、PWM信號發生、信號觸發檢測、脈沖脈寬信號測量,并且通過編程配置信號發生、信號觸發檢測、脈沖脈寬信號測量,并且通過編程配置還可用作串口的波特率發生器等等。還可用作

2、串口的波特率發生器等等。 定時定時/計數器計數器A:16位的定時器,具有位的定時器,具有3路捕獲路捕獲/比較單元,時鐘比較單元,時鐘源可選。定時器源可選。定時器A可支持多路捕獲可支持多路捕獲/比較、比較、PWM輸出、間隔計時等,輸出、間隔計時等,其也支持中斷,中斷信號來自定時器溢出或者捕獲其也支持中斷,中斷信號來自定時器溢出或者捕獲/比較輸出。比較輸出。 定時定時/計數器計數器B:16位的定時器,具有位的定時器,具有7路捕獲路捕獲/比較單元。與定比較單元。與定時器時器A結構、功能基本相同,但有所增強,結構、功能基本相同,但有所增強, 看門狗定時器(看門狗定時器(WDT):看門狗主要功能是當程序

3、發生問題):看門狗主要功能是當程序發生問題時,使系統復位重新啟動,將程序拉回正常。時,使系統復位重新啟動,將程序拉回正常。MSP430看門狗定看門狗定時器具有看門狗模式和定時器兩種模式。時器具有看門狗模式和定時器兩種模式。 MSP430系統默認看門狗是打開的,這是值得注意的一點,若不系統默認看門狗是打開的,這是值得注意的一點,若不使用看門狗模式可使用使用看門狗模式可使用 “WDTCTL = WDTPW+WDTHOLD;” 關閉看門狗。關閉看門狗。 5.5 看門狗定時看門狗定時/計數器(計數器(WDT) 5.1 WDT工作原理工作原理 WDT一個特殊的定時器,由一個特殊的定時器,由16位計數器、

4、脈沖發生器、時鐘源選擇電位計數器、脈沖發生器、時鐘源選擇電路及相關控制電路組路及相關控制電路組成成,其功能由,其功能由WDTCTL控制,控制,WDTCTL是一個是一個16位受位受密碼保護的可讀寫寄存器,其高字節為口令,口令為密碼保護的可讀寫寄存器,其高字節為口令,口令為 5AH,當對它寫入操,當對它寫入操作時必須寫口令才能操作,否則會導致系統復位。作時必須寫口令才能操作,否則會導致系統復位。WDTCTL可設置看門狗可設置看門狗的主要功能。的主要功能。圖圖5.9 看門狗定時器寄看門狗定時器寄/計數器結構計數器結構WDT組成結構如圖5.9所示。 (1)WDT看門狗功能實現看門狗功能實現 (2)WD

5、T間隔定時器功能實現間隔定時器功能實現 5.1.2看門狗定時器寄存器看門狗定時器寄存器 5.1.2看門狗定時器寄存器看門狗定時器寄存器 5.1.3看門狗定時器應用舉例看門狗定時器應用舉例 思考: void main() P1DIR|=BIT0;P1OUT=0X01;/翻轉P1.0輸出電平_BIS_SR(LPM4_bits); 練習: /*利用WDT的定時器模式控制led小燈L1以1s的間隔時間閃滅*/5.2 定時器定時器_A5.2.1 定時器定時器_A結構結構 定時器定時器A具有如下特征:具有如下特征: 16位異步定時位異步定時/計數器,具有四種操作模式;計數器,具有四種操作模式; 靈活自由的

6、可選、可配置的輸入時鐘源;靈活自由的可選、可配置的輸入時鐘源; 具有具有3個可配置的捕獲個可配置的捕獲/比較單元,可以捕獲外部信號并鎖定該比較單元,可以捕獲外部信號并鎖定該 信號形式;信號形式; 可配置的可配置的PWM輸出;輸出; 定時器中斷編碼,有助中斷的快速響應,中斷服務功能完善;定時器中斷編碼,有助中斷的快速響應,中斷服務功能完善; 輸出方式豐富。輸出方式豐富。圖圖5.1 5.1 1616位定時位定時/ /計數器結構計數器結構Timer_ATimer_A定時器模塊:定時器模塊: 一個一個1616位主定時計數器(位主定時計數器(TARTAR);); 3 3路捕獲比較單元(路捕獲比較單元(C

7、CR0CCR2CCR0CCR2),), TARTAR為為3 3路路CCRCCR提供計數值提供計數值 1、定時器、定時器_A的定時的定時/計數單元計數單元(1 1)工作原理)工作原理主計定時計數器單元包括:時鐘源選擇、預分頻器、計數器(主計定時計數器單元包括:時鐘源選擇、預分頻器、計數器(TAR)和計)和計數模式選擇數模式選擇4個部分。定時器支持多種類型時鐘源,包括:個部分。定時器支持多種類型時鐘源,包括:SMCLK、ACLK、TACLK(外部引腳)、(外部引腳)、INCLK(TACLK取反),類型選擇由位域取反),類型選擇由位域TASSELX X控制。時鐘源經過預分頻器分頻后作為控制。時鐘源經

8、過預分頻器分頻后作為16位定時器位定時器TARTAR輸入,在時鐘信號的上輸入,在時鐘信號的上升沿,升沿,TAR可遞增或者遞減計數(由計數器工作模式而定),計數器溢出后可遞增或者遞減計數(由計數器工作模式而定),計數器溢出后可產生中斷,可產生中斷,TAR可以通過軟件進行讀或寫。置位可以通過軟件進行讀或寫。置位TACLR,可以復位,可以復位TAR、預分頻器和計數方向。預分頻器和計數方向。(2)工作模式工作模式 定時器有四種工作模式:停止、增計數、連續計數、增定時器有四種工作模式:停止、增計數、連續計數、增/減計減計數模式。工作模式由數模式。工作模式由MCx位域控制。位域控制。 a、停止模式、停止模

9、式 該模式用于定時器暫停,所有寄存器現行的內容在停止模式該模式用于定時器暫停,所有寄存器現行的內容在停止模式結束后都可繼續使用。當定時器暫停后重新計數時,計數器將結束后都可繼續使用。當定時器暫停后重新計數時,計數器將從暫停時的值開始以暫停前的計數方向計數,若需改變,則可從暫停時的值開始以暫停前的計數方向計數,若需改變,則可通過通過TACTL中的中的TACLR控制位來清除定時器的方向記憶特性。控制位來清除定時器的方向記憶特性。 b、增計數模式、增計數模式 該模式用于計數周期小于該模式用于計數周期小于0 x0FFFF的連續計數情況,捕獲的連續計數情況,捕獲/比較寄存器比較寄存器TACCR0用作用作

10、Timer_A增計數模式的周期寄存器。計數器增計數模式的周期寄存器。計數器TAR從從0開始增計數到開始增計數到TACCR0的的值,當計數值與值,當計數值與TACCR0的值相等,定時器復位并從的值相等,定時器復位并從0開始重新計數。開始重新計數。圖圖5.2 定時器定時器A增計數模式增計數模式uT=TACCR0+1;uTARTACCR0,選,選擇增計數模式,則擇增計數模式,則TAR從從0開始計數開始計數。 該模式產生的中斷標志:該模式產生的中斷標志: 當當TAR與與TACCR0相等時,產生中斷標志相等時,產生中斷標志CCIFG; 當計數器溢出返回零,產生中斷標志當計數器溢出返回零,產生中斷標志TA

11、IFG。注:注:在定時器工作時改變在定時器工作時改變TACCR0值,若新計數周期值大或值,若新計數周期值大或等于舊值,或大于當前計數值,則定時器會計數到新的周期等于舊值,或大于當前計數值,則定時器會計數到新的周期值;當新計數周期值小于當前計數值,定時器回到值;當新計數周期值小于當前計數值,定時器回到0,但是,但是,在回至在回至0前,會多計數前,會多計數1次。次。 c.連續計數模式:連續計數模式: 在該模式下,定時器重復的從在該模式下,定時器重復的從0開始計數到開始計數到0FFFFH,如圖,如圖5.3所示。所示。此時,此時,TACCR0和其它捕獲比較寄存器一樣工作。和其它捕獲比較寄存器一樣工作。

12、圖圖5.3 3 定時器定時器A連續計數模式連續計數模式0Ht t0FFFFH 該模式可產生的中斷標志:該模式可產生的中斷標志: 當計數器返回到當計數器返回到0時,中斷標志位時,中斷標志位TAIFG置位;置位; 當計數器值從當計數器值從TACCRx-1到到TACCRx時,中斷標志位時,中斷標志位CCIFGx 置位。置位。 圖圖5.4 連續模式下固定時間間隔產生連續模式下固定時間間隔產生原理:原理:通過在中通過在中斷函數中斷函數中不斷更新不斷更新TACCR0的值,產的值,產生固定時生固定時間間隔間間隔t0,若欲產生若欲產生多路時間多路時間間隔,可間隔,可以啟用多以啟用多路路TACCRx。 d. 增

13、增/減計數模式:減計數模式: 該模式用于計數周期不是該模式用于計數周期不是0 x0FFFF,且需要對稱波形的情況。定時,且需要對稱波形的情況。定時器重復的計數到器重復的計數到TACCR0再反向遞減到再反向遞減到0。計數周期是。計數周期是TACCR0值的值的2倍。倍。計數模式如圖計數模式如圖5.5所示。所示。圖圖5.5 定時器定時器A增增/減計數模式減計數模式 在該模式下,計數方向是被鎖定的,即允許定時器停止并重啟后,計在該模式下,計數方向是被鎖定的,即允許定時器停止并重啟后,計數方向與停止之前的方向一致,若想改變,則可以置位數方向與停止之前的方向一致,若想改變,則可以置位TACLR位。位。 該

14、模式產生的中斷:當計數器計數由該模式產生的中斷:當計數器計數由TACCR01遞增到遞增到TACCR0時,時,TACCR0 CCIFG置位;計數器從置位;計數器從0 x0001遞減到遞減到0時,時,TAIFG置位。置位。 增增/減計數模式除了支持對稱波形產生外,還支持輸出信號需要死區減計數模式除了支持對稱波形產生外,還支持輸出信號需要死區間隔的場合,例如,電機驅動間隔的場合,例如,電機驅動H橋式電路,使能橋式電路,使能H橋的電平信號不能同橋的電平信號不能同時為高,即時為高,即H橋的兩個半橋不能同時導通(會造成電機損壞),如圖橋的兩個半橋不能同時導通(會造成電機損壞),如圖5.6所示,可以利用捕獲

15、比較單元的輸出模式(詳見下小節),進行所示,可以利用捕獲比較單元的輸出模式(詳見下小節),進行H橋式橋式電路的驅動。電路的驅動。圖圖5.6 增增/減模式輸出減模式輸出其中:其中:tdead= Ttimer (TACCR1 TACCR2);Ttimer:定時器時鐘周期;:定時器時鐘周期;TACCRx:捕獲比較寄存器:捕獲比較寄存器x的內容,其內容寫入時立即更新。的內容,其內容寫入時立即更新。 2、捕獲、捕獲/比較單元比較單元定時器定時器A有有3個獨立的捕獲個獨立的捕獲/比較模塊,每個模塊包括信號源選擇、觸發器、比較模塊,每個模塊包括信號源選擇、觸發器、信號鎖存、門電路和輸出模式選擇等部分,任一模

16、塊可以捕獲定時器時間數信號鎖存、門電路和輸出模式選擇等部分,任一模塊可以捕獲定時器時間數據,或者產生時間間隔。據,或者產生時間間隔。(1 1)捕獲模式)捕獲模式當當TACCTLx中的中的CAPx=1,選擇捕獲模式,一般用于記錄時間事件,例如,選擇捕獲模式,一般用于記錄時間事件,例如速度計量或者事件測量。捕獲模塊的輸入信號速度計量或者事件測量。捕獲模塊的輸入信號CCIxA和和CCIxB,連接到外部,連接到外部引腳信號或者內部信號(可通過引腳信號或者內部信號(可通過CCISx選擇);選擇);CMx位域選擇捕獲信號的觸位域選擇捕獲信號的觸發模式(上升沿、下降沿或任意跳變),如果在選定的引腳上發生設定

17、的脈發模式(上升沿、下降沿或任意跳變),如果在選定的引腳上發生設定的脈沖觸發沿,則沖觸發沿,則TAR中的值將寫入到中的值將寫入到TCCRx中,中斷位中,中斷位CCIFGx置位。置位。輸入信號的值可以通過輸入信號的值可以通過CCI位來讀取。捕獲信號可能和定時器時鐘不同步,位來讀取。捕獲信號可能和定時器時鐘不同步,可導致競爭條件,建議置位可導致競爭條件,建議置位SCS,可在下個定時器時鐘周期內同步捕獲信號,可在下個定時器時鐘周期內同步捕獲信號與定時器周期。與定時器周期。說明:說明: 如果在選定的引腳上發生設定的脈沖觸發沿(上升沿,下降沿或任意跳如果在選定的引腳上發生設定的脈沖觸發沿(上升沿,下降沿

18、或任意跳 變)變) ,則,則 TAR 中的值將寫到中的值將寫到 T ACCRx 中;中; 每個捕獲每個捕獲/比較寄存器都能被軟件用于時間標記,可用于各種目的:測量比較寄存器都能被軟件用于時間標記,可用于各種目的:測量 軟件程序所用時間,測量硬件事件間的時間,測量系統頻率;軟件程序所用時間,測量硬件事件間的時間,測量系統頻率; 當捕獲完成后,當捕獲完成后, 中斷標志位中斷標志位 CCIFG 被置位。被置位。 如果總的中斷允許位如果總的中斷允許位GIE 允許,允許, 相應的中斷允許位相應的中斷允許位 CCIE也允許,則將產生中斷請求。也允許,則將產生中斷請求。捕獲過程:捕獲過程:若沒有捕捉發生,將

19、等待;若沒有捕捉發生,將等待;若此時讀取到捕獲值,將到下一個讀取值去繼續等待;若此時讀取到捕獲值,將到下一個讀取值去繼續等待;若此時正在發生捕獲,將發生溢出。若此時正在發生捕獲,將發生溢出。完整的捕獲過程包括:等待捕獲事件完整的捕獲過程包括:等待捕獲事件捕獲發生捕獲發生判斷判斷是否發生溢出并且讀取捕獲值是否發生溢出并且讀取捕獲值等待下次捕捉。等待下次捕捉。(2 2) 比較模式比較模式當當CAP=0時選擇比較模式,比較模式主要用來產生時選擇比較模式,比較模式主要用來產生PWM信號信號或者用于產生特定時間間隔的中斷。當計數器或者用于產生特定時間間隔的中斷。當計數器TAR的值計數到的值計數到TACC

20、Rx的值時:的值時:u中斷標志中斷標志CCIFG置位:置位:u內部信號內部信號EQUx=1;uEQUx根據不同輸出模式影響輸出;根據不同輸出模式影響輸出;u輸入信號輸入信號CCI被鎖存到被鎖存到SCCI。說明:說明: 獨立的輸出模塊被分配給各個捕獲獨立的輸出模塊被分配給各個捕獲/比較寄存器的每一個,比較寄存器的每一個, 輸出模塊可以獨輸出模塊可以獨 立運行于比較功能,或以各種方式觸發;立運行于比較功能,或以各種方式觸發; 當當 T ACCTLx 中的中的 CAP0, 該模塊工作在比較模式。該模塊工作在比較模式。 這時與捕獲有關的這時與捕獲有關的 硬件停止工作,在計數器硬件停止工作,在計數器 T

21、AR中計數值等于比較器中的值時設置標志位,產中計數值等于比較器中的值時設置標志位,產 生中斷請求;也可結合輸出單元產生所需要的信號;生中斷請求;也可結合輸出單元產生所需要的信號; 三個捕獲三個捕獲/比較器在比較模式時設置比較器在比較模式時設置 EQUx 信號有差別:信號有差別: 當當 T AR 的值大于等于的值大于等于 T ACCR0 中的數值時,中的數值時,EQU0=1; 當當 T AR 的值等于相應的的值等于相應的 T ACCR1 或或 T ACCR2 的值時,的值時,EQU1=1 或或 EQU21。 (3 3) 輸出單元輸出單元每個捕獲每個捕獲/比較模塊包含一個輸出單元,用于產生輸出信號

22、,如比較模塊包含一個輸出單元,用于產生輸出信號,如PWM信號。信號。每個輸出單元可以根據每個輸出單元可以根據EQU0和和EQU1產生產生8種輸出模式,其輸出模式由種輸出模式,其輸出模式由OUTMODx位控制,詳見表位控制,詳見表5.1。.OUTMODxOUTMODx輸出模式輸出模式描述描述000000輸出模式輸出模式輸出信號輸出信號OUTxOUTx由每個捕獲由每個捕獲/ /比較模塊的控制寄存器比較模塊的控制寄存器TACCTLxTACCTLx中中OUTxOUTx位定義,并在寫入該寄存器后立即更新。位定義,并在寫入該寄存器后立即更新。001001置位模式置位模式輸出信號在輸出信號在TARTAR等于

23、等于TACCRxTACCRx時置位,并保持置位到定時器復時置位,并保持置位到定時器復位或選擇另一種輸出模式為止。位或選擇另一種輸出模式為止。010010翻轉翻轉/ /復位復位輸出在輸出在TARTAR的值等于的值等于TACCRxTACCRx時翻轉,當時翻轉,當TARTAR的值等于的值等于TACCR0TACCR0時時復位。復位。011011置位置位/ /復位復位輸出在輸出在TARTAR的值等于的值等于TACCRxTACCRx時置位,當時置位,當TARTAR的值等于的值等于TACCR0TACCR0時時復位。復位。100100翻轉翻轉輸出電平在輸出電平在TARTAR的值等于的值等于TACCRxTACC

24、Rx時翻轉,輸出周期是定時器時翻轉,輸出周期是定時器周期的周期的2 2倍。倍。101101復位模式復位模式輸出在輸出在TARTAR的值等于的值等于TACCRxTACCRx時復位,并保持低電平直到選擇時復位,并保持低電平直到選擇另一種輸出模式。另一種輸出模式。110110翻轉翻轉/ /置位置位輸出電平在輸出電平在TARTAR的值等于的值等于TACCRxTACCRx時翻轉,當時翻轉,當TARTAR值等于值等于TACCR0TACCR0時置位。時置位。111111復位復位/ /置位置位輸出電平在輸出電平在TARTAR的值等于的值等于TACCRxTACCRx時復位,當時復位,當TARTAR的值等于的值等

25、于TACCR0TACCR0時置位。時置位。表表5.1 輸出單元輸出模式輸出單元輸出模式注:注:當輸出模式進行更換時,除非是切換到模式當輸出模式進行更換時,除非是切換到模式0 0,OUTMODxOUTMODx某一某一位需要保持置位,否則輸出或非門會認為是模式位需要保持置位,否則輸出或非門會認為是模式0 0,而產生脈沖,而產生脈沖干擾。比較可靠的切換是,用輸出模式干擾。比較可靠的切換是,用輸出模式7 7作為過渡狀態。作為過渡狀態。例:例: BIS #OUTMOD_7, &TACCTLx ; BIS #OUTMOD_7, &TACCTLx ; 置輸出模式置輸出模式7 7 BIC #O

26、UTMODx, &TACCTLx ; BIC #OUTMODx, &TACCTLx ; 清除不相關的位清除不相關的位寄存器寄存器簡寫簡寫類型類型地址地址Timer_A control l控制寄存器控制寄存器TACTLR/DR/D0160H0160HTimer_A counter計數器計數器TARR/DR/D0170H0170H捕獲捕獲/ /比較控制寄存器比較控制寄存器0 0CCTL0(TACCTL0)R/DR/D0162H0162H捕獲捕獲/ /比較寄存器比較寄存器0 0CCR0(TACCR0)R/DR/D0172H0172H捕獲捕獲/ /比較控制寄存器比較控制寄存器1 1CC

27、TL1(TACCTL1)R/DR/D0164H0164H捕獲捕獲/ /比較寄存器比較寄存器1 1CCR1(TACCR1)R/DR/D0174H0174H捕獲捕獲/ /比較控制寄存器比較控制寄存器2 2CCTL2(TACCTL2)R/DR/D0166H0166H捕獲捕獲/ /比較寄存器比較寄存器2 2CCR2(TACCR2)R/DR/D0176H0176H中斷向量寄存器中斷向量寄存器TAIVR R012EH012EH5.2.2 定時器定時器_A主要寄存器主要寄存器 定時器定時器_A主要寄存器表主要寄存器表5.2所示。所示。 1.TACTL 1.TACTL 控制寄存器控制寄存器 復位值:復位值:0

28、000H0000H15109876543210未用未用SSEL1SSEL0ID1ID0MC1MC0未用未用TATACLRTAIETAIFGSSEL1SSEL0輸入時鐘源輸入時鐘源說明說明00TACLK用特定的外部引腳信號用特定的外部引腳信號01ACLK輔助時鐘輔助時鐘10SMCLK子系統時鐘子系統時鐘11INCLKTACLK取反取反Bit 15-10 未使用未使用Bit 9-8 SSEL1、SSEL0 選擇定時器輸入分頻器的時鐘源選擇定時器輸入分頻器的時鐘源Bit 7-6 ID1,ID0 分頻系數選擇分頻系數選擇 : 00 不分頻不分頻 01 2分頻分頻 10 4分頻分頻 11 8分頻分頻 B

29、it 5-4 MC1,MC0 計數模式選擇控制位:計數模式選擇控制位: 00 停止模式停止模式 :計數器暫停:計數器暫停 01 增計數模式:計數器計數至增計數模式:計數器計數至TACCR0 10 連續計數模式:計數器計數至連續計數模式:計數器計數至0FFFFH 11 增增/減計數模式:計數器計數至減計數模式:計數器計數至TACCR0,再遞減至,再遞減至0Bit 3 未使用未使用Bit 2 TACLR 定時器清除位:定時器清除位: POR或或TACLR置位時定時器、計數方向、輸入分頻器復位。置位時定時器、計數方向、輸入分頻器復位。 TCLR由硬件自動復位其讀出始終為由硬件自動復位其讀出始終為0。

30、定時器在下一個有效。定時器在下一個有效 輸入沿開始工作。如果不是被清除模式控制暫停,則定時以輸入沿開始工作。如果不是被清除模式控制暫停,則定時以 增計數模式開始工作。增計數模式開始工作。Bit 1 TAIE 定時器中斷允許位:定時器中斷允許位: 0 禁止定時器溢出中斷禁止定時器溢出中斷 1 允許定時器溢出中斷允許定時器溢出中斷Bit 0 TAIFG 定時器溢出標志位:定時器溢出標志位: 0 無定時器溢出中斷無定時器溢出中斷 1 定時器溢出中斷定時器溢出中斷 增計數模式:定時器由增計數模式:定時器由TACCR0計數到到計數到到0時時TAIFG置位。置位。 連續計數模式:定時器由連續計數模式:定時

31、器由0FFFFH計數到計數到0時時TAIFG置位。置位。 增增/減計數模式:定時器由減計數模式:定時器由TACCR0減計數到減計數到0時時TAIFG置位。置位。2. TAR 162. TAR 16位計數器位計數器 復位值:復位值:0000H0000H1503. TACCTLx 捕獲捕獲/比較控制寄存器比較控制寄存器 復位值:復位值:0000H 15 14 13 12 11 109 87 6 5 4 3210CM1-0CCIS1-0 SCSSCCIXCAPOUTMODx CCIEx CCIxOUT COVCCIFx TIMER_A有多個捕獲比較模塊,每個模塊都有自己的控制寄存器有多個捕獲比較模塊

32、,每個模塊都有自己的控制寄存器TACCTLxBit 15-14 CM1-0 捕獲模式:選擇捕獲模式。捕獲模式:選擇捕獲模式。 00 禁止捕獲模式禁止捕獲模式 01 上升沿捕獲上升沿捕獲 10 下降沿捕獲下降沿捕獲 11 上升沿與下降沿都捕獲上升沿與下降沿都捕獲 Bit 13-12 CCISI1-0 捕獲捕獲/比較輸入選擇位:選擇捕獲模式捕獲事件的輸入端。比較輸入選擇位:選擇捕獲模式捕獲事件的輸入端。 00 選擇選擇CCIxA 01 選擇選擇CCIxB 10 選擇選擇GND 11 選擇選擇VCC Bit 11-10 SCS 同步捕獲信號:選擇捕獲信號與定時器時鐘同步、同步捕獲信號:選擇捕獲信號與

33、定時器時鐘同步、 異步關系。異步關系。 0 異步捕獲異步捕獲 1 同步捕獲同步捕獲 注意:異步捕獲模式允許在捕獲時立即將注意:異步捕獲模式允許在捕獲時立即將CCIFG置位并捕獲定時器值,置位并捕獲定時器值,適用于捕獲信號的周期遠大于定時器時鐘周期的情況。但是,若定時器適用于捕獲信號的周期遠大于定時器時鐘周期的情況。但是,若定時器時鐘和捕獲信號發生時間競爭,則捕獲寄存器的值可能出錯。建議在實時鐘和捕獲信號發生時間競爭,則捕獲寄存器的值可能出錯。建議在實際中使用同步捕獲模式,捕獲總是有效的。捕獲際中使用同步捕獲模式,捕獲總是有效的。捕獲/比較相等信號比較相等信號EQUx將將選擇中的捕獲選擇中的捕獲

34、/比較輸入信號比較輸入信號CCIx(CCIxA,CCIxB,Vcc和和GND)進行鎖存,進行鎖存,且可由且可由SCCIx讀出。讀出。 Bit 9 未使用未使用 Bit 8 CAP 選擇捕獲模式還是比較模式:選擇捕獲模式還是比較模式: 0 比較模式比較模式 (默認模式)(默認模式) 1 捕獲模式捕獲模式 注意:注意:默認為比較模式,若通過默認為比較模式,若通過TACCTLx中的中的CAP使工作模式從比較模式變為使工作模式從比較模式變為捕獲模式,則不應同時進行捕獲,否則,在捕獲比較寄存器中的值是不可預料的。捕獲模式,則不應同時進行捕獲,否則,在捕獲比較寄存器中的值是不可預料的。指令順序為:指令順序

35、為:1)修改控制寄存器,由比較模式換到捕獲模式;)修改控制寄存器,由比較模式換到捕獲模式;2)捕獲)捕獲。Bit 7-5 OUTMODx 選擇輸出模式:選擇輸出模式: 000 輸出輸出 001 置位置位 010 翻轉翻轉/復位復位 011 置位置位/復位復位 100 翻轉翻轉/置位置位 101 復位復位 110 翻轉翻轉/置位置位 111 復位復位/置位置位 Bit 4 CCIEx 捕獲比較模塊中斷允許位:捕獲比較模塊中斷允許位:1,允許;,允許;0,禁止。,禁止。Bit 3 CCIx 捕獲比較模塊的輸入信號:捕獲比較模塊的輸入信號: 捕獲模式:由捕獲模式:由CCIS0和和CCIS1選擇的輸入

36、信號通過該選擇的輸入信號通過該 位讀出。位讀出。 比較模式:比較模式:CCIx復位。復位。 Bit 2 OUT 輸出信號:輸出信號: 0 輸出低電平輸出低電平 1 輸出高電平輸出高電平 如果如果CMx選擇輸出模式選擇輸出模式0(輸出輸出),則該位對應于輸入狀態。,則該位對應于輸入狀態。 Bit 1 COV 捕獲溢出標志:捕獲溢出標志: 0 輸出低電平輸出低電平 1 輸出高電平輸出高電平 比較模式:沒有使比較模式:沒有使COV置位的捕獲事件。置位的捕獲事件。 捕獲模式:如果捕獲寄存器的值被讀出前再次發生捕獲事捕獲模式:如果捕獲寄存器的值被讀出前再次發生捕獲事 件,則件,則COV置位。程序可檢測置

37、位。程序可檢測COV來斷定原值讀出前是否來斷定原值讀出前是否 又發生捕獲事件。讀捕獲寄存器時不會使溢出標志復位,又發生捕獲事件。讀捕獲寄存器時不會使溢出標志復位, 須用軟件復位。須用軟件復位。 Bit 0 CCIFGx 捕獲比較中斷標志:捕獲比較中斷標志: 捕獲模式:寄存器捕獲模式:寄存器CCRx捕獲了定時器捕獲了定時器TAR值時置位。值時置位。 比較模式:定時器比較模式:定時器TAR值等于寄存器值等于寄存器CCRx值時置位。值時置位。 CCRx 捕獲捕獲/比較寄存器比較寄存器1504. CCRx捕獲捕獲/比較寄存器比較寄存器在捕獲比較模塊中,可讀可寫。其中在捕獲比較模塊中,可讀可寫。其中CC

38、R0經常用作周期寄存器,經常用作周期寄存器,其它其它CCRx相同。相同。 5. TAIV定時器定時器A中斷向量寄存器中斷向量寄存器 Timer_A有兩個中斷向量,一個單獨分配給捕獲比較寄存器有兩個中斷向量,一個單獨分配給捕獲比較寄存器CCR0,另一個作為共用的中斷向量用于定時器和其他的捕獲比較,另一個作為共用的中斷向量用于定時器和其他的捕獲比較寄存器(詳見表寄存器(詳見表5.3)。)。 CCR0中斷向量具有最高的優先級,中斷向量具有最高的優先級,CCR0能用于定義是增計數能用于定義是增計數和增減計數模式的周期,因此響應速度最快,和增減計數模式的周期,因此響應速度最快,CCIFG0在被中斷服在被

39、中斷服務時能自動復位。務時能自動復位。 CCR1-CCR2和定時器共用另一個中斷向量,屬于多源中斷,對和定時器共用另一個中斷向量,屬于多源中斷,對應的中斷標志應的中斷標志CCIFG1-CCIFG2和和TAIFG1在讀中斷向量字在讀中斷向量字TAIV后,后,自動復位。如果不訪問自動復位。如果不訪問TAIV寄存器,則不能自動復位,須用軟件清寄存器,則不能自動復位,須用軟件清除;如果相應的中斷允許位不允許中斷,則不會產生中斷請求,但除;如果相應的中斷允許位不允許中斷,則不會產生中斷請求,但中斷標志仍存在,需用軟件清除。中斷標志仍存在,需用軟件清除。15-54-100-0中斷向量中斷向量05.2.3

40、定時器定時器_A的中斷管理的中斷管理中斷優先級中斷優先級定時器定時器_A有兩個中斷向量:有兩個中斷向量:TACCR0中斷向量中斷向量:處理處理TACCT0的的CCIFG中斷標志。中斷標志。TACCR0的中斷標志的中斷標志CCIFG在定時器在定時器_A中具有最高優先級,當中具有最高優先級,當CCIFG中中斷被響應以后該位自動清零。斷被響應以后該位自動清零。TAIV中斷向量中斷向量:處理所有其它的處理所有其它的CCIFG和和TAIFG中斷標志。中斷標志。TACCR1的的CCIFG、TACCR2的的CCIFG和和TAIFG三個中斷的優先級依次降三個中斷的優先級依次降低,它們共用一個中斷源。中斷向量寄

41、存器低,它們共用一個中斷源。中斷向量寄存器TAIV用來確定哪一個產生用來確定哪一個產生了中斷請求,讀取該寄存器的值就可以確定中斷類型,如表了中斷請求,讀取該寄存器的值就可以確定中斷類型,如表5.3所示。所示。中斷優先級中斷優先級中斷源中斷源縮寫縮寫TAIV的內容的內容高高捕獲捕獲/比較器比較器1CCIFG12捕獲捕獲/比較器比較器2CCIFG24捕獲捕獲/比較器比較器XCCIFGx低低定時器溢出定時器溢出TAIFG110沒有終端將掛起沒有終端將掛起0表表5.3 中斷優先級中斷優先級2. 中斷及中斷嵌套中斷及中斷嵌套 中斷響應后,自動關閉總中斷,此時不會響應高優先級中斷,除非在中中斷響應后,自動

42、關閉總中斷,此時不會響應高優先級中斷,除非在中斷程序中打開總中斷,即產生了中斷嵌套。斷程序中打開總中斷,即產生了中斷嵌套。實現中斷嵌套需要注意以下幾點:實現中斷嵌套需要注意以下幾點:(1)默認的是關閉中斷嵌套的,除非中斷程序中再次開總中斷)默認的是關閉中斷嵌套的,除非中斷程序中再次開總中斷EINT;(2)多個中斷同時到來,按優先級來執行,即中斷優先級只有在多個中)多個中斷同時到來,按優先級來執行,即中斷優先級只有在多個中 斷同時到來時才起做用,中斷服務不執行搶先原則。斷同時到來時才起做用,中斷服務不執行搶先原則。(3)對于單源中斷)對于單源中斷,只要響應中斷只要響應中斷,系統硬件自動清中斷標志

43、位,對于定系統硬件自動清中斷標志位,對于定 時器的比較時器的比較/捕獲中斷,只要訪問捕獲中斷,只要訪問TAIV/TBIV,標志位倍被自動清除。,標志位倍被自動清除。5.2.3 定時器定時器_B模塊模塊 定時器定時器_B比定時器比定時器_A多了比較鎖存器,這使得用戶可以更加靈活地控多了比較鎖存器,這使得用戶可以更加靈活地控制比較數據更新的時機;從結構上看兩者非常的相似。定時器制比較數據更新的時機;從結構上看兩者非常的相似。定時器_B模塊的模塊的結構圖如圖結構圖如圖5.7所示:所示:1.Timer_B和和Timer_A共同的特征共同的特征 具有具有4種工作模式;種工作模式; 計數器輸入時鐘源可選可

44、配置;計數器輸入時鐘源可選可配置;多個獨立可配置捕獲多個獨立可配置捕獲/比較模塊;比較模塊; 可配置輸出單元(具有可配置輸出單元(具有8種輸出模式);種輸出模式);中斷功能豐富(中斷源自計數器溢出、各捕獲中斷功能豐富(中斷源自計數器溢出、各捕獲/比較模塊的捕獲事件或比比較模塊的捕獲事件或比較事件)。較事件)。 2. Timer_B與與Timer_A不同之處不同之處 Timer_B計數長度為計數長度為8位、位、10位、位、12位、位、16位可編程;位可編程;Timer_B的的TBCCRx緩存寄存器是雙向且可分組管理;緩存寄存器是雙向且可分組管理;Timer_B中無中無Timer_A中中SCCI寄

45、存器位功能;寄存器位功能; Timer_B在比較模式下的捕獲在比較模式下的捕獲/比較寄存器功能增加比較鎖存器;比較寄存器功能增加比較鎖存器; Timer_B輸出可設為高阻輸出;輸出可設為高阻輸出; 由于定時器由于定時器_B比定時器比定時器_A的相似性,這里不再贅述,請讀者參考數據手的相似性,這里不再贅述,請讀者參考數據手冊。冊。圖圖5.7 定時器定時器B模塊結構圖模塊結構圖5.4 應用實例應用實例 1. 用用Timer_A實現紅外載波(實現紅外載波(40K)發射。)發射。/*本程序根據不同的本程序根據不同的key置進行數據的發送,使用置進行數據的發送,使用40KHZ載波載波key值由值由P2口

46、口按鍵決定,本程序中按鍵決定,本程序中key取值范圍為取值范圍為1,2,3,4定義周期為定義周期為2ms的方的方波,高電平為波,高電平為1ms,低電平為,低電平為1ms根據不容的根據不容的key值發送不同的方波個數值發送不同的方波個數(例如(例如key = 1,發送一個)采用發送一個)采用1M的機器周期的機器周期#include#define uchar unsigned char#define uint unsigned int#define PWM BIT2 /*發送高電平函數發送高電平函數*/void Output_high(uint val) /發送周期約為發送周期約為25us的方波,

47、高電平的方波,高電平12us,低,低電平電平12us uint j; /發送方波的次數發送方波的次數 P1SEL |= PWM; P1DIR |= PWM; TACTL |= TASSEL1 + MC0 + TACLR; TACCTL1 |= OUTMOD_0 + OUTMOD_1 + OUTMOD_2; TACCR0 = 24; TACCR1 = 12; for(j = val;j 0;j-) LPM0; /*發送低電平函數發送低電平函數*/void Output_low(uint val) /停止發送方波,停止發送方波,CPU進入節進入節電電模式模式 P1SEL |= PWM; P1DIR |= PWM; TACTL |= TASSEL1 + MC0 + TACLR; TACCTL1 |= OUTMOD_0; /輸出選擇輸出選擇OUTMOD,信號輸出由,信號輸出由OUT位控制位控制 TACCR0 = val; LPM0; /*定時中斷函數定時中斷函數*/#pragma vector = TIMERA0_VECTOR_in

溫馨提示

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

評論

0/150

提交評論