Google Búsqueda personalizada

Regístrate gratis para participar de los foros, o si ya estás registrado haz login.

interuupciones en un pic

comentario del autor Sab Jun 20, 2009 2:46 am
   
hola a todos, mi duda surge de que no se si puede hacer lo siguiente con un pic, mas especifico un 16f628, estoy leyendo un libro y estoy programando con proton, y lo que quiero saber es si se puede hacer un programa para un pic que haga lo siguiente: yo quisiera que un led este parpadeando continuamente y a la vez leer algunas entradas y que estas me activen algunas salidas las cuales tengan un tiempo de activacion de algunos segundos, pero mi duda es se puede?, porque si temporizo una salida a traves de un delay o un lazo repetitivo con un for tengo que esperar a que este termine para luego ir a la siguiente instruccion y si por ejemplo esta destellando el led y atiendo una interrupcion este dejaria de destellar, o si activo una salida por un tiempo X tengo que esperar a que pase ese tiempo para poder leer otra entrada y ver que activo, sintetizando lo que quiero hacer es algo parecido a cuando uno programa por ladder un plc, pero hacerlo con un pic, me han dicho que se puede hacer con las interrupciones, se puede? alguien me puede facilitar un pequeño codigo de ejemplo o un explicacion breve. Bueno un saludo para todos.

cristiancrgs2008

Reputación

sin valorar Mie Jun 24, 2009 11:03 pm
   
Hola. Si es posible, mientras el microcontrolador soporte interrupciones, es sencillo hacerlo funcionar como multitasking. Lo que necesitas lo puedes lograr de 2 maneras
1.- Utilizando como rutina principal el poleo de las entradas, y la intermitencia continua del led la logras con una interrupcion bien sea por tmr0, por tmr1 o por tmr2. Recomendable es que si el tiempo de entre apagado y encendido es de mas de 500 ms utilizes la interrupcion por desborde de tmr1 y la del tmr0 la empleas para los retardos o para conteos externos por RA4.
2.- Utilizando como rutina principal la intermitencia del led por medio de la instruccion XORWF y retardos, y el poleo de las entradas lo haces con interrupciones por cambio de flanco en RB4-RB7. Esta requiere un poco mas de conocimiento por cuanto tienes que configurar las pullup del puerto b, el flanco activo, el bit de activacion y ademas de eso puedes tener problemas al momento de salir de la interrupcion debido al retardo para la desactivacion de la salida. Recomendable es que uses la primera sugerencia, te menciono las 2 para que tengas mas opciones.

Comenta como te fue! Salu2

Fofo almarales

Reputación

comentario del autor Jue Jun 25, 2009 10:38 pm
   
hola fofo almarales, te comento que me es de mucha ayuda tu respuesta, por esas casualidades tendras algun tuto o ejemplos hechos con pbasic donde hagan mas o menos lo que te explique anteriormente y eso de usar tmr0 e interrupcuiones mas a fondo poruqe lo que yo tengo es muy basico y no le encuentro el sentido.
Desde ya muchas gracias.

cristiancrgs2008

Reputación

asistió a la solución Dom Jun 28, 2009 2:17 am
   
Bueno en realidad que de ningun compilador de basic tengo material. Mas que todo te puedo facilitar de ensamblador y lenguaje c, pero el material de ensamblador te sirve como base para entender el funcionamiento. No se como es el pbasic, pero generalmente los compiladores de alto nivel generalmente traen ejemplos muy intuitivos y un menu de ayuda para la sintaxis, expresiones y funciones de cada microcontrolador, es decir, con un material de assembler y la ayuda del IDE del pbasic puedes iniciarte en las interrupciones.

Dejame buscarte un poco de material a ver que te consigo de pbasic

Fofo almarales

Reputación



Hacer una pregunta

Boletín de Noticias

Reciba noticias de tecnología, tips de reparación y ofertas exclusivas.



Reglamento / P+F

Foros

Miembros / Expertos