- •Особенности разработки и применения мп систем
- •Прерывания в мк. Регистры, влияющие на работу контроллера по внешним прерываниям
- •Архитектура ядра avr-контроллеров. Назначение основных узлов avr-контроллеров
- •Программная модель и система команд avr- контроллеров
- •Устройство и управление портами ввода и вывода.
- •Устройство и управление аналоговым компаратором.
- •Устройство и управление аналого-цифровым преобразователем.
- •Устройство и управление таймерами-счетчиками avr- контроллеров.
- •Режимы работы таймеров-счетчиков.
- •Источники сброса avr- контроллеров. Сброс по включению питания. Управление сбросом через вход Reset
- •Общие регистры управления ядром микроконтроллера.
- •Обращение к памяти еерrом
- •Защита памяти программ и данных
Устройство и управление аналого-цифровым преобразователем.
А ЦП – это схема, которая преобразует аналоговую информацию с датчиков в цифровую. В AVR контроллерах АЦП 10-разрядное. Время преобразования одного показания от 13 до 250 микросекунд в зависимости от битности измерения, а также от тактовой частоты генератора, тактирующего контроллер. Так же АЦП поддерживает запуск по прерываниям
Регистр ADMUX — это регистр для управления каналами мультиплексора АЦП
REFS1-REFS0 — комбинация битов задает опорную частоту от внутреннего генератора. (00 – опорная частота от контакта AREF, 10- от AVCC, 11 – от внутреннего источника с внешним конденсатором на AREF)
ADLAR – позволяет выравнивать результат преобразования по левому краю при записи в него единички.
MUX2-MUX0 данные биты определяют какой из восьми аналоговых каналов (0 - 7) будет подключен к АЦП.
Регистр управления и состояния АЦП - ADCSR - (ADC Control and Status Register)
ADEN (ADC Enable) включает или выключает АЦП. Единичка – включение.
ADSC (ADC Start Conversion) режим однократного преобразования, для запуска каждого цикла преобразования необходимо устанавливать единичку.
ADFR (ADC Free Run Select) при единичке АЦП будет работать в циклическом режиме и обращаться к регистрам один за другим.
ADIF (ADC Interrupt Flag) флаг прерываний. После преобразований и обновления регистров данных устанавливается в единичку.
ADIE (ADC Interrupt Enable) при установленных в состояние 1 бите ADIE и I-бите регистра SREG активируется прерывание по завершению преобразования АЦП.
ADPS2 - ADPS0 выбирают режим работы предделителя тактовой частоты. (2,2,4,8,16,32,64,128)
Регистры данных - ADCL и ADCH
Устройство и управление таймерами-счетчиками avr- контроллеров.
Таймеры-счетчики – это устройства, предназначенные для сравнения, генерации ШИМ-сигнала и прерываний. Atmega8 их три штуки (2-8 разрядных и 1-16-п разрядный).
Регистр таймера-счетчика (TCNT0) и регистр порога сравнения (OCR0) - 8-разр. регистры. Сигналы запроса на прерывание представлены как флаги прерываний таймера в регистре TIFR. Все прерывания индивидуально маскируются с помощью регистра маски прерываний таймеров (TIMSK). Регистры TIFR и TIMSK не представлены на функциональной схеме, т.к. они совместно используются с другими таймерами микроконтроллера.
Таймер-счетчик может тактироваться через предделитель внутренне или асинхронно через внешние выводы TOSC1/2. Асинхронная работа управляется регистром асинхронного состояния (ASSR). Значение регистра порога сравнения с двойной буферизацией (OCR0) непрерывно сравнивается со значением таймера-счетчика. Результат сравнения может использоваться для генерации сигналов с ШИМ или прямоугольных импульсов переменной частоты на выводе OC0
В регистре TCNT0 происходит счёт импульсов. Регистр доступен как для чтения, так и для записи.
OCR0. Его значение постоянно сравнивается со счетным регистром TCNT0, и в случае совпадения таймер может выполнять какие-то действия
Регистр управления таймером-счетчиком 0 - TCCR0.
FOC0 (Force Output Compare) бит предназначен для принудительного изменения состояния вывода OC0.
Биты WGM01, WGM00 (Wave Generator Mode) - определяют режим работы таймера-счетчика Т0 (00 – нормальный режим, 01 - Phase Correct PWM, 10 - сброс таймера при совпадении. 11 - FastPWM)
Биты COM01, COM00 (Compare Match Output Mode) - определяют поведение вывода OC0. Если хоть один из этих битов установлен в 1, то вывод OC0 перестает функционировать как обычный вывод общего назначения и подключается к схеме сравнения таймера счетчика Т0
Биты CS02, CS01, CS00 (Clock Select) - определяют коэффициент делителя частоты.
Регистр масок прерывания по таймерам/счетчикам – TIMSK
OCIE0: (Timer/Counter0 Output Compare Interrupt Enable) - Разрешение прерывания по совпадению таймера/счетчика0. При установленном бите OCIE0 и установленном бите I регистра статуса разрешается прерывание по совпадению содержимого регистра сравнения и состояния Т-С1.
TOIE0 (Timer/Counter0 Overflow Interrupt Enable) - Разрешение прерывания по переполнению таймера/счетчика0. При установленном бите TOIE0 и установленном бите I регистра статуса разрешается прерывание по переполнению таймера/счетчика0.
Регистр флагов прерываний по таймерам/счетчикам TIFR
OCF0: Output Compare Flag 0 - Флаг 0 совпадения состояния таймера/счетчика0 и содержимого регистра OCR0
TOV0: Timer/Counter0 Overflow Flag - Флаг переполнения таймера/счетчика0.