Autor Tema: Proyecto Luces Pista con 16F84A  (Leído 2772 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado farroyogarcia

  • PIC10
  • *
  • Mensajes: 7
Proyecto Luces Pista con 16F84A
« en: 08 de Diciembre de 2007, 09:20:23 »


Hola colegas de la electronica, me dirigo a vosotros para pediros consejo en un proyecto actual en el que me encuentro estancado. Mi proyecto se basa en el encendido de 7 led´s conectados al Pto.B del 16F84A.


Idea: mi idea se basa en que en principio el registro "lectura" vale del decimal 0 (haciendo que todos los led´s esten apagados), y que en cada ocasion que pulse la interrupcion se incrementa en 1 el valor del registro "lectura", luego filtro el valor del resitro "lectura" mediante unas comparaciones, que dependiendo el valor que tenga realiza un tipo de encendio u otro, y quedandose realizando el encendido hasta que cambie de tipo de encendido o bien apage (si el registro "lectura" llega a 4)


En principio todos los led´s estan apagados a la espera de que se pulse la interrupcion, que dependiendo las veces que se pulse realiza un tipo de encendido u otro, de este modo:


Si se pulsa 1 sola vez realiza el encendido y apagado de todos los led´s.


Cuando se pulsa por 2ª vez realiza el encendido de izq. a dcha, como si se tratara de las luces de una pista de aviones, al menos eso es lo que pretendo,


Cuando se pulsa por 3 vez realiza el encendido igual que el anterior pero de dcha. a izq.


He creado desplazamientos a lo bruto ya que soy nuevo y aun no sé como se utiliza la rotacion de registro en el NIPLE, he creado registros con el valor en binario y le e dado un retardo entre ellos consiguiendo así un desplazamiento "a lo basto" je je

El caso es que si coloco la etiqueta fin de la interrupcion al final  de la cadena de cada decision (dentro de la interrupcion) consigo el efecto que quiero, pero solamente realiza el efecto una sola vez.


Si por ejemplo cierro el final del efecto, llevandome su flecha de salida a la comparacion de que si el registro de lectura=4 se queda enganchado el  efecto pero cuando vuelvo a pulsar la interrupcion no cambia a los demas juegos de luces.


(vuelvo a comparar para ver si el valor ha llegado a 4, entonces vuelve a 0,o por el contrario a cambiado su valor que entonces lo filtro con el resto de comparaciones, si es 1, si es 2 o si es 3)


gracias de antemano por vuestro tiempo, recibid un saludo desde Morón de la Frontera, Sevilla-España



Aqui os dejo la direccion en donde he subido el proyecto que he realizado con el proteus, así como  sus archivos, el ".asm" y el ".aex"


http://www.4shared.com/file/31523270/d7fa1b6/Proyecto_Luces_Pista.html

javascript:startDownload()
Se aprende más de los errores que de los aciertos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Proyecto Luces Pista con 16F84A
« Respuesta #1 en: 09 de Diciembre de 2007, 20:56:46 »
haber dejame ver si he entendido, lo que pretendes es usar solo un pulsador para tener tres efectos

1. encendido y apagado (pregunto: que tiempo encendido y qeu tiempo apagado??)
2. rotacion a derecha
3. rotacion a izquierda
4. apagado todo

y lo que quieres es que se mantenta asi todo el tiempo segun la funcion en la que este, verdad?

si esta en la 1 por ejemplo debe parpadear todo el tiempo hasta que apagues la energia o hasta que cambies de modo con el pulsador, es verdad?? y tu falla ha sido que no se mantiene parpadeando por ejemplo, verdad?
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Proyecto Luces Pista con 16F84A
« Respuesta #2 en: 09 de Diciembre de 2007, 22:32:57 »
creo que he encontrado el error qeu buscas, pasa que se ejecuta la interrupcion y te da lo que quieres, y lo hace una vez, sale de la interrupcion y no haces nada

creo que debes hacer en tu programa principal, fuera de la rutina de interrupcion el filtro, si esta en 1 ó 2 ó 3

y preguntar constantemente por el valor que estas guardando en lectura, ya que cualquier momento puede cambiar y debes cambiar de modo, si esta en modo 1 haces el parpadeo por ejemplo todo el tiempo, pero preguntando si no ha cambiado de valor el registro lectura, y asi para los otros

estoy haciendo un codigo, pero todavia no me funciona, en cuanto este bien, te lo paso, un saludo
.

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Proyecto Luces Pista con 16F84A
« Respuesta #3 en: 10 de Diciembre de 2007, 00:21:15 »
bueno, por fin, tenia algunos problemas con los retardos, haber miralo y dime como te va, se puede afinar los retardos, un saludo

http://www.4shared.com/file/31668899/43a2e225/juego_luces.html

espero te sirva un saludo :mrgreen:

pd con este programa tienes que hacer una modificacion para el pulsador, el pulsador va a vcc y la resistencia a tierra
.

Desconectado farroyogarcia

  • PIC10
  • *
  • Mensajes: 7
Re: Proyecto Luces Pista con 16F84A
« Respuesta #4 en: 11 de Diciembre de 2007, 16:04:34 »
gracias por tu respuesta, lo pondré en practica en cuanto llegue a casa, creo que es acertado colocar las decisiones fuera de la interrupción, ya nos vemos y te informo, gracias de nuevo por tu ayuda.
Se aprende más de los errores que de los aciertos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Proyecto Luces Pista con 16F84A
« Respuesta #5 en: 11 de Diciembre de 2007, 16:10:21 »
No es nada hombre, que ese tipo de personas que les gusta aprender y hacen lo que tu hiciste avanzar y aprender, intentar para corregir y aprender de ello, son las que hacen posible este foro :mrgreen:
.

Desconectado farroyogarcia

  • PIC10
  • *
  • Mensajes: 7
Re: Proyecto Luces Pista con 16F84A
« Respuesta #6 en: 16 de Diciembre de 2007, 09:36:00 »
En efecto amigo, tal y como me aconsejaste he sacado las comparaciones de la subrutina y las he colocado en el programa principal y de este modo consigo que el efecto permanezca hasta otra eleccion. En la subrutina simplemente he dejado el incremento de 1 unidad al registro y que este cuando llegue a 4 vuelva a 0, y ya está.


gracias por vuestro tiempo

recibid un saludo desde Morón de la frontera, Sevilla-España
Se aprende más de los errores que de los aciertos

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Proyecto Luces Pista con 16F84A
« Respuesta #7 en: 16 de Diciembre de 2007, 16:09:14 »
 :mrgreen: que bien que te ha salido el programa :-)

siempre debes tener en cuenta ello, la rutina de interrupcion se ejecuta por un momento, sirve para la toma de datos o ejecución de rutinas exclusivas, para que el main (funcion principal) haga ya sea de una u otra manejra (segun los datos capturados por la rutina de interrupcion) el programa en si.

espero vayas aprendiendo mas y mas :mrgreen:

un saludo, adios
.