TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: yuhe en 05 de Octubre de 2007, 08:02:58

Título: pic 16f628
Publicado 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.
Título: Re: pic 16f628
Publicado por: navaismo en 05 de Octubre de 2007, 11:33:10
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.
Título: Re: pic 16f628
Publicado por: LordLafebre en 05 de Octubre de 2007, 12:39:35
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.
Título: Re: pic 16f628
Publicado por: yuhe en 07 de Octubre de 2007, 12:05:26
Muchas gracias amigos os hise caso y resuelto gracias de nuevo amigos  :-/
Título: Re: pic 16f628
Publicado por: LordLafebre en 07 de Octubre de 2007, 15:06:08
Hola:

Como fué que lo solucionaste?
Título: Re: pic 16f628
Publicado por: yuhe en 08 de Octubre de 2007, 10:37:34
Pues  fue poner el reset desactivado el oscilador interno activado y poner todos los puertos como digitales y mano de santo  :mrgreen: :-/ :-)
Título: Re: pic 16f628
Publicado por: LordLafebre en 08 de Octubre de 2007, 11:00:28
Hola:

Me alegro, felicidades, y que bien que lo resolviste