INTERRUPCIÓN EXTERNA POR RB0

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




1 comentario:

  1. Se agradece, Muchas gracias profesor por la gran info. que nos brinda

    ResponderEliminar