Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач цуимп филе.docx
Скачиваний:
23
Добавлен:
23.09.2019
Размер:
661.21 Кб
Скачать

Одноуровневые прерывания

Данная система прерываний реализована таким образом, что при возникновении прерывания процессор аппаратно переходит к подпрограмме обработки прерываний, расположенной по некоторому фиксированному адресу. Чтобы упростить аппаратную часть системы прерываний, этот адрес обычно располагается либо в начале, либо в конце адресного пространства программной памяти. Поскольку для обработки ВСЕХ прерываний используется только ОДНА точка входа, то такая система прерываний получила название одноуровневой. В такой системе выявление источника прерываний путем опроса состояния флажков признаков прерываний в начале программы обработки прерываний. При обнаружении установленного флажка происходит переход к соответствующему участку процедуры. Чем больше возможных источников прерываний, тем больше времени необходимо для обнаружения источника прерывания. Такой метод обнаружения источника прерывания называется программным опросом  или поллингом (polling). Его недостатком является довольно большое время, затрачиваемое на поиск источника прерывания и, как следствие, замедленная реакция системы на внешние события. Его достоинство – простота реализации системы прерываний.

Векторные прерывания

Чтобы значительно уменьшить время реакции на внешние события, используются многоуровневые или, что то же самое, векторные прерывания. В векторных прерываниях КАЖДОМУ источнику прерывания соответствует СВОЙ, вполне определенный, адрес процедуры обработки прерывания, который принято называть вектором прерывания.

Вообще, в качестве вектора прерывания могут быть использованы любые данные (адрес подпрограммы, адрес перехода, значение смещения относительно начала таблицы прерываний, специальные инструкции и т.д.), которые позволяют непосредственно перейти к процедуре обработки прерывания, не затрачивая времени на поиск источника прерывания. Какие данные используются в качестве вектора прерывания и каким именно образом они используются зависит от способа реализации системы прерываний в соответствующем процессоре. Msp430 использует векторную систему прерываний.

Таймер

Таймер А - это 16-разрядный таймер/счетчик с тремя регистрами захвата/сравнения.

Таймер А может обеспечить множество захватов/сравнений, выходов ШИМ и выдержку временных интервалов. Таймер А также имеет обширные возможности прерывания. Прерывания могут быть сгенерированы от счетчика при переполнении и от каждого из регистров захвата/сравнения.

Таймер А обладает следующими возможностями:

• Асинхронный 16-разрядный таймер/счетчик с четырьмя режимами работы;

• Выбираемый и конфигурируемый источник тактирования;

• Три конфигурируемых регистра захвата/сравнения;

• Конфигурируемые выходы с возможностью ШИМ;

• Асинхронная фиксация (защелка) входа и выхода;

• Регистр вектора прерываний для быстрого декодирования всех прерываний таймера А.

Рассмотрим подробнее таймер/счетчик.

Регистр 16-разрядного таймера/счетчика TAR, инкрементируется или декрементируется (в зависимости от режима работы) с каждым нарастающим фронтом тактового сигнала. TAR может быть программно прочитан и записан. Кроме того, таймер может генерировать прерывание при переполнении.

С 16-разрядным модулем таймера А связаны два вектора прерываний:

• Вектор прерывания TACCRO для TACCRO CCIFG

• Вектор прерывания TAIV для всех других флагов CCIFG и TAIFG

В режиме захвата любой флаг CCIFG устанавливается, когда значение таймера зафиксировано в соответствующем регистре TACCRx. В режиме сравнения устанавливается любой флаг CCIFG, если TAR досчитал до соответствующего значения TACCRx. Программное обеспечение может также устанавливать или очищать любой флаг CCIFG. Все флаги CCIFG запрашивают прерывание, когда установлены их соответствующие биты CCIE и бит GIE.

АЦП

Модуль АЦП12 обеспечивает быстрые 12-разрядные аналого-цифровые преобразования.

Модуль имеет 12-разрядное ядро SAR, схему выборки, опорный генератор и буфер преобразования и управления объемом 16 слов. Буфер преобразования и управления позволяет получать и сохранять до 16 независимых выборок АЦП без вмешательства ЦПУ.

АЦП12 обладает следующими возможностями:

  • Максимальная скорость преобразования свыше 200 ksps

  • Монотонный 12-разрядный преобразователь без кодов ошибок

  • Выборка и хранение с программируемыми периодами выборки, определяемыми программным обеспечением или таймерами

  • Преобразование инициируется программным обеспечением, таймером А или таймером В

  • Интегрированный генератор опорного напряжения (1,5В или 2,5В)

  • Программно выбираемый внутренний или внешний опорный источник

  • Восемь индивидуально конфигурируемых внешних входных каналов

  • Каналы преобразования для внутреннего температурного датчика, AVCC и внешних опорных источников

  • Независимые опорные источники, задаваемые путем выбора канала, для обоих положительных и отрицательных опорных источников

  • Выбираемый источник тактирования преобразований

  • Одноканальный, повторный одноканальный, последовательный и повторно-последовательный режимы преобразования

  • Ядро АЦП и опорное напряжение могут выключаться раздельно

  • Регистр вектора прерываний для быстрого декодирования 18 прерываний АЦП

  • 16 регистров хранения результата.

АЦП12 имеет 18 источников прерывания: ADC12IFG0-ADC12IFG15, ADC12OV, переполнение AD12MEMx, ADC12TOV, переполнение времени преобразования АЦП12. Биты ADC12IFGx устанавливаются, когда в их соответствующие регистры памяти ADC12MEMx загружается результат преобразования. Если соответствующий бит ADC12IEx и бит GIE установлены, генерируется запрос прерывания. Состояние ADC12OV появляется, когда результат преобразования записывается в любой регистр ADC12MEMx до прочтения предыдущего результата. Состояние ADC12TOV генерируется, когда до завершения текущего преобразования затребована другая выборка-преобразование.