CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

Comparator is not working

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
SSURESHREDDY



Joined: 10 Aug 2013
Posts: 13
Location: bangalore

View user's profile Send private message

Comparator is not working
PostPosted: Mon Aug 12, 2013 11:14 pm     Reply with quote

Hi all,
I need to use one built in comparator in PIC16F1824. Before I never used internal comparator. I read the data sheet and header file clearly, can anybody explain how can I set the comparator ?
Ttelmah



Joined: 11 Mar 2010
Posts: 19475

View user's profile Send private message

PostPosted: Tue Aug 13, 2013 12:30 am     Reply with quote

Start with ex_comp.c
Your comparator is a 'double' version of the one in the 675, with more programmable inputs etc.. This though shows the 'starting point'.
Then look at some of the Microchip application notes. 41215c, has a lot of 'tips and tricks' for the comparator, which in themselves show the sort of things that can be done.
Then see if you can program a short program to have the comparator switch at a particular voltage.
If it works, smile, and give yourself a reward, if it doesn't, come back with the program, and say what it is doing, and we can try to guide you.

The big question is what you actually want to 'do' with the comparator.
Just like most of the peripherals on the PIC, though the core is simple (a amplifier that will drive it's output high or low, when one input has a higher voltage than the other), there are thousands of possible setups. You can synchronise the output with a particular clock. You can have it go high or low. You can select four different sources for each input. You can even link it's output to the PWM. You need to aim at something specific to start....

Best Wishes
koyobearing



Joined: 13 Aug 2013
Posts: 1

View user's profile Send private message

it very useful
PostPosted: Tue Aug 13, 2013 2:57 am     Reply with quote

Thank you for sharing with us his views, I find it very useful, thank you.If necessary, you can contact me.This is my website:spherical roller bearing
SSURESHREDDY



Joined: 10 Aug 2013
Posts: 13
Location: bangalore

View user's profile Send private message

PostPosted: Tue Aug 13, 2013 5:12 am     Reply with quote

Thank you for all, actually my idea is to comparator output has to link with TIMER1, when ever output comes high timer1 will enable otherwise timer1 disable only. That Corresponding bit selections are given below,
I am confusing to set these all the bit in CCS C language. Can any body explain me how can we set.

// Configure Comparator 1. Used for the DATA input. DATA input comp'd to FVR.
C1NCH1 = 1;
C1NCH0 = 0; // Negative input is C12IN2- (pin 8).
C1PCH1 = 1;
C1PCH0 = 0; // Positive input is FVR.
C1POL = 1; // Polarity inverted (output high when C12IN2- > FVR).
#ifdef DEBUG
C1PCH1 = 0;
C1PCH0 = 0; // Positive input is C1IN+ (RA0).
C1POL = 1; // Polarity inverted, output high when C12IN2 > C1IN+ (RC2 > RA0)
#endif
C1SYNC = 1; // Output not sync'd to T1CLK.
C1OE = 0; // Output not available on C1OUT pin.
C1SP = 1; // Normal speed/power mode.
C1HYS = 1; // Hysterisis enabled (45mV typical).
C1ON = 1; // Comparator 1 on.


// Configure Timer1
TMR1 = MS_8; // Pre-load Timer1 to overflow after a count of 8000 (8ms).
TMR1CS1 = 0;
TMR1CS0 = 1; // Timer1 clock is system clock Fosc (4 MHz).
T1CKPS1 = 1;
T1CKPS0 = 0; // Timer1 clock prescaler is 1:4 (giving a clock rate of 1MHz).
T1GSS1 = 1;
T1GSS0 = 0; // Timer1 gate source is Comparator 1 Output SYNCC1OUT.
T1GPOL = 1; // Timer1 gate is active high (Timer1 counts when gate is high).
T1GSPM = 1; // Gate Single Pulse Mode.
TMR1GE = 1; // Counting controlled by gate function.
T1GGO = 1; // Timer1 Gate Go.


// Configure Fixed Voltage Reference (FVR). FVR is an input to Comparator 1.
CDAFVR1 = 1;
CDAFVR0 = 0; // Reference set to 2.048 volts.
FVREN = 1; // Fixed Voltage Reference enabled.

// Configure PWM's
PR2 = PR4 = PR6 = 0xFF; // Period registers.

// Configure interrupts
PEIE = 1; // Peripheral interrupts enabled.
TMR1IF = 0; // Clear Timer1 interrupt flag.
TMR1IE = 1; // Timer1 interrupts enabled.
TMR1GIF = 0; // Clear Timer1 gate interrupt flag.
TMR1GIE = 1; // Enable Timer1 gate interrupts.
TMR1ON = 1; // Timer1 on (only when gated by Comp1 output).

nBOR = 1;
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group