TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: micro_pepe en 22 de Enero de 2006, 14:41:00

Título: Interrupcion por cambio de estado
Publicado por: micro_pepe en 22 de Enero de 2006, 14:41:00
Hola, tengo una duda de como funciona la interrupcion por cambio de estado de los pines.

Suponiendo que todas las patas estan a 1, si una de ellas se pone a cero, ¿se produce interrupcion?. Borramos el flag, y si la misma pata se pone a 0, ¿se produce de nuevo interrupcion?.

Saludos y gracias.
Título: RE: Interrupcion por cambio de estado
Publicado por: poi5on en 22 de Enero de 2006, 15:29:00
Hola amigo
Hay varios tipos de interrupciones por el cambio de estado en RB0 si en este pin se produce un cambio de estado se produce una interrupción, otro es el desbordamiento del TMR0 (estoy hablando del 84a) si supera FF entonces hay interrupción, otro es por cambio en las entradas desde RB4 a RB7 si algunas de ellas cambia de estado hay interrupción.
Todas esas int se pueden configurar en el registro INTCON y OPTION

SaludosRebotadoRebotado
Título: RE: Interrupcion por cambio de estado
Publicado por: micro_pepe en 23 de Enero de 2006, 06:37:00
Me refiero a las entradas desde RB4 a RB7 , no se si la interrupcion se produce con cualquier cambio en las entradas, o solo si una de ellas cambia cuando el resto estan a 1 o a 0.

Saludos.
Título: RE: Interrupcion por cambio de estado
Publicado por: piriots en 23 de Enero de 2006, 11:59:00
La interrupcion RB4-RB7 salta en cada cambio de estado, ya sea de nivel bajo a alto o al reves. Luego ya si quieres que salte solo en un flanco lo tendras que hacer por soft.

Salu2
Título: RE: Interrupcion por cambio de estado
Publicado por: maunix en 23 de Enero de 2006, 19:23:00
Escrito originalmente por micro_falo
Me refiero a las entradas desde RB4 a RB7 , no se si la interrupcion se produce con cualquier cambio en las entradas, o solo si una de ellas cambia cuando el resto estan a 1 o a 0.

Saludos.


Es por diferencia entre el último valor leido y el actual.   Para que la interrupción salte otra vez, debes hacer 2 cosas.

Si en la entrada tienes 0x7F y luego tienes 0xCF salta la interrupcion.  

1) Leer el PORTB para que la condición de diferencia se elimine (mismatch condition).
2) Borrar el flag de la interrupcion

Luego puedes seguir detectando el cambio.