Buscador
YoReparo.com La Web 
www.YoReparo.com

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

Programar por organigrmas en Picaxe.

comentario del autor Mar Abr 22, 2008 4:56 am
   
Hola a todos, tengo un problema, y es que no me aclaro para programar con organigramas el picaxe, si alguien me puede explicar como se hace, se lo agradeceré, el programa que quiero pasar a organigrama es el siguiente

goto paro

inicio:

if input0 is off and input1 is off then avanza

if input0 is off and input1 is on then giraizquierda

if input0 is on and input1 is off then giraderecha

if input0 is on and input1 is on then avanza

goto inicio

retrocede:
low output4
high output5
high output6
low output7

goto inicio

paro:
low output4
low output5
low output6
low output7
wait 5

goto inicio

giraderecha:
low output4
high output5
low output6
high output7
high output2
pause 1
low output2
goto avanza

giraizquierda:
high output4
low output5
high output6
low output7
high output1
pause 1
low output1
goto avanza

avanza:
high output4
low output5
low output6
high output7

Lo tengo que programar con un picaxe 18. Gracias.

abevi

Reputación

asistió a la solución Mie Abr 23, 2008 11:18 am
   
Hola amigo, antes de ver la manera de programar por intermedio de flow chart (diagrama de flujo), debes de re-ver la teoría de programación de estos microcontroladores en basic, ya que note que tienes errores en los comandos y rutina en gral...a continuación te detallo...

inicio:
if input0 is off and input1 is off then avanza
if input0 is off and input1 is on then giraizquierda
if input0 is on and input1 is off then giraderecha
if input0 is on and input1 is on then avanza
goto inicio
(el error aquie esta en los comandos inexistentes de "is of - is on")

retrocede:(esta subrutina no figura en el programa principal)
low output4
high output5
high output6
low output7

(este espacio ocupa memoria dentro de microcontrolador, y en versiones antiguas de los compiladores de estos micros, te tiraban errores)
goto inicio(cuando termines una subrutina, trata de no emplear goto, por que como resultado vlveras a comenzar desde la 1era linea que tienes en el programa principal, y eso te traeria el problema de que siempre estaria accionando el mismo comando momentaneamente empleado...te recomiendo que implementes el comando "return", que te dara la ventaja de que cuando termine de accionar la subrutina, volvera a la linea inferior de donde partio con la orden de entar a la rutnia donde esta en ese momento... al implementar un watch dog, amplias mas ventajas a tu proceso, tales como velocidad y accionamientos multiples)

paro:(esta subrutina no figura en el programa principal)
low output4
low output5
low output6
low output7
wait 5

goto inicio

giraderecha:
low output4
high output5
(si implementas esta funcion asi, hasta que la salida4 no cambie de estado, no pasara a la siguiente linea...para que ello no ocurra, debes implementar el comando "let pin" que configura directamente los estados de las salidas)
low output6
high output7
high output2
pause 1
low output2
goto avanza
(esta orden esta bien? ya que mencionas en la parte superior una orden especifica para ir hacia delante)

giraizquierda:
high output4
low output5
high output6
low output7
high output1
pause 1
low output1
goto avanza

avanza:
high output4
low output5
low output6
high output7

(aqui faltaria la instruccion de adonde ir cuando termine la subrutina)


esto, tendria que ser asi:

inicio:
if input0 =0 & input1=0 then paro
if input0 =0 & input1=1 then giraizquierda
if input0 =1 & input1=0 then giraderecha
if input0 =1 & input1=1 then avanza
goto label_73

paro:
let pins = 0 ' %00000000
return

giraderecha:
let pins = 132 ' %10000100
pause 2000
let pins = 128 ' %10000000
return

giraizquierda:
let pins = 82 ' %01010010
pause 2000
let pins = 80 ' %01010000
return

avanza:
let pins = 144 ' %10010000
return


Igualmente, antes de hacerte la rutina para el proceso que vos queres, me gustaría que me comentes que acciones querías hacer, asi yo te la subo, ya que la rutina que te subi, seria la manera correcta de como se escribiría, pero no la manera correcta para que funcione....digamos que la rutina que mencionamos es un tanto obsoleta.
Aca te dejo como seria la rutina que subiste vos, pero en diagrama de flujo...(si la imagen no sale completa, click con el botón derecho del mouse sobre la imagen y si tienes firefox, selecciona "ver imagen", si tienes internet explorer, selecciona "guardar imagen")


Te recomiendo que le pegues una leida a este curso que subi en el foro de microcontroladores:
ToDo SoBRe MiCRoCoNTRoLaDoReS "PICAXE"

torres.electronico
Moderador
Reputación

comentario del autor Mie Abr 23, 2008 1:16 pm
   
Lo que tengo que hacer son dos programas para este coche, uno es que cuando los interruptores que tiene delante o el que tiene detras que pare, gire y tire para atrás o avance, según le dé, delante o atrás,y lo otro que tengo que hacer es que siga una línea con los sensoneres que tiene delante del morro, y eso lo tengo que hacer con un organigrama. Eso es lo que tengo que hacer. Si me puedes ayudar, gracias, e igualmente gracias por la corrección y el link, que ahora le pegaré un vistazo. Quería poner unas fotos, pero no se como subirlas, si las quereis ver las fotos del coche os las puedo mandar.[/youtube]

abevi

Reputación

Hacer una pregunta

Reglamento / P+F

Foros

Miembros / Expertos