Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
ru:software:homelab:library:adc [2013/08/14 23:57] eduardtlmkru:software:homelab:library:adc [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Аналого-цифровой преобразователь ====== 
  
-Библиотека аналого-цифрового преобразователя (АЦП) создана для облегчения использования модуля АЦП AVR. Функции преобразования библиотеки блокирующие, т.е. при их вызове процессор ждёт окончания преобразования. Время преобразования зависит от делителя такта АЦП. 
- 
-===== Типы данных ===== 
- 
-  * **//adc_reference//** \\ Выбор типа напряжения сравнения АЦП. Варианты значений и обозначения: 
-    * //ADC_REF_AREF// - Напряжение сравнения получается из вывода AREF. 
-    * //ADC_REF_AVCC// - Напряжение сравнения получается из вывода AVCC. 
-    * //ADC_REF_2V56// - Напряжение сравнения внутреннее 2,56 V. 
- 
-  * **//adc_prescale//** \\ Выбор типа делителя такта аналого-цифрового преобразователя. Варианты значений: 
-    * //ADC_PRESCALE_2// - Коэффициент деления 2. 
-    * //ADC_PRESCALE_4// - Коэффициент деления 4. 
-    * //ADC_PRESCALE_8// - Коэффициент деления 8. 
-    * //ADC_PRESCALE_16// - Коэффициент деления 16. 
-    * //ADC_PRESCALE_32// - Коэффициент деления 32. 
-    * //ADC_PRESCALE_64// - Коэффициент деления 64. 
-    * //ADC_PRESCALE_128// - Коэффициент деления 128. 
- 
-===== Функции ===== 
- 
-  * **//void adc_init(adc_reference reference, adc_prescale prescale)//** \\ Подготовка АЦП к работе. Параметры: 
-    * //reference// - Выбор напряжения сравнения. 
-    * //prescale// - Выбор делителя такта. Чем больше коэффициент деления, тем больше времени занимает преобразование, но тем больше он помехоустойчив. 
- 
-  * **//unsigned short adc_get_value(unsigned char channel)//** \\ Преобразование значения желаемого входящего канала АЦП. Функция блокирующая. Параметры: 
-    * //channel// - Номер канала АЦП (от 0 до 7). 
-    * Возвращает 10-битное значение. 
- 
-  * **//unsigned short adc_get_average_value(unsigned char channel, unsigned char num_samples)//** \\ Многоразовое преобразование значения желаемого входного канала АЦП и получение среднего значения. Функция блокирующая. Параметры: 
-    * //channel// - Номер канала АЦП (от 0 до 7). 
-    * //num_samples// - Число усреднений. Разрешённое число от 1 до 64. 
-    * Возвращает 10-битное усреднённое значение. 
- 
-~~PB~~ 
- 
-===== Пример ===== 
- 
-В примере АЦП настраивается в рабочее положение и считывается напряжение с двух входных каналов. Значение преобразования напряжения канала 0 считывается в переменную //x// и значение канала 1 считывается результатом десятикратного округления в переменную //y//. 
- 
-<code c> 
-#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); 
-} 
-</code> 
ru/software/homelab/library/adc.1376513830.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0