Первым делом необходимо в технической документации МК посмотреть адрес вектора прерывания «External Interrupt Request 0».
В программе адрес INT0 нужно прописать сразу же после метки Reset. Так как наша программа будет обрабатываться в цикле аппаратного прерывания, то цикл «main» остается пустым. Важно помнить, что при использовании прерываний, цикл main должен присутствовать в программе. Не зависимо от того будет ли там что-то написано или нет.
Так как вывод прерывания INT0 припадает на порт PD2, то нужно перенести кнопку с PD0 на PD2 и произвести настройку порта на ввод.
Чтобы разрешить использование прерывания INT0, необходимо внести данные в регистр GIMSK, согласно таблице ниже.
Следующим шагом будет настройка условий прерывания. Параметры записываются в регистр MCUCR.
Как видно из таблицы, с помощью битов ISCxx можно настроить условие прерывания по переднему фронту, по заднему и по изменению логического состояния пина.