Внешние прерывания ATtiny13

Микроконтроллеры / Для начинающих / Архитектура /

Микроконтроллеры для начинающих Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее...

Внешние прерывания запускаются выводом INT0 или любым из выводов PCINT[5:0]. Обратите внимание на то, что если прерывания включены, то они будут срабатывать, даже если контакты INT0 или PCINT[5:0] настроены как выходы. Эта функция обеспечивает способ генерации программного прерывания. При замене вывода прерываний PCI прерывание сработает, если на каком-либо из выводов PCINT[5:0] изменится сигнал (если для этого вывода включена обработка прерываний).

Регистр PCMSK управляет тем, какие выводы микроконтроллера могут использоваться для внешних прерываний. Прерывания по смене состояния входа на PCINT[5:0] обнаруживаются асинхронно. Это означает, что эти прерывания также могут использоваться для вывода микроконтроллера из спящих режимов, отличных от режима ожидания.

Прерывания INT0 могут быть вызваны падающим или повышающимся фронтом или низким уровнем. Это настраивается, как указано в спецификации для регистра управления микроконтроллером – MCUCR. Когда прерывание INT0 включено и настроено как срабатывающее по уровню, прерывание будет срабатывать до тех пор, пока на выводе удерживается низкий уровень. Обратите внимание, что распознавание прерываний с понижающимся или повышающимся фронтом на INT0 требует наличия синхронизации ввода-вывода, описанной в разделе Тактовый сигнал и его распределение.

Прерывание по низкому уровню

Прерывание по низкому уровню на выводе INT0 обнаруживается асинхронно. Это означает, что это прерывание может быть использовано также для вывода микроконтроллера из спящих режимов, отличных от режима ожидания. Тактовый генератор ввода-вывода останавливается во всех спящих режимах, кроме режима ожидания.

Обратите внимание, что если прерывание, вызванное сменой уровня на выводе, используется для пробуждения после отключения питания, требуемый уровень должен удерживаться достаточно долго, чтобы микроконтроллер завершил выход из спящего режима, чтобы вызвать прерывание по уровню. Если уровень на выводе, по которому срабатывает внешнее прерывание, исчезнет до завершения запуска, микроконтроллер все равно проснется, но прерывание не будет сгенерировано. Время запуска определяется фуз-битами SUT и CKSEL, как описано в разделе Тактовый генератор.

Если низкий уровень на выводе прерывания будет снят до того, как устройство проснется, то выполнение программы не будет перенаправлено на процедуру обработки прерываний, а продолжится с инструкции, следующей за командой SLEEP.

Временные диаграммы прерывания при смене состояния вывода

Пример синхронизации прерывания при смене сигнала на выводе показан на рис 9.1.

Внешние прерывания ATtiny13


Вступить в группу "Основы программирования"

Подписаться на RUTUBE-канал

Подписаться на Дзен-канал

Подписаться на рассылки по программированию

Микроконтроллеры для ЧАЙНИКОВ Микроконтроллеры для ЧАЙНИКОВ

Бесплатная рассылка о микроконтроллерах. Рассылка содержит как бесплатную информацию для начинающих, так и ссылки на платные продукты (книги, видеокурсы и др.) для тех, кто захочет вникнуть в тему более глубоко. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su