TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: yukardo en 14 de Agosto de 2008, 23:03:59
-
Saludos.
Estoy realizando un circuito en el cual utilizo el comparador que trae el pic12F675, el problema es que al parecer no esta funcionando, a lo mejor tengo algun error en el programa y no lo he visto.
Aqui les dejo el programa para ver si me pueden echar una mano, gracias por su ayuda.
cout var CMCON.6
CMCON=%00000001
ANSEL=%00000011
main:
if GPIO.3=1 then
call biestable
endif
if GPIO.4=1 then
call temporizada
endif
goto main
biestable:
if CMCON.6=1 then
pause 100
else
goto main
endif
if CMCON.6=1 then
high GPIO.5
else
goto main
endif
temporizada:
if CMCON.6=1 then
pause 1000
else
goto main
endif
if CMCON.6=1 then
pause 10000
high GPIO.5
else
goto main
endif
-
Hola, no se si esto se parece a lo que pretendias, pero funciona. Esta hecho en Proton PicBasic, que me pareció el lenguaje que has usado:
Config INTRC_OSC_NOCLKOUT,WDT_OFF,MCLRE_off
Device = 12f675
XTAL = 4
symbol cout = CMCON.6
CMCON=%00000001
ANSEL=%00000011 'GP0 y GP1 entradas del comparador, GP2 salida cout
TRISIO = %00011011 'Entradas y salidas
GPIO=%00000000 'salidas a 0
DIM estado as bit
Inicio:
estado = 0 ' estado biestable a 0
main_loop:
if GPIO.3=1 then
call biestable 'Si pulso en GP3, biestable
endif
if GPIO.4=1 then
call temporizada 'Si pulso en GP4, temporiza
endif
goto main_loop
biestable:
if cout=1 then 'Biestable
if estado = 0 then
high GPIO.5
pause 100
estado = 1
else
low GPIO.5
pause 100
estado = 0
endif
else
goto main_loop
endif
temporizada:
if cout=1 then 'Temporizador
high GPIO.5
pause 10000
low GPIO.5
estado = 0
else
goto main_loop
endif
Aparte de definir las directivas de procesador y fuses, para que el programa te funcione, he definido los puertos de entrada/salida.
En tu programa has definido GP0 y GP1 como entradas de comparador y GP2 como salida del mismo, con lo cual puedes monitorizar el resultado de cout en GP02.
En tu programa, el estado de GP5 nunca volvia a 0, una vez lo ponias a 1, asi que siempre se quedaba igual y ni temporizaba ni basculaba.
Salu2