This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| ru:software:homelab:library:adc [2013/08/14 23:55] – создано eduardtlmk | ru:software:homelab:library:adc [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Аналого-цифровой преобразователь ====== | ||
| - | |||
| - | Библиотека аналого-цифрового преобразователя (АЦП) создана для облегчения использования модуля АЦП AVR. Функции преобразования библиотеки блокирующие, | ||
| - | |||
| - | ===== Типы данных ===== | ||
| - | |||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * **// | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | ===== Функции ===== | ||
| - | |||
| - | * **//void adc_init(adc_reference reference, adc_prescale prescale)// | ||
| - | * // | ||
| - | * // | ||
| - | |||
| - | * **// | ||
| - | * //channel// - Номер канала АЦП (от 0 до 7). | ||
| - | * Возвращает 10-битное значение. | ||
| - | |||
| - | * **// | ||
| - | * //channel// - Номер канала АЦП (от 0 до 7). | ||
| - | * // | ||
| - | * Возвращает 10-битное усреднённое значение. | ||
| - | |||
| - | ~~PB~~ | ||
| - | |||
| - | ===== Пример ===== | ||
| - | |||
| - | В примере АЦП настраивается в рабочее положение и считывается напряжение с двух входных каналов. Значение преобразования напряжения канала 0 считывается в переменную //x// и значение канала 1 считывается результатом десятикратного округления в переменную //y//. | ||
| - | |||
| - | <code c> | ||
| - | #include < | ||
| - | |||
| - | int main(void) | ||
| - | { | ||
| - | unsigned short x, y; | ||
| - | |||
| - | // Настройка аналого-цифрового преобразователю | ||
| - | // Напряжение сравнения приходит из вывода AVCC. Рабочий такт | ||
| - | // преобразователя в 8 раз ниже такта контроллера. | ||
| - | adc_init(ADC_REF_AVCC, | ||
| - | |||
| - | // Считывание преобразованного значения канала 0 в переменную x | ||
| - | x = adc_get_value(0); | ||
| - | |||
| - | // Считывание преобразованного и усреднённого значения канала 1 в переменную y | ||
| - | y = adc_get_average_value(1, | ||
| - | } | ||
| - | </ | ||