TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Mushoi en 20 de Agosto de 2018, 17:56:55
-
Hola buenas, soy algo nuevo con funciones especificas del micro-controlador PIC en este caso las interrupciones en el PuertoB los pines RB4 a RB7, así esta lo que deseo realizar me gustaría poder interrumpir una función al haber un cambio en el estado de un pin especifico en el PuertoB. en mi programa la función "accion" debera ser cortada o mas bien interrumpida cuando ocurra un cambio en el PIN RB6 del puertoB ejecutando de esta manera la función "interrupción", actualmente la función "interrupción" se ejecuta una vez la función "acción" haya terminado y únicamente de esta manera la funcion interrupcion se ejecuta
Materiales:
PIC16F887
BOTONES
LEDS
resistencias
Agradeceria mucho la ayuda y recomendaciones
-
Aunque de las cosas que te digo hay excepciones, es bueno que sigas estos lineamientos.
Interrupcion:
- En la interrupcion jamas debes tener un loop infinito, es decir que no pueda salir
- La funcion de interrupcion debe salir lo mas rapido posible, asi que nada de delays o funciones que ocupen demasiado tiempo del micro
- Si queres usar algo para salir de tu programa principal usas una variable, la cual cambias en tu interrupcion ( a 1 por ejemplo), y luego en tu programa principal la pones a 0 nuevamente.
- La funcion de interrupcion es que deje el programa principal y vuelva donde dejo.
Programa principal:
- Para comenzar con la programacion, intenta limitarte a 1 solo loop infinito, un solo while(1) o do..while(1), o for(;;) el que mas te guste, pero solo 1. Al menos por ahora
No tuve tiempo para ver el programa, apenas puedo veo si hay una forma mas simple de hacerlo.
-
Muchas gracias por las recomendaciones que me diste, soy nuevo utilizando interrupciones en el puertoB desconocia como se ejecutan y que reglas deben cumplir :o, agradezco todo el feedback recibido de usted y los miembros del foro