Регистр А управления и статуса ADC – ADCSRA
Разряд | ||||||||
ADEN | ADSC | ADFR | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 | |
Чтение/запись | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Исх. значение |
Разряд 7 – ADEN: Разрешение работы ADC
Запись в данный бит лог. 1 разрешает работу ADC. Если в данный бит записать лог. 0, то ADC отключается, даже если он находился в процессе преобразования.
Разряд 6 – ADSC: Запуск преобразования ADC
В режиме одиночного преобразования установка данного бита инициирует старт каждого преобразования. В режиме автоматического перезапуска установкой этого бита инициируется только первое преобразование, а все остальные выполняются автоматически. Первое преобразование после разрешения работы ADC, инициированное битом ADSC (или если в ADSC записали 1 одновременно с разрешением работы ADC), выполняется за 25 тактов синхронизации ADC, вместо обычных 13 тактов. Это связано с необходимостью инициализации ADC при первом преобразовании.
В процессе преобразования при опросе бита ADSC возвращается лог. 1, а по завершении преобразования – лог. 0. Запись лог. 0 в данный бит возможно, но не оказывает никакого действия.
Разряд 5 – ADATE: Включение режима автоматического запуска ADC
Если в данный бит записать лог. 1, то ADC перейдет в режим автоматического перезапуска. В этом режиме ADC автоматически запускает преобразование по положительному фронту выбранного запускающего сигнала. Выбор источника запуска происходит битами ADTS регистра SFIOR.
Разряд 4 – ADIF: Флаг прерывания ADC
Данный флаг устанавливается после завершения преобразования ADC и обновления регистров выходных данных (ADCH:ADCL). Если установлены биты ADIE и I (регистр SREG), то происходит вызов обработчика прерывания по завершении преобразования. Флаг ADIF сбрасывается аппаратно при переходе на соответствующий вектор прерывания. Альтернативно флаг ADIF сбрасывается путем записи лог. 1 в него. Обратите внимание, что при выполнении команды "чтение-модификация-запись" с регистром ADCSRA ожидаемое прерывание может быть запрещено. Сказанное также действительно, если используются инструкции SBI и CBI.
Разряд 3 – ADIE: Разрешение прерывания ADC
Когда этот бит установлен в лог. 1, и установлен бит I в регистре SREG, разрешается прерывание по завершении преобразования ADC.
Разряды 2:0 – ADPS2:0: Биты управления предделителем ADC
Данные биты определяют на какое значение тактовая частота ЦПУ будет отличаться от частоты входной синхронизации ADC.
Таблица . Управление предделителем (прескалером) ADC
ADPS2 | ADPS1 | ADPS0 | Коэффициент деления |
Регистры данных ADC – ADCL и ADCH
ADLAR = 0:
Разряд | |||||||||
- | - | - | - | - | - | ADC9 | ADC8 | ADCH | |
ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADC1 | ADC0 | ADCL | |
Чтение/запись | R | R | R | R | R | R | R | R | |
R | R | R | R | R | R | R | R | ||
Исх. значение | |||||||||
ADLAR = 1:
Разряд | |||||||||
ADC9 | ADC8 | ADC7 | ADC6 | ADC5 | ADC4 | ADC3 | ADC2 | ADCH | |
ADC1 | ADC0 | - | - | - | - | - | - | ADCL | |
Чтение/запись | R | R | R | R | R | R | R | R | |
R | R | R | R | R | R | R | R | ||
Исх. значение | |||||||||
По завершении преобразования результат помещается в этих двух регистрах. При использовании дифференциального режима преобразования результат представляется в коде двоичного дополнения.
Формат представления результата (левостороннее выравнивание или правостороннее выравнивание) зависит от состояния бита ADLAR в регистре ADMUX. Левосторонний формат представления результата удобно использовать, если достаточно 8 разрядов. В этом случае 8-разрядный результат хранится в регистре ADCH и, следовательно, чтение регистра ADCL можно не выполнять. При правостороннем формате необходимо сначала считать ADCL, а затем ADCH.
ADC9:0: Результат преобразования ADC
Данные биты представляют результат преобразования.