programar 16f84a

hola a todos
a ver si me podeis hechar una manilla ,intento encender 2 leds a la misma vez,pero lo que quiero es que uno este 20 segundos activo,eso me sale,pero que el otro cuando vaya por 15 segundos me empieze a parpadear los restantes 5 segundos para que lugo me apaguen los 2,yo estoy intentando hacerlo anidando subrutinas ,pero no lo veo claro , aver si me aclarais un poco .Gracias.
 
Hola:
Trabajando con Pic, yo haría subrutinas de retraso de 1 y 5 segundos:

retraso1
retraso5

y macros de prender y apagar leds. supongamos que se conectan al PORTA
prenden con el bit en 1:

prender_led macro LED
banksel PORTA ; se asegura del banco por las dodas
bsf PORTA, LED ; pone pata en 1
endm

apagar_led macro LED
banksel PORTA ; se asegura del banco por las dodas
bcf PORTA, LED ; pone pata en 0
endm

Si los leds están en los bits 0 y 1, la secuencia sería:

prender_led 0 ; El número indica el bit del puerto
prender_led 1
call retraso5
call retraso5
call retraso5
; Hasta acá pasaron 15 seg
apagar_led 0 ; Comienza el parpadeo
call retraso1 ; espera 1 seg apagado
prender_led 0
call retraso1 ; espera 1 seg prendido
apagar_led 0
call retraso1 ; espera 1 seg apagado
prender_led 0
call retraso1 ; espera 1 seg prendido
apagar_led 0
call retraso1 ; espera 1 seg apagado
apagar_led 1 ; apaga el otro led y quedan los dos apagados

Si necesitás ayuda con las rutinas decime.

Éxitos!
 
Atrás
Arriba