Hola a todos, he vuelto despues de unos meses de ausencia (el trabajo me esta matando), y decidi retomar lo de los pic bajo Pic Simulator IDE, en este caso estoy en un proyecto de funcionamiento muy sencillo, para lo que quiero utilizar un 12F629, la idea consiste en encender un led de manera gradual (una especie de PWM improvisado) y apagarlo de la misma manera, lo hice y el efecto funciona de maravillas, el problema esta cuando quiero hacer que funcione mediante un pulsador, no doy en la tecla con las interrupciones
En resumen: pulso y quiero que encienda gradualmente, pulso de nuevo y quiero que apague tambien gradualmente, vuelvo a pulsar y quiero que encienda, y asi por los siglos de los siglos.
Les dejo el codigo a ver si alguno puede ser tan amable de darme una pequeña mano con las instrucciones, me canse de buscar y no encuentro nada o donde puedo estar errando (no busco solo desde hoy, llevo varios dias en esto y se me quemaron los papeles)
Seteo a GP3 como entrada y GP0 como salida
Define CLOCK_FREQUENCY = 4
TRISIO = %001000
Dim tiempon As Word
Dim tiempoff As Word
INTCON = %10001000
tiempon = 0
tiempoff = 20
encendido: '-- Encendido progresivo --
GPIO = %000001 'Enciendo el LED
WaitMs tiempon 'Espero tiempon
GPIO = %000000 'Apago el LED
WaitMs tiempoff 'Espero tiempoff
tiempon = tiempon + 1 'Incremento el valor de tiempon
tiempoff = tiempoff - 1 'Reduzco el valor de tiepoff
If tiempon = 20 Then
Goto fin
Else
Goto encendido
Endif
apagado:
GPIO = %000001
WaitMs tiempon
GPIO = %000000
WaitMs tiempoff
tiempon = tiempon - 1
tiempoff = tiempoff + 1
If tiempon = 1 Then
Goto fin
Else
Goto apagado
Endif
fin:
End
On Interrupt
If tiempon = 1 Then
Goto encendido
Else
Goto apagado
Resume