Ayuda en Ensamblador para un Servomotor

#1
Hola, primero que nada un saludo a todos los del foro y tambien gracias por todo lo que e aprendido aqui, en esta ocacion abro este nuevo hilo con la intencion de ver si pueden ayudarme a controlar un Servomotor, el servo funciona asi: 1ms 0º, 1.5ms 90º y 2ms 180º. he estado tratando de enviarle una señal para que se mueva pero no logro hacerlo, es la primera vez que trabajo con un servo y no estoy muy familiarizado con esto jeje...

He leido un poco acerca del tema y pues tengo la idea de como funciona, aqui pongo una parte del codigo donde segun yo, deberia funcionar el servo a 90º pero el problema es que nose como detenerlo, es decir, quiero que envie la señal durante un segundo y despues pare, o por .5 segundos, etc... segun sea la aplicacion del servo, tengo algunos conocimientos en ensamblador pero nose como hacer el equivalente al ciclo "for" para asi enviar la señal n numero de veces al servo, el pic que uso es el 16F84a y el servo es un Servomotor Tower Pro SG-90, aqui el codigo:

Principal
btfsc inter
call Semaforo
goto Principal

Semaforo

movlw b'00000010'
movwf PORTB
call Retardo_.5ms
call Retardo_1ms

movlw b'00000000'
movwf PORTB
call Retardo_18ms
call Retardo_.5ms

return
Espero me puedan ayudar, o si tienen alguna otra forma de hacer que funcione, estoy abierto a nuevas ideas jeje... solo no cambiar de lenguaje o de servo, ya que debo hacerlo con esto jeje, de antemano gracias :)
 
Última edición:
#2
consulta: tu dices al principio que no te funciona, entonces para que quieres detenerlo si no te funciona ahun?
veo tu codigo y creo que estas tratando de simular una PWM, si es eso creo que necesitas solo un retardo por grado de movimiento, es decir, un retardo para el 1 o otro para el 0, ademas revisa la coneccion con el motor, debes utilizar un amplificador adecuado como el TIP122.
suerte en tu proyecto
 
#3
esque ap principio le meti un .hex para un servo futaba, y solo hacia algunos ruiditos yse movia pero de forma irregular, entonces comence a fabricar mi propio condigo con señales adecuadas a mi tipo de servo :) pero como nose como detenerlo pues no quiero probarlo con el servo ya que soy algo novato aun y nose si le ara daño enviarle señales en un ciclo infinito como lo esta ahorita jeje...

y si, en efecto estoy tratando de hacer mi equivalente a PWM jeje... por ahora solo simulo en proteus pero debido a que nose detener el ciclo pues se queda trabado el servo(segun la simulacion), gracias por la respuesta y espero aya quedado mas claro mi problema por si alguien pudiera ayudarme :) salu2
 
#4
estoy haciendo un programa en ensamblador para controlar dos posiciones de un servomotor
tower pro sg90 , segun es con pwm, pero habia escuchado que se podia con timer0 o retardos solo que no se como iria la estructura de cada metodo, ¿cual convendria mas?
 
Arriba