TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: yuhe en 05 de Octubre de 2007, 08:02:58
-
Hola amigos , me dirijo a usteds porque me ha surgido un problema
he realizado un programita para controlar un servo con una 16f628 pero no me va y por mucho que le doy vueltas no se el porque
lo compilo y no me da ningun fallo , este mismo lo compilo para la 16f84 y me va lindo .
aqui os pongo el programita.
@ DEVICE INTRC_OSC
@ device MCLR_OFF
trisb.1=0
trisb.2=0
trisb.0=1
preservo:
if portb.1 = 1 then servo
IF PORTB.2 = 1 THEN SERVO2
high portb.0
pauseus 1495'servo a 0º
low portb.0
pause 50
goto preservo
servo:
high portb.0
pauseus 1995 'servo a +90º
low portb.0
pause 700
high portb.0
pauseus 995 'servo a -90º
low portb.0
pause 700
if portb.1 = 0 then preservo
if portb.2 = 1 then servo2
pause 50
goto servo
servo2:
if portb.2 = 0 then preservo
high portb.0
pauseus 1495 ' servo a 0º
low portb.0
pause 1000
high portb.0
pauseus 1995 'servo a +90º
low portb.0
pause 1000
high portb.0
pauseus 1495 ' servo a 0º
low portb.0
pause 1000
high portb.0
pauseus 995 'servo a -90º
low portb.0
pause 1000
goto servo2
os recuerdo que es para la 16f628 garcias amigos.
-
Has intentado con PWM o PULSOUT, creo que es PBP por la sintaxis. y aunque no uses el PORTA podrias ponerlo como digital.
Ahora imagino que cuando lo quiere mover dejas apretado el boton ya sea RB1 o RB2 verdad? Porque si lo oprimes solo una vez manda a la rutina pero como se desactiva inmediatamente te regresa al inicio. Y otra tambien para descartar pon en los IF's donde mandas a las rutinas de Servo1 y2
IF portb.X=1 then
gosub Servox
endif
Y en las rutinas en lugar de goto pon un Return. Para saber si lo manda.
-
Hola:
Bueno, si dices que te funciona bien con el 16F84, entonces estarás usando un cristal externo, de pronto esto:
@ DEVICE INTRC_OSC
@ device MCLR_OFF
Está dando problemas con e oscilador interno dell 628, prueba a eliminar esas líneas y usa un cristal externo.
-
Muchas gracias amigos os hise caso y resuelto gracias de nuevo amigos :-/
-
Hola:
Como fué que lo solucionaste?
-
Pues fue poner el reset desactivado el oscilador interno activado y poner todos los puertos como digitales y mano de santo :mrgreen: :-/ :-)
-
Hola:
Me alegro, felicidades, y que bien que lo resolviste