LPC2103之timer0 ang timer1
//匹配控制寄存器
#define T1MCR(*((volatile unsigned short *) 0xE0008014))
匹配控制寄存器用于控制當一個匹配寄存器和定時計數器相匹配時將執行什么操作。
| 位 | 信號 | 描述 | 復位值 |
| 0 | MR0I | 寫1時,當MR0與TC匹配將產生中斷;寫0關閉此功能。 | 0 |
| 1 | MR0R | 寫1時,當MR0與TC匹配將會復位;寫0關閉此功能。 | 0 |
| 2 | MR0S | 寫1時,當MR0與TC匹配將使PC和TC計數停止并且TCR[0]拉低(0);寫0關閉此功能。 | 0 |
| 3 | MR1I | 寫1時,當MR1與TC匹配將產生中斷;寫0關閉此功能。 | 0 |
| 4 | MR1R | 寫1時,當MR1與TC匹配將會復位;寫0關閉此功能。 | 0 |
| 5 | MR1S | 寫1時,當MR1與TC匹配將使PC和TC計數停止并且TCR[0]拉低(0);寫0關閉此功能。 | 0 |
| 6 | MR2I | 寫1時,當MR2與TC匹配將產生中斷;寫0關閉此功能。 | 0 |
| 7 | MR2R | 寫1時,當MR2與TC匹配將會復位;寫0關閉此功能。 | 0 |
| 8 | MR2S | 寫1時,當MR2與TC匹配將使PC和TC計數停止并且TCR[0]拉低(0);寫0關閉此功能。 | 0 |
| 9 | MR3I | 寫1時,當MR3與TC匹配將產生中斷;寫0關閉此功能。 | 0 |
| 10 | MR3R | 寫1時,當MR3與TC匹配將會復位;寫0關閉此功能。 | 0 |
| 11 | MR3S | 寫1時,當MR3與TC匹配將使PC和TC計數停止并且TCR[0]拉低(0);寫0關閉此功能。 | 0 |
| 15:12 | 保留 |
//匹配寄存器
//匹配寄存器0
#define T1MR0(*((volatile unsigned long *) 0xE0008018))
//匹配寄存器1
#define T1MR1(*((volatile unsigned long *) 0xE000801C))
//匹配寄存器2
#define T1MR2(*((volatile unsigned long *) 0xE0008020))
//匹配寄存器3
#define T1MR3(*((volatile unsigned long *) 0xE0008024))
匹配寄存器的值將不斷的和定時計數器(TC)的值進行比較。當二者相等時,相應行為將被自動觸發。該行為可能產生一個中斷、復位定時計數器、或者停止定時器。該行為由MCR寄存器的設置決定。
//捕獲控制寄存器
#define T1CCR(*((volatile unsigned short *) 0xE0008028))
捕獲控制寄存器用于控制四個捕獲寄存器之一是否在捕獲事件發生時加載定時計數器值,以及該捕獲事件是否產生中斷。
| 位 | 信號 | 描述 | 復位值 |
| 0 | CAP0RE | 寫1時,捕獲CAPn.0的上升沿,當上升沿到來時將導致CR0加載TC值。 | 0 |
| 1 | CAP0FE | 寫1時,捕獲CAPn.0的下降沿,當下降沿到來時將導致CR0加載TC值。 | 0 |
| 2 | CAP0I | 寫1時,CAPn.0事件中斷,CAPn.0事件將產生中斷。 | 0 |
| 3 | CAP1RE | 寫1時,捕獲CAPn.1的上升沿,當上升沿到來時將導致CR1加載TC值。 | 0 |
| 4 | CAP1FE | 寫1時,捕獲CAPn.1的下降沿,當下降沿到來時將導致CR1加載TC值。 | 0 |
| 5 | CAP1I | 寫1時,CAPn.1事件中斷,CAPn.1事件將產生中斷。 | 0 |
| 6 | CAP2RE | 寫1時,捕獲CAPn.2的上升沿,當上升沿到來時將導致CR2加載TC值。 | 0 |
| 7 | CAP2FE | 寫1時,捕獲CAPn.2的下降沿,當下降沿到來時將導致CR2加載TC值。 | 0 |
| 8 | CAP2I | 寫1時,CAPn.2事件中斷,CAPn.2事件將產生中斷。 | 0 |
| 9 | CAP3RE | 寫1時,捕獲CAPn.3的上升沿,當上升沿到來時將導致CR3加載TC值。 | 0 |
| 10 | CAP3FE | 寫1時,捕獲CAPn.3的下降沿,當下降沿到來時將導致CR3加載TC值。 | 0 |
| 11 | CAP3I | 寫1時,CAPn.3事件中斷,CAPn.3事件將產生中斷。 | 0 |
| 15:12 | 保留 | NA |
//捕獲寄存器
//捕獲寄存器0
#define T1CR0(*((volatile unsigned long *) 0xE000802C))
//捕獲寄存器1
#define T1CR1(*((volatile unsigned long *) 0xE0008030))
//捕獲寄存器2
#define T1CR2(*((volatile unsigned long *) 0xE0008034))
//捕獲寄存器3
#define T1CR3(*((volatile unsigned long *) 0xE0008038))
每個捕獲寄存器都和器件管腳相關聯,當指定事件發生在外部管腳上時捕獲寄存器也許要加載定時計數器值。捕獲控制寄存器的設置決定是否捕獲功能被使能,并且觸發事件到底是在關聯管腳的上升沿、下降沿或者雙沿(包括上升沿和下降沿)。
//外部匹配寄存器
#define T1EMR(*((volatile unsigned short *) 0xE000803C))
外部匹配寄存器控制外部匹配管腳MAT(0-3),并可以讀出其狀態。
| 位 | 信號 | 描述 | 復位值 |
| 0 | EM0 | 外部匹配0。該位反映了輸出MAT0.0/MAT1.0的狀態。當TC和MR0匹配時,該定時器輸出可以為高、為低、或者不變。EMR[5:4]控制輸出功能。 | 0 |
| 1 | EM1 | 外部匹配1。該位反映了輸出MAT0.1/MAT1.1的狀態。當TC和MR1匹配時,該定時器輸出可以為高、為低、或者不變。EMR[7:6]控制輸出功能。 | 0 |
| 2 | EM2 | 外部匹配2。該位反映了輸出MAT0.2/MAT1.2的狀態。當TC和MR2匹配時,該定時器輸出可以為高、為低、或者不變。EMR[9:8]控制輸出功能。 | 0 |
| 3 | EM3 | 外部匹配3。該位反映了輸出MAT0.3/MAT1.3的狀態。當TC和MR3匹配時,該定時器輸出可以為高、為低、或者不變。EMR[11:10]控制輸出功能。 | 0 |
| 5:4 | EMC0 | 外部匹配控制0 | 00 |
| 7:6 | EMC1 | 外部匹配控制1 | 00 |
| 9:8 | EMC2 | 外部匹配控制2 | 00 |
| 11:10 | EMC3 | 外部匹配控制3 | 00 |
| 15:12 | 保留 | NA |
00——什么都不做
01——清除相應的外部匹配位/輸出0
10——置位相應的外部匹配位/輸出1
11——Toggle the corresponding External Match bit/output
//計數控制寄存器
#define T1CTCR(*((volatile unsigned long *) 0xE0008070))
該寄存器用于用于選擇定時器或者計數器模式,計數模式下也用于選擇計數時的管腳和邊沿。
在計數器模式下,CAP輸入(由CTCR寄存器的bit3:2選擇)在每個PCLK時鐘的上升沿被采樣。在比較CAP的兩個連續采樣值后,產生以下四個事件中的一個:所選擇CAP輸入的上升沿、下降沿、沿變化、不變化。只有識別出了與CTCR寄存器的bit1:0所選擇的事件相一致時,定時計數器寄存器將會增1。
實際上外部提供的時鐘運行計數器有其局限性。PCLK兩個連續的上升沿僅能用于識別一個CAP選擇輸入的變化沿,CAP輸入頻率不能夠超過PCLK時鐘的一半。所以,在同一個CAP輸入的高或低電平至少必須保持1/PCLK時間以上。
| 位 | 信號 | 描述 | 復位值 |
| 1:0 | Counter/Timer mode | 00——定時器模式,每個PCLK的上升沿到來后PC值加1,或者復位PC同時TC加1; 01——計數器模式,由bit3:2選擇的CAP的上升沿到來后TC值加1; 10——計數器模式,由bit3:2選擇的CAP的下降沿到來后TC值加1; 11——計數器模式,由bit3:2選擇的CAP的沿變化后TC值加1; | 00 |
| 3:2 | Count input select | 00——CAP1.0 for Timer1 01——CAP1.1 for Timer1 10——CAP1.2 for Timer1 11——CAP1.3 for Timer1 | 00 |
| 7:4 | 保留 | NA |
// PWM控制寄存器
#define PWM1CON(*((volatile unsigned long *) 0xE0008074))
| 位 | 信號 | 描述 | 復位值 |
| 0 | PWM enable | 1——MATn.0的PWM模式使能 0——MATn.0由EM0控制 | 0 |
| 1 | PWM enable | 1——MATn.1的PWM模式使能 0——MATn.1由EM0控制 | 0 |
| 2 | PWM enable | 1——MATn.2的PWM模式使能 0——MATn.2由EM0控制 | 0 |
| 3 | PWM enable | 1——MATn.3的PWM模式使能 0——MATn.3由EM0控制 | 0 |
| 32:4 | 保留 | NA |


評論