Upload
ovidio
View
14
Download
0
Embed Size (px)
DESCRIPTION
第 6 章. 計時與計數器. 相關 SFR. P_Timebase_Setup 暫存器 P_TimerA_Ctrl 暫存器 P_TimerA_Data 暫存器 ( 時間常數 ) P_TimerB_Ctrl 暫存器 P_TimerB_Data 暫存器 ( 時間常數 ) P_INT_Ctrl 暫存器. 時基信號產生器的結構. P_Timebase_Setup 暫存器. Timebase 頻率選擇. TimerA 結構. P_TimerA_Ctrl 暫存器. 時脈源 A 選擇位元 b2 - b0. 時脈源 B 選擇位元 b5 - b3. - PowerPoint PPT Presentation
Citation preview
第 6 章
計時與計數器
2
相關 SFR P_Timebase_Setup 暫存器 P_TimerA_Ctrl 暫存器 P_TimerA_Data 暫存器 ( 時間常數 ) P_TimerB_Ctrl 暫存器 P_TimerB_Data 暫存器 ( 時間常數 ) P_INT_Ctrl 暫存器
3
時基信號產生器的結構
4
P_Timebase_Setup 暫存器
b15- b4 b3 b2 b1 b0
--- TMB2 頻率選擇 TMB1 頻率選擇
5
Timebase 頻率選擇
b3 b2 TMB2 b1 b0 TMB1
0 0 128Hz* 0 0 8Hz**
0 1 256Hz 0 1 16Hz
1 0 512Hz 1 0 32Hz
1 1 1024Hz 1 1 64Hz
* :預設的 TMB2 輸出頻率為 128Hz
** :預設的 TMB1 輸出頻率為 8Hz
6
TimerA 結構
7
P_TimerA_Ctrl 暫存器
b15–b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
---工作週期設定位元
(表 6.4 )時脈源 B 選擇位元
( 表 6.6)時脈源 A 選擇位元
( 表 6.5)
8
時脈源 A 選擇位元 b2 - b0b2 b1 b0 時脈源 A 的頻率
0 0 0 Fosc/2
0 0 1 Fosc/256
0 1 0 32768Hz
0 1 1 8192Hz
1 0 0 4096Hz
1 0 1 1
1 1 0 0*
1 1 1 EXT1
9
時脈源 B 選擇位元 b5 - b3b5 b4 b3 時脈源 B 的頻率
0 0 0 2048Hz
0 0 1 1024Hz
0 1 0 256Hz
0 1 1 TMB1
1 0 0 4Hz
1 0 1 2Hz
1 1 0 1*
1 1 1 EXT2
10
工作週期設定位元 b9-b6b9 b8 b7 b6 脈寬工作週期 (APWMO) TAON
0 0 0 0 關閉 0
0 0 0 1 1/16 1
0 0 1 0 2/16 1
0 0 1 1 3/16 1
0 1 0 0 4/16 1
0 1 0 1 5/16 1
0 1 1 0 6/16 1
0 1 1 1 7/16 1
1 0 0 0 8/16 1
1 0 0 1 9/16 1
1 0 1 0 10/16 1
1 0 1 1 11/16 1
1 1 0 0 12/16 1
1 1 0 1 13/16 1
1 1 1 0 14/16 1
1 1 1 1 TAOUT 觸發訊號 1
11
TimerB 結構
12
P_TimerB_Ctrl 暫存器
b15 - b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0
--- 工作週期設定位元
( 表 6.8)---
時脈源 C 選擇位元 ( 表 6.5)
13
時脈源 C 選擇位元 b2 - b0b2 b1 b0 時脈源 C 的頻率
0 0 0 Fosc/2
0 0 1 Fosc/256
0 1 0 32768Hz
0 1 1 8192Hz
1 0 0 4096Hz
1 0 1 1
1 1 0 0*
1 1 1 EXT1
14
工作週期的設定b9 b8 b7 b6 脈寬工作週期 (BPWMO) TBON
0 0 0 0 關閉 0
0 0 0 1 1/16 1
0 0 1 0 2/16 1
0 0 1 1 3/16 1
0 1 0 0 4/16 1
0 1 0 1 5/16 1
0 1 1 0 6/16 1
0 1 1 1 7/16 1
1 0 0 0 8/16 1
1 0 0 1 9/16 1
1 0 1 0 10/16 1
1 0 1 1 11/16 1
1 1 0 0 12/16 1
1 1 0 1 13/16 1
1 1 1 0 14/16 1
1 1 1 1TBOUT
觸發訊號 1
15
Source A Frequency 內建常數C_SourceA_Fosc2 Fosc / 2
C_SourceA_Fosc256 Fosc / 256
C_SourceA_32768Hz 32768 Hz
C_SourceA_8192Hz 8192 Hz
C_SourceA_4096Hz 4096 Hz
C_SourceA_1 1
C_SourceA_0
C_SourceA_Ext1
0
EXT1 (IOB2)
16
Source B Frequency 內建常數C_SourceB_2048Hz 2048 Hz
C_SourceB_1024Hz 1024 Hz
C_SourceB_256Hz 256 Hz
C_SourceB_TMB1 TMB1
C_SourceB_4Hz 4 Hz
C_SourceB_2Hz 2 Hz
C_SourceB_1 1
C_SourceB_Ext2 EXT2 (IOB3)
17
Source C Frequency 內建常數C_SourceC_Fosc2 Fosc / 2
C_SourceC_Fosc256 Fosc / 256
C_SourceC_32768Hz 32768 Hz
C_SourceC_8192Hz 8192 Hz
C_SourceC_4096Hz 4096 Hz
C_SourceC_1 1
C_SourceC_0 0
C_SourceC_Ext1 EXT1 (IOB2)
18
TMB1 Frequency 內建常數 C_TMB1_8Hz 8 Hz C_TMB1_16Hz 16 Hz C_TMB1_32Hz 32 Hz C_TMB1_64Hz 64 Hz
19
規劃 TimerA 計時 1 秒 以 TimerA 計數頻率選擇 2048Hz 要完成 1 秒的定時,計數次數應該為 2048
次,轉換為 16 進制數為 800 , 0xFFFF-0x0800+1=0xF800 *P_TimerA_Ctrl = C_SourceA_1 + C_So
urceB_2048Hz; *P_TimerA_Data =0xF800;
20
規劃 TimerA 計時 1 秒 以 TimerA 計數頻率選擇 Fosc/ 2 Hz 24576000/2=12288000 ,超出 16bit 計數範圍,
用2層,即先降頻至 8000Hz ,在 ISR 中計數 8000 次即一秒
24576000/(2*Y)=8000 Y=1536=(600)H , 計數初值 0xFFFF-0x0600 +1 = 0xFA00 。 *P_TimerA_Ctrl = C_SourceA_Fosc2 + C_Sour
ceB_1; *P_TimerA_Data =0xFA00; 或者寫 *P_TimerA_Data = 65536 – 1536;
21
TMB2 Frequency 內建常數 C_TMB2_128Hz 128 Hz C_TMB2_256Hz 256 Hz C_TMB2_512Hz 512 Hz C_TMB2_1024Hz 1024 Hz
22
範例 6-1 0.5 秒單燈左移 (TimerA)