Interrupciones, dos señales externas

Tengo un problema de interrupciones. Necesito que un PIC detecte dos interupciones externas que llegan de dos sensores infrarrojos distintos. Recien me estoy iniciando en esto de los PICs y veo que solo hay una entrada para interrupciones externas por RB0/int y por cambio de estado entre RB4-RB7.
Pensaba solucionarlo usando esos dos tipos de interrupciones, una para cada entrada de señal pero supongo que es una mala forma de hacerlo.
Hay alguna forma de saber por cual de los pines de RB4-RB7 esta llegando la interrupción?
Alguna idea de como solucionar este tema?
Gracias por leerme!
pd.: lo estoy haciendo en pic basic.
 
Yo solo se ensamblador pero el lenguaje en este caso es irrelevante.

Tu rutina de interrupcion debe empezar averiguando que pin produce la interrupcion y saltar a una zona de programa distinta segun sea uno u otro.

Supongamos que la interrupcion solo la puede probocar Rb4 y Rb5. Yo haria lo siguiente:

RUTINA INTERRUPCION
Si Rb4=1 goto SALTO1
;Aqui pones las instrucciones si la interrupcion la proboca Rb5
.......
......
.....
goto SALIR_INT
SALTO1
;Aqui pones las instrucciones si la interrupcion la proboca Rb4
.......
......
......
SALIR_INT


Algo asi deberia servir
 
Mete las 2 señales en los puertos de RB4 a RB5, y cuando se active lee todas las entradas. A la velocidad que corre el micro aun tendras presente la entrada para su lectura.
 
gracias krit y pepechip!
El tema es que los pulsos ingrasados al PIC vienen del fototransistor doble de un mouse de los viejos, me pregunto si el pulso durará lo suficiente como para poder ejecutar una sentencia condicional antes de que desaparezca. Alguien tiene idea? a eso te referias pepechip?
Saludos!
 
gracias krit y pepechip!
El tema es que los pulsos ingrasados al PIC vienen del fototransistor doble de un mouse de los viejos, me pregunto si el pulso durará lo suficiente como para poder ejecutar una sentencia condicional antes de que desaparezca. Alguien tiene idea? a eso te referias pepechip?
Saludos!

Recuerda que la INT de Rb4 a RB7 funciona con CAMBIO DE ESTADO no por señal especifica, osea se activa al pasar de 1 a 0 y de 0 a 1, conclusion el tiempo de la señal no importa, ademas una vez detectada la INT ya esta tiene prioridad, yo cuando uso esas INTs (RB4-RB7) habilito las resistencias de Pull-UP y asumo que hay una INT cuando pasa de 1 a 0, para eliminar o desechar la INT cuando pasa de 0 a 1 solo verifico en la rutina de atencion de la interrupcion si el estado es 0 si es 1 no hago nada, cuanchauuuuuuuuu
 
Última edición:
Atrás
Arriba