Сигнал во время задержки для AVR

Добрый вечер!

У меня такая проблема.

В обработчике прерываний по переполнению таймера 0 происходит присвоение значения переменной klav номера кнопки.

В основной программе - проверка, при изменении состояния, этой переменной.

При первом нажатии задержка 20 с, установка бита 0 порта B, задержка 300 мс, сброс бита.

Но, в интервале 20 с может произойти(и обязательно произойдет) еще 5 нажатий на кнопку, которые так же необходимо обработать(задержка 20 с, установка бита 0 порта B, задержка 300 мс, сброс бита). Код на Си, ATmega16.

Подскажите, как быть. Понимаю, что как-то через ОС, но не понимаю как.

Спасибо.