Запуск внешнего прерывания AVR по заднему фронту: как долго я должен поддерживать низкий уровень сигнала, чтобы гарантировать срабатывание?

Заголовок вопроса оказался слишком длинным. Извини за это.

Итак, у меня есть схема, генерирующая короткий НИЗКИЙ уровень на выводе INT0 ATmega48PA. Из моделирования я понял, что уровень НИЗКИЙ будет существовать около 800 нс. Я планирую тактировать AVR от внутреннего RC с делителем 1:8, что означает 1 МГц Fosc.

Как я могу убедиться, что прерывание будет запущено?

Я кое-что читаю в даташите, но я искал не в той главе или такой информации нет.

Не могли бы вы указать мне правильное направление, чтобы найти необходимую информацию?

Спасибо!

Ответы (1)

Из таблицы данных для описания ISC11:ISC10

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

Поскольку тактовая частота 1 МГц означает, что импульс прерывания длительностью 800 нс будет длиться менее 1 периода, прерывание не будет генерироваться надежно. Самая длинная инструкция AVR требует 4 тактов, поэтому использование минимальной тактовой частоты 6 МГц гарантирует, что вы поймаете все прерывания, пока микросхема активна.

Как я понял из срабатывания прерывания по краю котировки, не требующего выполнения инструкции. Поэтому я бы сказал, что в моем конкретном случае мне нужно будет увеличить нижний уровень на 1000 нс, чтобы гарантировать прерывание. Верно?
Если вы переключитесь на запуск по заднему фронту, да.