Библиотека LUFA (раннее название MyUSB) версия 101122
Драйвер АЦП микроконтроллеров серий U4, U6 и U7

Functions

static void ADC_SetupChannel (const uint8_t ChannelIndex)
static void ADC_DisableChannel (const uint8_t ChannelIndex)
static void ADC_StartReading (const uint16_t MUXMask)
static bool ADC_IsReadingComplete (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static uint16_t ADC_GetResult (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE
static uint16_t ADC_GetChannelReading (const uint16_t MUXMask) ATTR_WARN_UNUSED_RESULT
static void ADC_Init (uint8_t Mode) ATTR_ALWAYS_INLINE
static void ADC_ShutDown (void) ATTR_ALWAYS_INLINE
static bool ADC_GetStatus (void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE

Маски конфигурирования опорного напряжения ADC

#define ADC_REFERENCE_AREF   0
#define ADC_REFERENCE_AVCC   (1 << REFS0)
#define ADC_REFERENCE_INT2560MV   ((1 << REFS1) | (1 << REFS0))

Маски для подстройки конфигурации результата ADC

#define ADC_LEFT_ADJUSTED   (1 << ADLAR)
#define ADC_RIGHT_ADJUSTED   (0 << ADLAR)

Маски конфигурирования режима ADC

#define ADC_FREE_RUNNING   (1 << ADATE)
#define ADC_SINGLE_CONVERSION   (0 << ADATE)

Маски конфигурирования прескалера (предделителя тактов) ADC

#define ADC_PRESCALE_2   (1 << ADPS0)
#define ADC_PRESCALE_4   (1 << ADPS1)
#define ADC_PRESCALE_8   ((1 << ADPS0) | (1 << ADPS1))
#define ADC_PRESCALE_16   (1 << ADPS2)
#define ADC_PRESCALE_32   ((1 << ADPS2) | (1 << ADPS0))
#define ADC_PRESCALE_64   ((1 << ADPS2) | (1 << ADPS1))
#define ADC_PRESCALE_128   ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))

Маски мультиплексора входов ADC MUX

#define ADC_CHANNEL0   (0x00 << MUX0)
#define ADC_CHANNEL1   (0x01 << MUX0)
#define ADC_CHANNEL4   (0x04 << MUX0)
#define ADC_CHANNEL5   (0x05 << MUX0)
#define ADC_CHANNEL6   (0x06 << MUX0)
#define ADC_CHANNEL7   (0x07 << MUX0)
#define ADC_1100MV_BANDGAP   (0x1E << MUX0)
#define ADC_CHANNEL8   ((1 << 8) | (0x00 << MUX0))
#define ADC_CHANNEL9   ((1 << 8) | (0x01 << MUX0))
#define ADC_CHANNEL10   ((1 << 8) | (0x02 << MUX0))
#define ADC_CHANNEL11   ((1 << 8) | (0x03 << MUX0))
#define ADC_CHANNEL12   ((1 << 8) | (0x04 << MUX0))
#define ADC_CHANNEL13   ((1 << 8) | (0x05 << MUX0))
#define ADC_INT_TEMP_SENS   ((1 << 8) | (0x07 << MUX0))

Detailed Description

Драйвер встроенного в чип Аналого-Цифрового Преобразователя (ЦАП, ADC) для поддерживаемых U4, U6 и U7 моделей AVR, которые имеют ADC в составе встроенной периферии.

Note:
Этот файл не должен включаться (include) самостоятельно. Он автоматически подключается по необходимости диспетчером заголовков драйвера ADC, расположенном в LUFA/Drivers/Peripheral/ADC.h.

Define Documentation

#define ADC_1100MV_BANDGAP   (0x1E << MUX0)

MUX mask define for the internal 1.1V bandgap channel of the ADC. See ADC_StartReading and ADC_GetChannelReading.

#define ADC_CHANNEL0   (0x00 << MUX0)

Маска мультиплексора MUX, задающая канал ADC0. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL1   (0x01 << MUX0)

Маска мультиплексора MUX, задающая канал ADC1. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL10   ((1 << 8) | (0x02 << MUX0))

Маска мультиплексора MUX, задающая канал ADC10. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_CHANNEL11   ((1 << 8) | (0x03 << MUX0))

Маска мультиплексора MUX, задающая канал ADC11. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_CHANNEL12   ((1 << 8) | (0x04 << MUX0))

Маска мультиплексора MUX, задающая канал ADC12. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_CHANNEL13   ((1 << 8) | (0x05 << MUX0))

Маска мультиплексора MUX, задающая канал ADC13. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_CHANNEL4   (0x04 << MUX0)

Маска мультиплексора MUX, задающая канал ADC4. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL5   (0x05 << MUX0)

Маска мультиплексора MUX, задающая канал ADC5. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL6   (0x06 << MUX0)

Маска мультиплексора MUX, задающая канал ADC6. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL7   (0x07 << MUX0)

Маска мультиплексора MUX, задающая канал ADC7. См. ADC_StartReading и ADC_GetChannelReading.

#define ADC_CHANNEL8   ((1 << 8) | (0x00 << MUX0))

Маска мультиплексора MUX, задающая канал ADC8. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_CHANNEL9   ((1 << 8) | (0x01 << MUX0))

Маска мультиплексора MUX, задающая канал ADC9. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_FREE_RUNNING   (1 << ADATE)

Устанавливает режим ADC в свободный запуск (free running), при этом преобразования происходят последовательно, как может работать ADC на указанной входной частоте тактов.

#define ADC_INT_TEMP_SENS   ((1 << 8) | (0x07 << MUX0))

Маска мультиплексора MUX, задающая канал внутреннего температурного датчика ADC. См. ADC_StartReading и ADC_GetChannelReading.

Note:
Не доступно на всех моделях AVR.
#define ADC_LEFT_ADJUSTED   (1 << ADLAR)

Левое выравнивание 10-битного результата ADC, при этом старшие 8 бит результата макроса ADC_GetResult() содержат 8 старших значащих бит преобразования.

#define ADC_PRESCALE_128   ((1 << ADPS2) | (1 << ADPS1) | (1 << ADPS0))

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 128.

#define ADC_PRESCALE_16   (1 << ADPS2)

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 16.

#define ADC_PRESCALE_2   (1 << ADPS0)

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 2.

#define ADC_PRESCALE_32   ((1 << ADPS2) | (1 << ADPS0))

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 32.

#define ADC_PRESCALE_4   (1 << ADPS1)

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 4.

#define ADC_PRESCALE_64   ((1 << ADPS2) | (1 << ADPS1))

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 64.

#define ADC_PRESCALE_8   ((1 << ADPS0) | (1 << ADPS1))

Устанавливает входные такты от системной тактовой частоты ядра AVR через предделитель на 8.

#define ADC_REFERENCE_AREF   0

Маска для использования напряжения на ножке AREF в качестве опорного напряжения ADC.

#define ADC_REFERENCE_AVCC   (1 << REFS0)

Маска для использования напряжения на ножке AVCC в качестве опорного напряжения ADC.

#define ADC_REFERENCE_INT2560MV   ((1 << REFS1) | (1 << REFS0))

Маска для использования внутреннего напряжения 2.56 вольт в качестве опорного напряжения ADC.

#define ADC_RIGHT_ADJUSTED   (0 << ADLAR)

Правое выравнивание 10-битного результата ADC, при этом младшие 8 бит результата макроса ADC_GetResult() содержат 8 младших значащих бит преобразования.

#define ADC_SINGLE_CONVERSION   (0 << ADATE)

Устанавливает режим ADC на одиночное преобразование, при этом происходят только одно преобразование, после чего ADC возвращается в режим ожидания.


Function Documentation

static void ADC_DisableChannel ( const uint8_t  ChannelIndex) [inline, static]

Отмена конфигурирования указанного канала ADC, разрешение режима цифрового I/O вместо аналогового. Эта функция устанавливает связанную ножку порта как вход и снова разрешает цифровую часть I/O.

Note:
Эта фунция устанавливает связанную ножку порта как вход и запрещает цифровую часть I/O для уменьшения энергопотребления.

Номер канала должен быть указан как целое число, НЕ как маска ADC_CHANNELx.
Parameters:
[in]ChannelIndexномер канала ADC, настроенного на измерения
static uint16_t ADC_GetChannelReading ( const uint16_t  MUXMask) [inline, static]

Выполняет полное одиночное чтение от канала, включая циклы опроса для ожидания завершения преобразования, и возвращает значение преобразования.

Note:
Для режима свободного запуска (free running mode) автоматически преобразования должны быть инициализированы одиночным вызовом ADC_StartReading() для выбора канала и начала автоматически запускаемых преобразований, и для уменьшения нагрузки результаты читаются напрямую вместо ADC_GetResult().
Parameters:
[in]MUXMaskмаска, состоящая из маски канала ADC, маски опорного напряжения и маски выравнивания.
static uint16_t ADC_GetResult ( void  ) [inline, static]

Запрашивает результат конверсии для последнего завершенного преобразования ADC и очищает флаг завершения чтения.

Returns:
результат последнего преобразования ADC в виде беззнакового целого значения.
static bool ADC_GetStatus ( void  ) [inline, static]

Показывает, разрешен ли в настоящий момент АЦП.

Returns:
двоичное true, если подсистема АЦП в настоящий момент разрешена, иначе false.
static void ADC_Init ( uint8_t  Mode) [inline, static]

Инициализирует АЦП для готовности к преобразованиям. Эта процедура должна быть вызвана перед любыми операциями с АЦП. Параметр "mode" должен быть маской, состоящей из маски режима преобразования (свободного запуска free running или одиночное преобразование) и маски прескалера.

Parameters:
[in]Modeмаска прескалера ADC и маска установки режима запуска.
static bool ADC_IsReadingComplete ( void  ) [inline, static]

Показывает - завершено ли текущее преобразование АЦП, или оно еще производится.

Returns:
двоичное false, если конверсия еще в процессе, или true, если конверсия завершена и результат готов к чтению через ADC_GetResult().
static void ADC_SetupChannel ( const uint8_t  ChannelIndex) [inline, static]

Конфигурирует указанный канал АЦП для готовности к преобразованиям. Эта фунция устанавливает связанную ножку порта как вход и запрещает цифровую часть I/O для уменьшения энергопотребления.

Note:
Эта фунция устанавливает связанную ножку порта как вход и запрещает цифровую часть I/O для уменьшения энергопотребления.

Номер канала должен быть указан как целое число, НЕ как маска ADC_CHANNELx.
Parameters:
[in]ChannelIndexномер канала ADC, настроенного на измерения
static void ADC_ShutDown ( void  ) [inline, static]

Отключает АЦП. Если процедура была вызвана, то все дальнейшие операции с АЦП потребуют нового вызова ADC_Init() перед тем, как АЦП снова может быть использован.

static void ADC_StartReading ( const uint16_t  MUXMask) [inline, static]

Запуск чтения указанного канала, но без ожидания завершения преобразования. После выполнения состояние преобразования может быть определено через макрос ADC_IsReadingComplete() и результат может быть прочитан через макрос ADC_GetResult().

Если ADC был проинициализирован в режиме свободного запуска (free running mode), одиночный вызов этой функции запустит постоянно повторяющиеся преобразования. Если ADC был проинициализирован в режиме одиночного преобразования (или изменен канал), функция должна вызываться каждый раз для каждого нового преобразования.

Parameters:
[in]MUXMaskмаска канала ADC, маска опорного напряжения и маска выравнивания
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines