TODOPIC
Microcontroladores PIC => - Flowcode - => Mensaje iniciado por: ArturoMV en 03 de Abril de 2015, 16:43:48
-
Buen día.
Soy nuevo en flowcode y en programacion de PIC's.
Estoy haciendo un pequeño programa el cual tiene como funcion tener 2 o mas modos de funcionamiento de un led (ej. encendido, intermitente, etc.) pero al momento de pasar al primero modo en una macro, no logro que salga del bucle.
Quiero que salga del bucle presioando el switch y asi pase al siguiente modo.
Espero me puedan ayudar.
Saludos!
-
Lo estoy mirando desde el móvil y no se de flowcode, pero si es un bucle while, ponle como condición que este en el bucle mientras no este el pulsador o alguna bandera k se active al pulsarlo. Y al final de ese bucle cuando hagas lo k tengas k hacer chequeas el pulsador de este modo si esta pulsado sale.
Por cierto intenta k tu programa sea secuencial y no k este siempre en un bucle. Un programa no debería tener nunca delays ni bucles del modo while que dejen al micro solo en una tarea, si no tiene k hacer la tarea k haga otra cosa.
-
Muchas gracias por responder Juan.
Ya me estoy invesigando sobre las interrupciones en Flowcode, una vez comprenda el tema pondre manos a la obra.
Saludos!!
-
Las interrupciones son otra solución pero ten en cuenta, que en tu caso seria una interrupción externa por lo tanto, el pulsador debe de estar en un pin del microcontrolador que tenga la función de interrupción externa. Si esta en otro pin no podrás hacerlo por interrupciones externas.
-
No logro hacer funcionar el programa, la verdad soy nuevo en esto de los pics, no se me da mucho la programacion y basicamente lo que quiero que haga el pic 12f629 es que funcione como las linternas chinas, que presionas el boton y enciende, presionas de nuevo y cambia a estrobo. Pero lo quiero hacer para construirme una luz trasera para mi bicicleta.
-
Fijate si es esto lo que quieres, si no veo que es lo que comentas y como ayudar
-
Te dejo otro
-
Santiago, tu y tu base de datos.
¡¡¡ Vaya lujazo el disponer de ella!!
-
No Fermín, eso no lo tengo guardado, lo desarrollé editando el de él y modificando los modos. Gracias de todo modo por el comentario, debo hacer un backup de todo y compré una memoria de 1 Tera y veré si alcanza lo distribuido en las 5 PC. Un abrazo
-
Gracias por sus respuestas!!
Despues de estar pensando un poco creo que he llegado al resultado que quiero, pero se me presenta un nuevo problema, tal vez este olvidando algo, no lo se.
Logre activar con un switch(GP3) 2 modos de funcionamiento de un led (GPO) pero al querer pasar al tercer modo, la interrupcion no se activa.
Espero me puedan ayudar.
Aqui dejo el archivo del programa.
-
Sería bueno que expliques lo más claro posible lo que esperas ocurra en tu programa, no me queda entendido eso en este caso. No entiendo el desallollo por momentos.
-
Bueno, tratare de explicarme mejor.
El pic que usare es el 12F629. Este tendra un switch normalmente abierto conectado a su puerto GP3(pin 4) y un led en su puerto GP0(pin 7). Todo el circuito ya armado tiene que funcionar de la siguiente manera: Al presionar el switch el led encendera(modo 1), al presionar nuevamente el switch el led cambiara a estado intermitente(modo 2), al presionar el switch otra vez el led cambiara a estado estrobo(modo 3), al presionar de nuevo el switch el led se apagara para cuando sea presionado de nuevo el ciclo se repita otra vez. En cada estado del led debera funcionar por tiempo indefinidido y solo sebera cambiar cuando el switch sea nuevamente pulsado.
En cuanto al programa, supongo que hay muchas maneras de hacer una sola cosa, y esa manera es la que he encontrado que me a funcionado hasta cierto punto. He visto videos en los que presentan sus circuitos como PWM Led con varias secuencias de funcionamiento y todos activados desde un mismo switch.
Video (https://www.youtube.com/watch?v=1RsISxlNX-Y)
-
Creo que si modificas lo que hice antes de leer esto y en cada modo haces lo que deseas tendras una aproximación a lo expuesto. Yo trataré de dejarlo como lo expresas.
Nota: Desconosco el motivo pero no logro que funcione la simulación en Isis, casi nunca lo logro, pero en el Flow funciona bien, habrá que hacerlo en soporte físico para ssaber.
-
Acá lo que entiendo de lo que deseas
-
Muchas gracias!! :-/
Tal parece que me faltaba corregir algunas cosas, pero el programa que subiste hace exactamente lo que buscaba, muchas gracias!
Saludos.
-
Ok, me alegra que así sea. Te recomiendo que, ya que es muy simple, veas elfuncionamiento para entenderlo y busques más modos de hacer lo mismo. Vos utilizabas el pin 3 para interrumpir, yo usé la interrupción del 2 que es más eficiente para este programa, un registro booleano para habilitar el cambio, etc.. Es solo una forma de las muchas que encontrarás y aprenderás haciendo. Suerte.
-
Trate de correr el HEX en Proteus, pero no funciono, entonces trate de importarlo como .asm y me lanzo errores, aqui dajunto la imagen.
Saludos.
-
Desgraciadamente no llega mi conocimiento a ese nivel para entender que es ese error. Te la debo para otra oportunidad. Un abrazo
-
Saludos!!
Igual fue muy importante para mi tu ayuda.