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!



Note :
This function doesn't work with the external voltage reference source, only with the internal voltage reference.

