Шановні українці! Матеріал був перекладений з російської мови. Тому можуть бути незначні помикли...
Переривання в мікроконтролері
Описати, що відбувається всередині процесора під час виконання переривання дуже просто. Якщо стався запит переривання, і прапор І у регістрі стану встановлений в 1, то адреса наступний команди зберігається в стеці, а виконання програми триває з адреси, що зберігаються у відповідному векторі переривання. Коли запит отримано переривання, і програма перейшла з цього вектора (адресу), прапор І скидається у 0, щоб запобігти можливість виклику нового переривання під час обробки поточного переривання.
Прапор І буде знову встановлений в 1 в кінці обробника переривання, коли виконується команда повернення RETI. Він також може бути встановлений в 1 у процесі обробки (після збереження контекстовых регістрів), щоб дозволити вкладені переривання. Середні і старші моделі AVR можуть обробляти стільки вкладених переривань, на скільки вистачить обсягу стека для зберігання вмісту лічильника команд і регістрів контексту. Молодші моделі мають обмежений обсяг стека (три позиції), який може швидко переповнитися при виконанні вкладених переривань або підпрограм.