Библиотека аналого-цифрового преобразователя (АЦП) создана для облегчения использования модуля АЦП AVR. Функции преобразования библиотеки блокирующие, т.е. при их вызове процессор ждёт окончания преобразования. Время преобразования зависит от делителя такта АЦП.
В примере АЦП настраивается в рабочее положение и считывается напряжение с двух входных каналов. Значение преобразования напряжения канала 0 считывается в переменную x и значение канала 1 считывается результатом десятикратного округления в переменную y.
#include <homelab/adc.h> int main(void) { unsigned short x, y; // Настройка аналого-цифрового преобразователю // Напряжение сравнения приходит из вывода AVCC. Рабочий такт // преобразователя в 8 раз ниже такта контроллера. adc_init(ADC_REF_AVCC, ADC_PRESCALE_8); // Считывание преобразованного значения канала 0 в переменную x x = adc_get_value(0); // Считывание преобразованного и усреднённого значения // канала 1 в переменную y y = adc_get_average_value(1, 10); }