12f683 comparator and pwm
HI,
excuse me for my poor english.
I use :
PIC : 12F683
PBP : 2.46
programmer : labtool 48UXP
I'm trying to use, on 12F683, the comparator (mode comparator without output) and PWM simultaneously.
It seem to be possible but i'm not sure.
Here's my code :
'-------------------------------------------------------------------------------
' Configuration des fusibles
'-------------------------------------------------------------------------------
@ device pic12f683, fcmen_off, ieso_off, intrc_osc, wdt_off
@ device pic12f683, pwrt_on, mclr_off, protect_off
'-------------------------------------------------------------------------------
' Configuration des ports
'-------------------------------------------------------------------------------
GPIO = %00000000 ' toutes les sorties = low
CMCON0 = 2 ' Comparateur en mode 'comparator without output'
TRISIO = %00011011 ' GP0, GP1, GP3 et GP4 en entrée GP2 et GP5 en sortie
ANSEL = %00010011 ' GP0, GP1 et GP4 en entrée analogique
WPU = %00001000 ' Pull-ups on sur l'entrée GP3
OPTION_REG.7 = 0 ' Enable internal pull-ups
' Pour mémoire :
' gpio.0 ==> entrée comparateur tension proportionelle
' à I consommée
' gpio.1 ==> entrée comparateur tension de seuil
' gpio.2 ==> sortie PWM de commande pour IRL2203N (moteur)
' gpio.3 ==> entrée interrupteur "option"
' gpio.4 ==> entrée tension de réglage vitesse
' gpio.5 ==> LED pour test 1 = LED allumée
'-------------------------------------------------------------------------------
' Définition des paramètres de ADCIN
'-------------------------------------------------------------------------------
DEFINE OSC 4
Define ADC_BITS 10 ' résolution
Define ADC_CLOCK 3 ' Source de l'horloge (3=rc)
Define ADC_SAMPLEUS 50 ' Temps d'échantillonage en uS
Define CCP1_REG GPIO ' PWM Output on gpio
Define CCP1_BIT 2 ' Bit 2
'-------------------------------------------------------------------------------
' Déclaration des variables et alias
'-------------------------------------------------------------------------------
VITESSE Var Word ' Lecture de la vitesse sur 10 bits
V_PWM var byte ' valeur pour le signal PWM
SURCHARGE var bit ' Sortie du comparateur
surcharge = CMCON0.6
INVERSE_COMP var bit ' Bit d'inversion du comparateur
inverse_comp = CMCON0.4
'-------------------------------------------------------------------------------
' Déclaration des E/S
'-------------------------------------------------------------------------------
LED var gpio.5
INTER var gpio.3
'-------------------------------------------------------------------------------
'pour test
' if inter = 1 then inverse_comp = 0 ' sortie non inversée
' if inter = 0 then inverse_comp = 1 ' sortie inversée
'-------------------------------------------------------------------------------
'-------------------------------------------------------------------------------
' Programme
'-------------------------------------------------------------------------------
Pause 100
DEBUT:
ADCIN 0, vitesse ' Lecture de la vitesse
v_pwm = vitesse / 4
HPWM 1,v_pwm,500 ' PWM entre 0-255 , 500Hz sur GP2 , fréquence de test
' if surcharge = 1 then goto blocage ' Détection moteur bloqué = surcomsomation
pause 100
Goto DEBUT
BLOCAGE:
HPWM 1,0,500 ' PWM = 0 , 500Hz sur GP2 ==> arrêt
high led
pause 300
low led
pause 300
goto blocage
End
'-------------------------------------------------------------------------------
I haven't any PWM signal on pin 5
i don't understand, i have probably make a big mistake but y don't see it!
could somebody help me?