ADC Library
ADC (Analog to Digital Converter) module is available with a number of PIC MCU modules. ADC is an electronic circuit that converts continuous signals to discrete digital numbers. ADC Library provides you a comfortable work with the module.
Library Routines
ADC_Init
Prototype |
void ADC_Init(); |
---|---|
Returns |
Nothing. |
Description |
This routine initializes PIC’s internal ADC module to work with RC clock. Clock determines the time period necessary for performing AD conversion (min 12TAD). |
Requires |
|
Example |
ADC_Init(); // Initialize ADC module with default settings |
ADC_Get_Sample
Prototype |
unsigned ADC_Get_Sample(unsigned short channel); |
---|---|
Returns |
10 or 12-bit unsigned value read from the specified channel (MCU dependent). |
Description |
The function aquires analog value from the specified channel. Parameter
Note :
This function doesn't work with the external voltage reference source, only with the internal voltage reference.
|
Requires |
|
Example |
unsigned adc_value; ... adc_value = ADC_Get_Sample(2); // read analog value from ADC module channel 2 |
ADC_Read
Prototype |
unsigned ADC_Read(unsigned short channel); |
---|---|
Returns |
10 or 12-bit unsigned value read from the specified channel (MCU dependent). |
Description |
Initializes PIC’s internal ADC module to work with RC clock. Clock determines the time period necessary for performing AD conversion (min 12TAD). Parameter
Note :
This function doesn't work with the external voltage reference source, only with the internal voltage reference.
|
Requires |
|
Example |
unsigned tmp; ... tmp = ADC_Read(2); // Read analog value from channel 2 |
Library Example
This example code reads analog value from channel 2 and displays it on PORTB and PORTC.
unsigned int temp_res; void main() { ANSEL = 0x04; // Configure AN2 pin as analog ANSELH = 0; // Configure other AN pins as digital I/O C1ON_bit = 0; // Disable comparators C2ON_bit = 0; TRISA = 0xFF; // PORTA is input TRISC = 0; // PORTC is output TRISB = 0; // PORTB is output do { temp_res = ADC_Read(2); // Get 10-bit results of AD conversion PORTB = temp_res; // Send lower 8 bits to PORTB PORTC = temp_res >> 8; // Send 2 most significant bits to RC1, RC0 } while(1); }
HW Connection
ADC HW connection
What do you think about this topic ? Send us feedback!