Hola amigos!
Comparto con ustedes este fragmento de código .xD
En mi aplicación ocupe la dichosa interrupcion externa en mi pic16f88 IntRB0 para medir el timepo entre flancos.
Use practicamente todos los pines , excepto RA4/T0CKI que tiene la funcion de entrada externa del TIMER0.
NEcesito detectar cuando unos rieles llegan a los limites de estos.
Asi que use el TIMER0 en modo CONTADOR y aprovecho la interrupcion por desborde.FF-00
ENtonces esto queda asi :
Configuro el pin como entrada digital
Selecciono el Incremento por subida o bajada segun sea la necesidad.
Configuro el TIMER0 en modo contador
Cargo el TIMER0 con 255
HAbilito interrupcion.
Cargo con 255 , asi cuando mi pin cambie de estado alto a bajo incremente y desborde el timer produciendo la interrupcion.
Al salir de la interrupcion cargo nuevamente el timer.
//INterrupcion desborde timer0
#int_timer0
void stop_switch(){
clear_interrupt(INT_TIMER0); //Limpiamos flag
flag=1; // Bandera de desborde
}
main(){
set_tris_a(0b00110000)
//--------- Configuracion Interrupcion Switch Overflow ---//
SETUP_TIMER_0(RTCC_DIV_1 | RTCC_EXT_H_TO_L); //1:1 _Incremento por ALto-Bajo
SET_TIMER0(255); //CArga del timer con 0xFF
//--------------------------------------------------------//
enable_interrupts(INT_TIMER0); //HAbilitamos interrupcion
while(1){
//loop
}
}