TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: sound2005 en 01 de Junio de 2005, 04:09:00
-
Buenas
Desearía saber como puedo detectar los cambios en las entradas del PIC sin estar recorriendo en un bucle constantemente todas las entradas. Necesito saber cuales son las entradas que se han activado o las que se han desactivado y en que orden lo hicieron. Es como si controlara todas las entradas por interrupciones. Estoy usando el PIC 16F877. Gracias por adelantado.
-
Que tal, hay una interrupcion que se activa con los cambios de estados en los pines RB4 y RB7 (creo que son esos pines), de cualquier forma rebisa el PDF, tambien puedes usar la interrupcion en el pin RB0, pero con respecto a los otros pines creo que tendras que rebisar simpre su estado o usar los modulos relacionados a los pines del puerto que quieras utilizar, pero si consigues otra forma de hacerlo postea la informacion por favor.
-
He estado mirando el PDF y efectivamente me notifica cambios de estado en las entradas. PEro esos cambios de estado que me notifica pueden ser de todas las entradas del PIC o sólo de las del puerto B. Gracias.
-
Esa interrupción es para el puerto B sólo. Los demás puertos no tienen interrupción por cambio de estado. Lo debes hacer "a mano".
-
Si no quieres que tu programa esté continuamente metido en un bucle que chequee las entradas, también puedes usar la interrupción por desbordamiento del Timer para hacerlo.
La configuras para que salte en un periodo que sea lo suficientemente pequeño para que detecte los cambios en las entradas a tiempo y haces la comprobación allí dentro.
Así tu programa principal podrá dedicarse a otras cosas mientras tanto.
-
Aun hay otro modo añadiendo hardware. Hay un expansor de puertos de Philops (hay también de otras marcas), que te da una interrupción si hay un cambio en una entrada. Se comunica por I2C en el micro y puede tener 8 o 16 puertos de entrada. La interrupción la colocas al RB0 y cuando se produzca lees el expansor y ves las entradas que han cambiado. El expansor es el PCF8574 hay otro de 16 puertos.
Saludos,
Ricky
-
Muchas Gracias por vuestra ayuda. Está última solución me parece muy interesante