Урок №3. Пишем программный код для настройки внешнего прерывания микроконтроллера Atmega8.

preview_player
Показать описание
Пишем программный код для настройки внешнего прерывания микроконтроллера Atmega8 в среде программирования Microchip Studio.

Рекомендации по теме
Комментарии
Автор

Могу посоветовать автору различать понятия нажатие (или отпускание) кнопки и одиночный клик кнопки (нажатие, а затем отпускание) кнопки. В данном случае задавалась реакция именно на клик кнопки, поэтому программирование прерываний по нарастающему фронту (отпускание кнопки после нажатия) проходит. В варианте на ассемблере - другая ситуация. Там принципиально задание прерывания по спадающему фронту (нажатие кнопки). Автор использует стандартные микрокнопки, в которых практически нет явления дребезга контактов (по крайней мере в новых). Если взять другую кнопку (с заметным дребезгом) то написанная программа будет работать точно также, из-за особенности реализуемых программой действий. После нажатия кнопки из-за явления дребезга на входах прерываний пройдет много нарастающих фронтов и прерывание возникнет несколько раз. Однако сколько раз не включай или выключай светодиод - результат будет одним и тем же. Влиять дребезг будет в том случае, если, например, в прерывании происходит подсчет кликов кнопки - в этом случае результат будет непредсказуемым. Именно в таком случае при входе в прерывание нужна антидребезговая задержка, а при выходе из прерывания сброс соответствующего флага прерывания. Т.к. во время антидребезговой задержки флаг прерывания из-за дребезга установится повторно и прерывание возникнет еще один раз.
Кстати, при отпускании кнопки причины для дребезга нет, следовательно и дребезга нет, но он есть при нажатии, которое естественно происходит во времени до момента отпускания.

marina
Автор

Вы не слова не сказали о дребезге контактов кнопки. Без программного или аппаратного устранения дребезга, программа будет работать некорректно. Ждем пояснений. Спасибо.

gurwin
Автор

Здравствуйте! Поясните народу сдвиговые операции назначения портов. Почему именно так, а не иначе??))) В этом уроке уже и звук нормальный!

alexj