LPC2103之timer0 ang timer1
Page187
定時器/計數(shù)器有計劃的在外設(shè)時鐘(PCLK)或者外部提供的時鐘下進行循環(huán)計數(shù),它可以基于四個匹配寄存器有選擇的在指定的定時值到達后產(chǎn)生中斷或者執(zhí)行其它操作。它也括了四路捕獲輸入,用于捕獲變化信號的定時值,可選擇的產(chǎn)生中斷。
Pin description
管腳 | 類型 | 描述 |
CAP0.2.0 CAP1.3.0 | Input | 捕獲信號——捕獲管腳的變化可以配置,捕獲寄存器中定時計數(shù)值加一,同時可以用選擇的產(chǎn)生中斷。以下是捕獲信號的列表: ?CAP0.0: P0.2 ?CAP0.1: P0.4 ?CAP0.2: P0.6 ?CAP1.0: P0.10 ?CAP1.1: P0.11 ?CAP1.2: P0.17 ?CAP1.3: P0.18 |
MAT0.2.0 MAT1.3.0 | Output | 外部匹配輸出0/1——當(dāng)一個匹配寄存器0/1等于定時計數(shù)值,這個輸出可能觸發(fā),變高,變低,或者不變。外部匹配寄存器(EMR)和PWM控制寄存器(PWMCON)控制這個輸出的功能。以下是捕獲信號的列表: ?MAT0.0: P0.3 ?MAT0.1: P0.5 ?MAT0.2: P0.16 ?MAT1.0: P0.12 ?MAT1.1: P0.13 ?MAT1.2: P0.19 ?MAT1.3: P0.20 |
Register description
下面只列舉Timer 1的各個寄存器做說明,其它的Timer0/2/3都類似。
/************************************** Timer 1 *************************************/
/*************************定時器1的特殊寄存器*********************************/
//中斷寄存器
#define T1IR(*((volatile unsigned char *) 0xE0008000))
讀該寄存器值可以判斷是8個中斷源中的哪一個發(fā)生了中斷,寫1清除中斷,寫0無效。該寄存器包括了四個匹配中斷和四個捕獲中斷。一旦中斷產(chǎn)生則相應(yīng)位置高,否則為低。
位 | 信號 | 描述 | 復(fù)位值 |
0 | MR0 interrupt | 匹配通道0中斷標(biāo)志 | 0 |
1 | MR1 interrupt | 匹配通道1中斷標(biāo)志 | 0 |
2 | MR2 interrupt | 匹配通道2中斷標(biāo)志 | 0 |
3 | MR3 interrupt | 匹配通道3中斷標(biāo)志 | 0 |
4 | CR0 interrupt | 捕獲通道0事件中斷標(biāo)志 | 0 |
5 | CR1 interrupt | 捕獲通道1事件中斷標(biāo)志 | 0 |
6 | CR2 interrupt | 捕獲通道2事件中斷標(biāo)志 | 0 |
7 | CR3 interrupt | 捕獲通道3事件中斷標(biāo)志 | 0 |
//定時器控制寄存器
#define T1TCR(*((volatile unsigned char *) 0xE0008004))
該寄存器用于控制定時器/計數(shù)器的操作。
位 | 信號 | 描述 | 復(fù)位值 |
0 | Counter Enable | 為1時,定時計數(shù)器和分頻計數(shù)器使能工作。為0時計數(shù)器關(guān)閉。 | 0 |
1 | Counter Reset | 為1時,定時計數(shù)器和分頻計數(shù)器在下一個PCLK的上升沿同步復(fù)位。計數(shù)器復(fù)位保持到該位返回0值。 | 0 |
7:2 | 保留 | NA |
//定時計數(shù)器
#define T1TC(*((volatile unsigned long *) 0xE0008008))
當(dāng)分頻計數(shù)器(PC)到達了預(yù)定值后32bit定時計數(shù)器加1。達到限定值后復(fù)位,TC計數(shù)到達最大值0xffffffff后增1就復(fù)位為0x00000000。該事件不會引發(fā)中斷,但是如果需要的話匹配寄存器可以用于檢測是否溢出。
//分頻寄存器
#define T1PR(*((volatile unsigned long *) 0xE000800C))
32bit分頻寄存器指定了分頻計數(shù)器(PC)的計數(shù)最大值。
//分頻計數(shù)器寄存器
#define T1PC(*((volatile unsigned long *) 0xE0008010))
32bit分頻計數(shù)器對PCLK進行一些常量值的分頻,然后才用于定時計時器。分頻計數(shù)器每個PCLK時鐘加1,當(dāng)其達到了存儲分頻寄存器(PR)的值后,定時計數(shù)器加1,并且分頻計數(shù)器在下一個PCLK復(fù)位。也就是說,PC=1,那么PC在每2個PCLK復(fù)位一次。
評論