Hola!
Estoy intentando crear mediante el reloj interno del PIC12F675 como contador, que al sobrepasar el valor 16, encienda un led en el pin 0 y se reinicie el timer.
Antes lo tenia de esta manera pero estaba mezclando funciones de reloj interno y externo, pero me piden que el reloj interno lo use como contador y segun lei, para ser contador debe ser externo, (no entiendo eso).
ansel = 0 'Bits en 0 con entrada y salida digital
adcon0 = %10000000 'Justificado derecha con A/D Funcionando
cmcon = %00000111 'Comparadores Apagados
INTCON = %10101000 'Verifica Interrupcion/ Timer 0 Interrupt/GEP Habilitada,
trisio = %00000011
OPTION.T0CS = 0
TMR0 = 0
e_go:
gpio.0 = 0
INTCON.7 = 1
no_fin:
Goto e_go
End
On Interrupt
If INTCON.INTF = 1 Then
TMR0 = TMR0 + 1
If TMR0 > 16 Then
gpio.0 = 1
WaitMs 3000
gpio.0 = 0
TMR0 = 0
Endif
INTCON.INTF = 0
Endif
Resume
Despues le pregunte a un profesor y me dijo que le sacara cosas que estaban demas que me señalo como lo del adc y el wait que para simulacion del picsimulator no me sirve.
El codigo que tengo derivado del anterior, pero incompleto por que no se bien como configurar ese timer es el siguiente:
AllDigital
INTCON = %11101001 'Verifica Interrupcion/ Timer 0 Interrupt/GEP Habilitada,
trisio = %00000100 'Habilitado el bit 3 para entrada y el resto salidas
OPTION_REG.T0CS = 0 'Supuestamente habilita el timer0 con su registro option_reg <5> (selecciona reloj interno)
e_go:
gpio.0 = 0
On Interrupt 'Habilita interrupcion
gpio.0 = 1 'Envia señal a Pin 0 y enciende el led
gpio.0 = 0 'Apaga led
TMR0 = 0 'Resetea Timer
Else 'Si no se cumple el if
gpio.0 = 0 'apaga el led (mantiene apagado)
Endif
Endif
Resume
Ese codigo no me compila, me quedo eso que tengo ahi pero no se como reestructurarlo para el proposito que necesito, sobre todo la parte de crear la interrupcion y el ciclo.
Alguien me puede echar una mano??'
Muchas gracias