sorry Henrik early i used that chip but was difficult to understand, i uploaded that by mistake, 16f877a it was difficult to me thus why i leave that and i have choosen to work with 16f628a, help me by using the circuit below
222.pdf
sorry Henrik early i used that chip but was difficult to understand, i uploaded that by mistake, 16f877a it was difficult to me thus why i leave that and i have choosen to work with 16f628a, help me by using the circuit below
222.pdf
Hi,
That would have been good to know so that *I* didn't have to waste time looking at the wrong datasheet when trying to help...
For the 16F628A with CMCON set to 5 you have one comparator enabled, positive input on RA2, negative on RA1. This matches your schematic.
CMCON.7 should be '1' when the voltage at RA1 is less than the voltage on RA2.
In your schematic you have a voltage divider connected to RA2. There's a supply symbol "feeding" the voltage divider but it doesn't say what voltage. Have you "measured" the voltage at the RA2 pin, what is the voltage? Is it 0V by any chance?
/Henrik.
PS. Why don't you wire up the circuit on a breadboard instead of that simulator? I know it's a great tool (I wish I could justify the cost) but sometimes, especially when you're new at this, it's just easier (and a lot better) to play with real life hardware.
your right Henrik, input voltage at the RA2 is 3volts
/chitalula.
I will wire the circuit on the breadboard when the circuit do what i want. as you know that iam new on the world of programming. all what am doing now is just on the way to have boost converter with constant output current.
when the circuit with codes will be complete i will consult you to have that beadboard and other equipments. for now help me here so that i accomplish this task
Hi,
The only thing I see in the code is that there is no main loop, if COMPOUT is 1 when it gets to the WHILE statement it sets PortB.5 and then just wanders off into la-la-land. I believe a real PIC would restart once it reaches the end of program memory but I have NO idea what the simulator does. Try/Henrik.Code:TRISA=255 TRISB=0 CMCON=%00000101 compOut VAR CMCON.7 VRCON=0 pauseus 10 duty var byte Main: duty=0 while (compout=0) pwm 7,duty,1 duty=duty+1 wend portb.5=1 pause 100 Goto Main
thanx in advance Henrik. now i want to continue to output constant duty ratio when the comparator input are equal, is it possible to output that constant duty cycle which make input equal to Vref?
Hi,
Not sure I understand exactly what you mean. A comparator will only tell you if its positive input is EITHER above or below its negative input. There is no way to tell if the two inputs are "equal". What you COULD possibly do is to use both comparators and create a window comparator which will tell you if the input is below, within or above the window/thresholds.
Or use the ADC...
/Henrik.
up to now i dont need to continue to work with the comparator module because it fail to do as i want
i want to use adc but have already read the adcin command but how to use adc to compare the two inputs in the pic i stop there,
can you give me any sample code on that issue?
Bookmarks