2011年2月28日 星期一

DIY - PIC:C18 Timers 函數庫程式 (廿十六)

DIY - PICC18 Timers 函數庫程式 (廿十六)

Microchip C18 有內置支持 Timer 計時器函數庫模塊 (timers.h),衹需要用包括 timers 頭文件 ()。然後再呼叫不同的功能,便可控制 PIC18F4550 內的四個計時器。

 
功能 – CloseTimersx ( 禁止指定的計時器) 
原型:void CloseTimerx( void ); 
說明該函數禁止中斷和指定的計時器

功能
– OpenTimer0 (配置timer0) 
原型:void OpenTimer0( unsigned char config )  
參數:config 
說明:該函數按照指定的選項配置timer0 
範例OpenTimer0( TIMER_INT_OFF & T0_8BIT & T0_SOURCE_INT & T0_PS_1_32 )
 
OpenTimer0 選項配置 說明
允許Timer0 中斷 TIMER_INT_ON 允許中斷
TIMER_INT_OF 禁止中斷
計時器寬度 T0_8BIT 8 位元模式
T0_16BIT 16 位元模式
時鐘源 T0_SOURCE_EXT 外部時鐘源(I/O 引腳)
T0_SOURCE_INT 內部時鐘源(TOSC
外部時鐘觸發(T0_SOURCE_EXT T0_EDGE_FALL 外部時鐘下降沿
T0_EDGE_RISE 外部時鐘上升沿
預分頻值 T0_PS_1_1 1:1     預分頻
T0_PS_1_2 1:2     預分頻
T0_PS_1_4 1:4     預分頻
T0_PS_1_8 1:8     預分頻
T0_PS_1_16 1:16    預分頻
T0_PS_1_32 1:32    預分頻
T0_PS_1_64 1:64    預分頻
T0_PS_1_128 1:128   預分頻
T0_PS_1_256 1:256   預分頻

功能OpenTimer1 (配置timer1)
原型: void OpenTimer1( unsigned char config )
參數: config
說明: 該函數按照指定的選項配置timer1
範例 OpenTimer1( TIMER_INT_ON & T1_8BIT_RW & T1_SOURCE_EXT & T1_PS_1_1 & T1_OSC1EN_OFF & T1_SYNC_EXT_OFF & T1_SOURCE_CCP )

OpenTimer1 選項配置 說明
允許Timer1 中斷 TIMER_INT_ON 允許中斷
TIMER_INT_OF 禁止中斷
計時器寬度 T1_8BIT_RW 8 位元模式
T1_16BIT_RW 16 位元模式
時鐘源 T1_SOURCE_EXT 外部時鐘源(I/O 引腳)
T1_SOURCE_INT 內部時鐘源(TOSC
振盪器使用 T1_OSC1EN_ON 使能Timer1 振盪器
T1_OSC1EN_OFF 禁止Timer1 振盪器
同步時鐘輸入 T1_SYNC_EXT_ON 同步外部時鐘輸入
T1_SYNC_EXT_OFF 不同步外部時鐘輸入
預分頻值 T1_PS_1_1 1:1     預分頻
T1_PS_1_2 1:2     預分頻
T1_PS_1_4 1:4     預分頻
T1_PS_1_8 1:8     預分頻

功能 – OpenTimer2 (配置timer2) 
原型:void OpenTimer2( unsigned char config )
參數:config 
說明:該函數按照指定的選項配置timer2
範例OpenTimer2( TIMER_INT_OFF & T2_PS_1_1 & T2_POST_1_8 )


OpenTimer2 選項配置 說明
允許Timer2 中斷 TIMER_INT_ON 允許中斷
TIMER_INT_OF 禁止中斷
預分頻值 T2_PS_1_1 1:1     預分頻
T2_PS_1_4 1:4     預分頻
T2_PS_1_16 1:16   預分頻
後分頻值 T2_POST_1_1 1:1     後分頻
T2_POST_1_2 1:2     後分頻
T2_POST_1_3 1:3     後分頻
T2_POST_1_4 1:4     後分頻
T2_POST_1_5 1:5     後分頻
T2_POST_1_6 1:6     後分頻
T2_POST_1_7 1:7     後分頻
T2_POST_1_8 1:8     後分頻
T2_POST_1_9 1:9     後分頻
T2_POST_1_10 1:10   後分頻
T2_POST_1_11 1:11   後分頻
T2_POST_1_12 1:12   後分頻
T2_POST_1_13 1:13   後分頻
T2_POST_1_14 1:14   後分頻
T2_POST_1_15 1:15   後分頻
T2_POST_1_16 1:16   後分頻


功能OpenTimer3 (配置timer3)
原型:void OpenTimer3( unsigned char config )
參數:config
說明:該函數按照指定的選項配置timer3
範例OpenTimer3( TIMER_INT_ON & T3_8BIT_RW & T3_SOURCE_EXT & T3_PS_1_1 & T3_OSC1EN_OFF & T3_SYNC_EXT_OFF & T3_SOURCE_CCP )

OpenTimer3 選項配置 說明
允許Timer3 中斷 TIMER_INT_ON 允許中斷
TIMER_INT_OF 禁止中斷
計時器寬度 T3_8BIT_RW 8 位元模式
T3_16BIT_RW 16 位元模式
時鐘源 T3_SOURCE_EXT 外部時鐘源(I/O 引腳)
T3_SOURCE_INT 內部時鐘源(TOSC
預分頻值 T3_PS_1_1 1:1     預分頻
T3_PS_1_2 1:2     預分頻
T3_PS_1_4 1:4     預分頻
T3_PS_1_8 1:8     預分頻
同步時鐘輸入 T3_SYNC_EXT_ON 同步外部時鐘輸入
T3_SYNC_EXT_OFF 不同步外部時鐘輸入
CCP 使用 T1_SOURCE_CCP Timer1作為兩個CCP 的時鐘源
T3_SOURCE_CCP Timer3作為兩個CCP 的時鐘源
T1_CCP1_T3_CCP2 Timer1作為CCP1 的時鐘源Timer3 作為 CCP2 的時鐘源

功能OpenTimer4 (配置timer4)
原型:void OpenTimer4( unsigned char config )
參數:config
說明:該函數按照指定的選項配置timer4
範例OpenTimer4( TIMER_INT_OFF & T4_PS_1_1 & T4_POST_1_8 )

OpenTimer4 選項配置 說明
允許Timer4 中斷 TIMER_INT_ON 允許中斷
TIMER_INT_OF 禁止中斷
預分頻值 T4_PS_1_1 1:1     預分頻
T4_PS_1_4 1:4     預分頻
T4_PS_1_16 1:16   預分頻
後分頻值 T4_POST_1_1 1:1     後分頻
T4_POST_1_2 1:2     後分頻
T4_POST_1_3 1:3     後分頻
T4_POST_1_4 1:4     後分頻
T4_POST_1_5 1:5     後分頻
T4_POST_1_6 1:6     後分頻
T4_POST_1_7 1:7     後分頻
T4_POST_1_8 1:8     後分頻
T4_POST_1_9 1:9     後分頻
T4_POST_1_10 1:10   後分頻
T4_POST_1_11 1:11   後分頻
T4_POST_1_12 1:12   後分頻
T4_POST_1_13 1:13   後分頻
T4_POST_1_14 1:14   後分頻
T4_POST_1_15 1:15   後分頻
T4_POST_1_16 1:16   後分頻

功能ReadTimerx (讀取指定計時器的值)
原型:unsigned int ReadTimerx( void )
說明:這些函數讀取各個計時器寄存器的值。
Timer0 TMR0L,TMR0H
Timer1 TMR1L,TMR1H
Timer2 TMR2
Timer3 TMR3L,TMR3H4
Timer4 TMR4
注:當使用可配置為 16 位元模式、但工作在8 位元模式的計時器(如 timer0)時,高位元組並不保證為 0。用戶可能希望將結果強制轉換為字符型,以得到正確的結果。
範例
// Example of reading a 16-bit result
// from a 16-bit timer operating in
// 8-bit mode:
unsigned int result
result = (unsigned char) ReadTimer0()



功能 –WriteTimerx (讀取指定計時器的值) 
原型void WriteTimerx( unsigned int timer )  
說明:這些函數將值寫入到相應的計時器寄存器: 
Timer0 TMR0L,TMR0H 
Timer1 TMR1L,TMR1H 
Timer2 TMR2 
Timer3 TMR3L,TMR3H 
Timer4 TMR4 
範例WriteTimer0( 10000 )  

2011 02 28 天氣報告 
氣溫:21.5 @ 23:00 
相對濕度:百分之72% 
天氣:天色大致良好

沒有留言:

張貼留言