Saludos. amigos, una consulta, espero que puedan ayudarme por que ya no sé qué hacer.
Resumiendo, les digo lo siguiente: Tengo un circuito que hacer girar al servo y lo coloca a 0 grados y luego lo coloca a 180 grados. En mi tarjeta de proyectos funciona muy bien, hice dos pruebas con reloj externo de 4 Mhz y con reloj interno del Pic 16F628A (seteando la palabra de configuración) y funcionan ambos. Entonces, cuando lo quiero hacer funcionar en mi protoboard, sucede como si SOLO la primera parte se ejecutara (mueve sólo a una posición). Menciono que para que se ejecute el programa presiono un pulsador. Como dato les diré que cuando presiono el boton gira, como digo SOLO una parte del programa y cuando lo vuelvo a ejecutar, "funciona la otra parte". Les coloco el programa, que como digo en mi tarjeta de proyecto funciona bien. He colocado los puertos no usados del puerto A como salida, SIN ninguna conexión tierra o a positivo. Tampoco uso el MCLR (aunque hice la prueba activándolo y colocando a positivo, pero nada, sigue igual). Gracias por sus ayuda.
Hay algún "detalle" que me estuviera olvidando. Gracias nuevamente.
Resumiendo, les digo lo siguiente: Tengo un circuito que hacer girar al servo y lo coloca a 0 grados y luego lo coloca a 180 grados. En mi tarjeta de proyectos funciona muy bien, hice dos pruebas con reloj externo de 4 Mhz y con reloj interno del Pic 16F628A (seteando la palabra de configuración) y funcionan ambos. Entonces, cuando lo quiero hacer funcionar en mi protoboard, sucede como si SOLO la primera parte se ejecutara (mueve sólo a una posición). Menciono que para que se ejecute el programa presiono un pulsador. Como dato les diré que cuando presiono el boton gira, como digo SOLO una parte del programa y cuando lo vuelvo a ejecutar, "funciona la otra parte". Les coloco el programa, que como digo en mi tarjeta de proyecto funciona bien. He colocado los puertos no usados del puerto A como salida, SIN ninguna conexión tierra o a positivo. Tampoco uso el MCLR (aunque hice la prueba activándolo y colocando a positivo, pero nada, sigue igual). Gracias por sus ayuda.
Código:
cmcon=7 ;digitaliza el puerto A
trisa=%00000001 ;define el puerto A como entrada y salida
trisb=0 ; define el puerto B como salida
portb=0
X var byte
servo var portb.0
pulsador var porta.0
inicio:
if pulsador=0 then giro1
goto inicio
giro1:
pause 20 ;antirebote
for X=1 to 50 ;lo hace girar a un lado
high servo
pauseus 900
low servo
pauseus 19100
next
pause 500 ;para esperar el cambio de giro
for X=1 to 50 ; lo hace girar al otro lado
high servo
pauseus 1900
low servo
pauseus 18100
next
goto inicio
end
Última edición por un moderador: