Codigo:
setup_counters(RTCC_INTERNAL,RTCC_DIV_16); // Configuración de TIMER0 : Clock Interno y Presescaler 16
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
· SETUP_COUNTERS(rtcc_state, ps_state)
Esta función inicializa el timer RTCC o el WDT. El rtcc_state determina qué es lo que
activa el RTCC. El ps_state establece un pre-scaler para el RTCC o el WDT. El prescaler
alarga el ciclo del contador indicado. Si se activa el pre-scaler del RTCC el WDT
se pondrá a WDT_18MS. Si se activa el pre-scaler del WDT el RTCC se pone a
RTCC_DIV_1.
Valores del rtcc_state:
RTCC_INTERNAL
RTCC_EXT_L_TO_H
RTCC_EXT_H_TO_L
Valores del ps_state:
RTCC_DIV_2
RTCC_DIV_4
RTCC_DIV_8
RTCC_DIV_16
RTCC_DIV_32
RTCC_DIV_64
RTCC_DIV_128
RTCC_DIV_256
WDT_18MS
WDT_36MS
WDT_72MS
WDT_144MS
WDT_288MS
WDT_576MS
WDT_1152MS
WDT_2304MS
Ejemplo:
setup_counters (RTCC_INTERNAL, WDT_2304MS);
· SETUP_TIMER_1(mode)
Esta función inicializa el timer1. Los valores de mode deben ordenarse juntos, tal como
se muestra en el ejemplo. El valor del timer puede leerse y puede escribirse utilizando
GET_TIMER1() y SET_TIMER1().
Los valores de mode son:
o T1_DISABLED o T1_EXTERNAL_SYNC o T1_DIV_BY_2
o T1_INTERNAL o T1_CLK_OUT o T1_DIV_BY_4
o T1_EXTERNAL o T1_DIV_BY_1 o T1_DIV_BY_8
Ejemplos:
setup_timer_1 ( T1_DISABLED );
setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 );
setup_timer_1 ( T1_INTERVAL | T1_DIV_BY_8 );
· SETUP_TIMER_2(mode, period, postscale)
Esta función inicializa el timer2; mode especifica el divisor del reloj del oscilador. period
es un número comprendido entre 0-255, y determina el momento en el que el valor del
reloj se resetea a 0. postscale es un número de 0 a 15, que determina cuántos reset del
timer se han producido antes de una interrupción. 0 significa 1 reset, 1 significa 2 reset,
y así sucesivamente. El valor del timer puede leerse y puede escribirse utilizando
GET_TIMER2() y SET_TIMER2().
Los valores de mode son:
o T2_DISABLED
o T2_DIV_BY_1
o T2_DIV_BY_4
o T2_DIV_BY_16
Ejemplo:
setup_timer_2 ( T2_DIV_BY_4, 0xc0, 2);