La interrupción por RB0 es una de las más utilizadas, ella detecta cuando hay un cambio en el bit 0 del puerto B, este cambio puede ser un flanco de bajada o un flanco de subida, pero no ambos, esto se puede configurar mediante una función, dicha selección se hace dependiendo del dispositivo conectado a la entrada.
Otro factor que se debe tener en cuenta cuando se configuran entradas en el puerto B, es que este puerto cuenta con resistencias de PULL – UP internas, las cuales son muy útiles para dispositivos de entrada que no generan los dos niveles lógicos.
Las funciones utilizadas para la configuración de la interrupción por RB0 son:
- EXT_INT_EDGE(H_TO_L); determina un flanco de bajada para la interrupción
- EXT_INT_EDGE(L_TO_H); determina un flanco de subida para la interrupción
- PORT_B_PULLUPS(TRUE); Activa las resistencias de pull-up internas
- ENABLE_INTERRUPTS (INT_EXT); Activa las interrupciones por RB0
- ENABLE_INTERRUPTS (GLOBAL); Activa las interrupciones globales
INTERRUPCIÓN EXTERNA POR RB1 Y RB2 (INT_EXT1, INT_EXT2)
Las interrupciones externas por RB1 y RB2 funcionan de la misma forma que las de RBO, con la diferencia que detectan el cambio en el bit 1 y bit 2 de puerto B respectivamente, pero de igual forma se les puede configurar el flanco de activación y la prioridad. Las funciones utilizadas para configurar estas interrupciones son las siguientes:
FUNCIONES PARA LA INTERRUPCIÓN EXT1
· EXT_INT_EDGE(1, H_TO_L);
Determina un flanco de bajada para la interrupción externa por RB1
· EXT_INT_EDGE(1, L_TO_H);
Determina un flanco de subida para la interrupción externa por RB1
· PORT_B_PULLUPS(TRUE);
Activa las resistencias de pull-up internas
· ENABLE_INTERRUPTS (INT_EXT1);
Activa las interrupciones globales
· ENABLE_INTERRUPTS (GLOBAL);
Activa las interrupciones globales
FUNCIONES PARA LA INTERRUPCIÓN EXT2
· EXT_INT_EDGE(2, H_TO_L);
Determina un flanco de bajada para la interrupción externa por RB1
· EXT_INT_EDGE(2, L_TO_H);
Determina un flanco de subida para la interrupción externa por RB1
· PORT_B_PULLUPS(TRUE);
Activa las resistencias de pull-up internas
· ENABLE_INTERRUPTS (INT_EXT2);
Activa las interrupciones globales
· ENABLE_INTERRUPTS (GLOBAL);
Activa las interrupciones globales
Se agradece, Muchas gracias profesor por la gran info. que nos brinda
ResponderEliminar