Du müsstest dich mal etwas näher mit den Timern des AVRs beschäftigen. Du proggst einen Timer so, dass er z.B. alle 10ms eienn Interrupt liefert. In dessen ISR fragst du dann die Tasten ab und bestimmst dann, was zu tun ist. Du kannst dir ja mal überlegen, wie Brain1.0 das ganze erledigen würde, wenn es alle paar Sekunden kurz mitkriegen würde, welche Taster momentan gedrückt sind...