Bueno, resulta que debo hacer un proyecto para el colegio y necesito hacer funcionar 4 servos con un Pic, me he conseguido un 16F628A y un cristal de 20 Mhz, he leido el algoritmo de redpic sobre control de 8 servos usando el timer 1 y pretendo adaptar el codigo a Pic Basic Pro (que es el unico que me se) y utilizarlo en mi tarea. Anteriormente he hecho programas con luces y cosas asi y solo utilizando el timer 0 del pic. Pero por mucho que intento no logro dominar el timer 1 y se me acaba el tiempo para presentar mi proyecto. He hecho un programa simple para ver el funcionamiento del timer pero no me resulta, este es el programa:
symbol led1 = PORTB.4
symbol led2 = PORTB.5
x var byte
TRISB=%00000000
TRISA = %11110000
PORTB = %00000000
PORTA = %00000000
CMCON = 7
T1CON=%00000011
INTCON=%11010010
PIR1.0 = 0
PIE1=%00000001
on interrupt goto ISR
Main:
if pir1.0 = 1 then goto ISR
if x = 100 then
if led1 = 0 then
high led1
else
low led1
endif
x = 0
endif
goto main
disable
ISR:
x = x +1
PIR1.0 = 0
resume
enable
end
Lo que quiero conseguir es que el led se encienda cada 1 seg y fraccion, pues tengo entendido que con el timer 1 y un cristal de 20 Mhz y prescaler 1:1 el timer se desborda cada 13,1072 ms, ¿correcto?. Bueno solo quiero probar con esto que el timer funciona adecuadamente y luego aprender a precargar el timer. Por favor si alguien puede correguir este programa y decirme como debo precargar el timer, si dandole un valor a TMR1H o a TMR1L o Ambos para asi luego poder hacer el programa que necesito . En fin, se que debe ser una tonteria pero no encuentro la solucion. Gracias de antemano.
Ps: por si acaso estoy simulando en proteus 7.6 con PBP 2.50