Autor Tema: PIC12F675 como contador para encender led?  (Leído 2752 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado maxstring

  • PIC10
  • *
  • Mensajes: 2
PIC12F675 como contador para encender led?
« en: 17 de Junio de 2014, 03:15:09 »
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).

Código: [Seleccionar]
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:

Código: [Seleccionar]
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

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: PIC12F675 como contador para encender led?
« Respuesta #1 en: 19 de Junio de 2014, 04:46:04 »
Tienes un ejemplo aquí: http://www.todopic.com.ar/foros/index.php?topic=14917.msg112159#msg112159
Respuesta 160.

Los Waitms no se eliminan del programa, cuando se va a simular se activa esta línea en el código: Define SIMULATION_WAITMS_VALUE = 1  'Ignora los valores de Waitms.
« Última modificación: 19 de Junio de 2014, 04:59:31 por dogflu66 »
Saludos desde Granada, España.