Сам я не видел никогда апноута AVR245, так что мой совет может оказаться совсем не в тему.
Как насчёт сделать так, чтобы нажатия и отпускания клавиш приводили к возникновению прерывания?
Ежели это будет весьма накладно и неудобно - нужно сделать чтобы клавиатура опрашивалась по таймеру(т.е. опять таки прерывание).
Сохраняя каждый раз last state и сравнивая его с только что считанным значением можно всегда понять было ли что-то отпущено или нажато....
Вопрос задан как-то не совсем ясно...приходится заниматься телепатией

Цитата
Есть одно но - повторные нажатия клавиш не могу реализовать.
это что значит? Как в компе, нажал кнопку и держишь, сначала печатеается одна буква, потом некоторая задержка, а потом буковка начинает повторятся, пока кнопочку не отпустишь? Это имеется ввиду?
Или же нужно что-то типа подавления дребезга контактов?
Нужно чтобы топикстартер всё это прояснил.
Клавиатура с точки зрения железа как построена?
Лень мне искать аппноут
The truth is out there...