TimerA 計時器

Download Report

Transcript TimerA 計時器

[1031] Lecture 5
TimerA
 認識Timer A模組
 熟悉Timer A的計數模式
 認識Timer A的中斷向量
TimerA
Timer A 模組
 TimerA 指的是MSP430的一種計時/數
器型態
 MSP430F5438 具有兩個TimerA 模組
TA0、TA1
 每個TimerA 配置有一個16-bit TimerA
register, TAxR
TimerA
Timer A 模組
 除了TAR,還配備有3~5組的16-bit
Capture/Compare Register (CCRx)
 MSP430F5438中,TA0配有5組CC
Register,TA1則配有3組。
 CCRx提供的Capture功能可用作外部
信號的計數器或是頻率測量
TimerA
Timer A 模組
 CCRx提供的Compare 功能則提供特
定時間間隔的事件觸發或是輸出特定
頻率的脈波訊號。
 TimerA 的TAxR 和CCRx都具備中斷
功能
 TimerA 可以選擇TACLK、SMCLK、
ACLK和INCLK作為時脈來源,並透
過預除器做1/2, 1/4 , 1/8 的除頻。
TimerA
TimerA 的主要控制暫存器
 TAxCTL
 TAxCCTLn
 TAxIV
 TAxR
 TA0CCR0~TA0CCR4
TA1CCR0~TA0CCR2
TimerA
TimerA 的主要暫存器
 TAxCTL
TimerA
TASSEL, Timer A Source Select
 BIT9~BIT8,選擇時脈來源。
 00b = TAxCLK
01b = ACLK
10b = SMCLK
11b = INCLK
TimerA
ID
 BIT7~6,選擇預除器的倍率。
 00b = 1
01b = 1/2
10b = 1/4
11b = 1/8
TimerA
MC
 BIT5~4,選擇計數器的模式。
 00b = STOP
01b = Up mode
10b = Continuous
11b = Up/Down mode
TimerA
Other
 TACLR: 設值為1時,清除TAxR內的
值
 TAIE: 設值為1時,啟用TAxR的中斷
 TAIFG: TAxR的中斷旗標
TimerA
TimerA 的主要暫存器
 TAxCCTLn
TimerA
作為計時器使用時會用到:
 CCIE: BIT4, CCR Interrupt Enable
設值為1時,啟動TAxCCRn的中斷回
應
 CCIFG: BIT0, TAxCCRn的中斷旗標
TimerA
TimerA 的主要暫存器
 TAxIV
其值紀錄觸發TimerA中斷的來源
 TAxCCR1 : 0x0002
 TAxCCR2 : 0x0004
 TAxCCR3 : 0x0006
 TAxCCR4 : 0x0008
 TAR
: 0x000E
TimerA
TimerA 計數模式
 UP Mode
 須設定TAxCCR0
 TAxR的值往上數,當達到TAxCCR0
時,升起CCR0 IFG,TAxR的值歸零,
TAIFG 升起,然後重複。
TimerA
TimerA 計數模式
 UP Mode
TimerA
TimerA 計數模式
 Continuous Mode
 TAxR的值往上數,直到0xFFFF後溢
為歸零,再繼續上數,當達到
TAxCCR0時,不會直接歸零。
TimerA
TimerA 計數模式
 Continuous Mode
TimerA
TimerA 計數模式
 Up/Down Mode
 須設定TAxCCR0的值
 TAxR的值往上數,直到TAxCCR0的
值後,再往下數到0x0000,再接著繼
續上數,接著重複。
TimerA
TimerA 計數模式
 Up/Down Mode
TimerA
TimerA 中斷向量
 一個TAx 的中斷來源有
TAIFG以及CCRx IFG
 當中分為兩個中斷向量,一個是由
TAxCCR0 獨佔一個中斷向量
TIMER0_A0_VECTOR
 TAIFG、和其餘的TAxCCRn則分享一
個中斷向量
TIMER0_A1_VECTOR
TimerA
TimerA 中斷向量
 在共享的TIMER0_A1_VECTOR中,
便要由TAxIV來判斷中斷的來源
 在中斷優先權上,
TIMER0_A0_VECTOR 大於
TIMER0_A1_VECTOR
TimerA
TimerA 中斷向量
 以Continuous Mode為例
Timer A
MSP430F5438 中斷裝置
Timer A
範例1
 利用最基本的配置,觀察TimerA 的動作
 範例程式下載↓
http://ares.ee.nchu.edu.tw/Course.files/microlab102/exam
ple/lab5-1.c
Timer A
範例1
 選擇ACLK = 32768Hz 作為時脈來源
 選擇Up Mode,配置TA0CCR0為65535
 配置TA0R = 32767
 啟用TAIE中斷,切換D1的狀態,週期為2秒
Timer A
範例2
 利用Continuous Mode配置兩個不同週期的動
作
 範例程式下載↓
http://ares.ee.nchu.edu.tw/Course.files/microlab102/exam
ple/lab5-2.c
Timer A
範例2
 選擇ACLK = 32768Hz 作為時脈來源
 選擇Continuous Mode,配置TA0CCR0為
32767
 啟用TAIE中斷與CCR0中斷,TAIE切換D1的
狀態,週期為4秒;CCR0切換D2的狀態,週
期為2秒。
Timer A
範例3
 利用時脈與模式的選擇,再加上預除器,產
生一個週期為8秒的動作
 範例程式下載↓
http://ares.ee.nchu.edu.tw/Course.files/microlab102/exam
ple/lab5-3.c
Timer A
範例3
 選擇ACLK = 32768Hz 作為時脈來源
 選擇Up Mode,ID_1,配置TA0CCR0為
65535,
 啟用CCR0中斷,切換D1的狀態,週期為8秒;
Timer A
練習1
 以Continuous Mode,產生TAIFG、CCR0、
CCR1的中斷,分別控制D1、D2和D3。
 週期分別為:D1 4秒(2秒進中斷)
D2 2秒(1秒進中斷)
D3 1秒(0.5秒進中斷)
Timer A
練習2
 利用模式與時脈控制,產生一個10秒和32秒
的中斷。
[1031] Lecture 5
 完成後,找到專案裡面的source file,以附
檔形式寄到 [email protected],並在
主旨中註明姓名、系級與學號,
source檔名稱請利於辨識。
EX:
 主旨:
微處理機實習 LAB3 胡國治 電機碩二 7101064123