- Функции для работы с ADC
Функции для работы с ADC
Модуль ADC (Analog to Digital Converter, АЦП) есть во многих моделях PIC-контроллеров. Библиотечная функция Adc_Read (см. таблицу 3) предназначена для удобства работы с этим модулем.
Таблица 3. Описание функции Adc_Read
Прототип | unsigned Atic_Read(unsigned short channel) |
Результат | 10-битовое беззнаковое число, прочитанное из указанного канала |
Описание | Инициализирует внутренний модуль ADC микроконтроллера для работы с тактовым генератором RC. Тактовый генератор определяет длительность преобразования. Параметр channel представляет номер канала, напряжение с которого преобразуется АЦП- Соответствие номеров выводов и номеров каналов приведено в документации на используемый микроконтроллер |
Требования | PIC-микроконтроллер со встроенным модулем АЦП. Данные о наличии таких модулей в конкретных устройствах есть в документации (АЦП присутствуют в большинстве представителей семейств Р16 и Р18). Перед использованием функции необходимо сконфигурировать соответствующий вывод как вход установкой в единичное состояние соответствующего бита регистра TRISx. Также этот вывод должен быть сконфигурирован как аналоговый вход и задан источник опорного напряжения Vref. В ранних версиях mikroC функция может не поддерживаться микроконтроллерами: P18F2331, P18F2431, P18F4331 и P18F4431 |
Пример | unsigned tmp; tmp = Adc_Read(1); /* чтение аналогового значения из канала 1 */ |
Следующая программа читает аналоговое значение из второго канала АЦП и выводит двоичный код на светодиоды, подключенные к портам PORTD (младшие 8 бит) и PORTB (2 старших бита), показанным на рисунке 22.
unsigned int temp_res;
void main() {
ADC0N1 = 0x80; // Конфигурирование аналоговых входов и Vref
TRISA = 0xFF; // Все выводы PORTA -входы
TRISB = 0x3F; // Выводы RB7, RB6 -выходы
TRISD = 0; // Все выводы PORTD -выходы
do { temp_res = Adc_Read(2); // получить результат преобразования
PORTD = temp_res; // Вывести младшие 8 битов в PORTD
PORTB = temp_res >> 2; // Вывести старшие 2 бита на RB7, RB6 }
while(1);
)
Рис. 22. Схема подключения АЦП