problem med komparator i PIC12F683
Postat: 25 juli 2008, 22:00:35
Jag har tänkt att använda den inbyggda komparatorn för att använda den som överstörm-detektering. Men jag får inte den att fungera. Jag började med att ställa in den för att jämföra yttre spänning mot den interna referesen på några volt.
Och pollar COUT i programmet. Om spänningen på ingången CIN- (GP1) överstiger den interna referensen så är tanken att COUT ska bli en etta och då ska jag stänga ner PWM-modulen som jag använder för att styra en transistor.
Jag visar nedan upp tre uttdrag ur min assembler-kod.
Villka är alla inställningar för komparatorn jag gjort, tacksam för tips på vad jag gjort fel.
(Kod i turordning);
För att förtydliga så i det sista kodavsnittet så pollar jag COUT, Jag testade att polla en digital ingång istället och då fungerade den delen av koden som det var tänkt. Det som ska hända är att den ställer pulsbredden på PWM-modulen till noll, om den detekterar att COUT =1.
Tacksam för hjälp! Under tiden funderar jag vidare och läser manualen för att försöka reda ut det själv.
Och pollar COUT i programmet. Om spänningen på ingången CIN- (GP1) överstiger den interna referensen så är tanken att COUT ska bli en etta och då ska jag stänga ner PWM-modulen som jag använder för att styra en transistor.
Jag visar nedan upp tre uttdrag ur min assembler-kod.
Villka är alla inställningar för komparatorn jag gjort, tacksam för tips på vad jag gjort fel.
(Kod i turordning);
Kod: Markera allt
bsf STATUS,RP0 ; Access to bank 1
movlw b'00110110' ; GP1 = CS-ingång.
;------- Comparator module settings
bsf STATUS,RP0 ; Access to bank 1 ;------
movlw b'10100111' ; Vref= ON,Low range, CV_ref = 0111
movwf VRCON
bcf STATUS,RP0 ; Access to bank 0
movlw b'00010100' ; Comparator Output inverted, COUT set = 0
movwf CMCON0
movlw b'00000000'
movwf CMCON1
;-------
hard_tuning_loop
btfss CMCON0,7 ; Fault current?
(bit 7 = COUT)
goto no_fault ; NO
clrf PWM_HI_B
clrf PWM_LO_B
call set_pwm
goto hard_tuning_loop
no_fault
Tacksam för hjälp! Under tiden funderar jag vidare och läser manualen för att försöka reda ut det själv.
