buenas! he estado un poco liado y no he podido responder antes, he hecho esto :' servo que se mueve de izquierda a derecha
ser var portb.0 'servo en el B0
pw var byte
pw = 150
ser = 0
derecha:
ser = 0
for pw = 80 to 220
pulsout ser,pw
pause 18
pw = pw + 1
if pw > 220 then izquierda
next pw
goto derecha
izquierda:
ser = 0
for pw = 220 to 80
pulsout ser,pw
pause 18
pw = pw - 1
if pw < 80 then derecha
next pw
goto izquierda
end
pero solo va hacia un lado y ahi se keda... bueno en fin probando mas cosas probe esto otro,
ser var portb.0 ;servo en el B0
forw var portb.1 ;motor en el B1>
back var portb.2 ;motor en el B2> este motor es controlado por un puente H
p1 var porta.0 ;pulsador en el puerto A0
p2 var porta.1 ;pulsador en el puerto A1
b1 var byte
frec var byte
b1 = 150 ; variable para poner el servo en posicion central
frec = 18
start:
low back ;pone en nivel bajo el puerto B2
pulsout ser, b1 ; pone el servo en posicion central
pwm forw,frec,30 ;el motoro se mueve hacia adelante
if p1 = 0 then izquierda ; si se pulsa p1 ir a etiqueta izquierda
if p2 = 0 then derecha ;si se pulsa p2 ir a etiqueta derecha
goto start ; repite start
izquierda:
high back ;pone marcha atras el motor
pulsout ser, b1 ;gira hacia la izquierda hasta llegar al tope
pause 18
b1 = b1 + 1
if b1 > 210 then start ; cuando llega al tope pasa a la etiqueta start
goto izquierda ; repite la etiqueta hasta que if -- then sea cierto
derecha:
high back
pulsout ser, b1
pause 18
b1 = b1 - 1
if b1 < 80 then start
goto derecha
end
vale pues funciona todo menos que vuelva a su posicion central, he intentado hacer una etiqueta llamada start y otra forward start:
pulsout ser, b1
pause 18
b1 = b1
if b1 = b1 then forward
goto start
forward:
low bck
pwm forw,frec,30
if p1 = 0 then izquierda
if p2 = 0 then derecha
goto forward
pero me sigue pasando lo mismo, cuando llega a la izquierda o a la derecha ahi se queda... vuelve a ir hacia delante pero el servo no recupera su posicion central, he provado con for x = 1 to 10 para este ultimo "start" pero nada o peor...
se que esto se supone que es lo mas sencillo del mundo... pero no hay manera...alguna sugerencia?? que estoy haciendo mal?