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
- ADC_Get_Sample
- ADC_Read
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 |
- MCU with built-in ADC module.
|
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 channel represents the channel from which the analog
value is to be acquired. Refer to the appropriate datasheet for channel-to-pin
mapping.
Note : This function doesn't work
with the external voltage reference source, only with the internal voltage
reference.
|
Requires |
- The MCU with built-in ADC module.
- Prior to using this routine, ADC module needs to be initialized.
- Before using the function, be sure to configure the appropriate TRISx bits
to designate pins as inputs.
|
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 channel represents the channel from which the analog
value is to be acquired. Refer to the appropriate datasheet for channel-to-pin
mapping.
Note : This function doesn't work
with the external voltage reference source, only with the internal voltage
reference.
|
Requires |
- The MCU with built-in ADC module.
- Before using the function, be sure to configure the appropriate TRISx bits
to designate pins as inputs.
|
Example |
unsigned tmp;
...
tmp = ADC_Read(2); // Read analog value from channel 2
|
Code 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
No comments:
Post a Comment