Regístrate gratis para participar de los foros, o si ya estás registrado haz login.
| comentario del autor | Mar Abr 22, 2008 4:56 am | |
|
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. |
||
| asistió a la solución | Mie Abr 23, 2008 11:18 am | |
|
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" |
||
| comentario del autor | Mie Abr 23, 2008 1:16 pm | |
|
|
||