Урок №4. Изучаем прерывания с помощью языка программирования Assembler на микроконтроллере Atmega8.

Поделиться
HTML-код
  • Опубликовано: 2 фев 2025

Комментарии • 2

  • @marina16350
    @marina16350 6 месяцев назад

    Следовало бы сказать о начальной системной области Flash памяти - области векторов прерываний. Ведь они используются: rjmp RESET rjmp EXT_INT0. И еще вопрос: прерывания на INT0 (PORTD.2) запрограммированы по нарастающему фронту (переход из низкого в высокий уровень), а когда нажимается кнопка возникает другой фронт - спадающий - переход из высокого уровня в низкий, а в обработчике прерывания после антидребезговой задержки проверяется нажатое состояние кнопки (низкий уровень на PIND.2). Таким образом прерывание возникнет после отпускания нажатой бездребезговой кнопки кнопки или во время дребезга дребезговой кнопки. Таким образом программа с бездребезговой кнопкой работать не будет, а с дребезговой будет (проверила на макете именно с разными кнопками). У вас по-видимому кнопка с дребезгом была, поэтому и заработало. Чтобы программа работала абсолютно верно (т.е. одинаково и с бездребезговой кнопкой и с кнопкой с дребезгом), надо запрограммировать прерывание INT0 по спадающему фронту, т.е.
    ldi temp, (1

  • @ciklomat
    @ciklomat Год назад +2

    Спасибо за труды, но это не урок. Больше похоже на обзор непонятных примеров, которые не смогут помочь в изучении языка.