Hallo Brantiko,

setze in deine Mainloop mal ein wait1.
Dann ist die Hauptschleife richtig langsam. Das heißt aber nicht, daß der ATMega langsam ist.
Lasse jetzt einen Timer alle paar Milisekunden einen Interrupt auslösen. Dort machst du deinen schnellen Code rein.
Jetzt wird der Interrupcode sehr oft und schnell ausgeführt, der Code in der Mainloop nur wenn gerade nichts anderes zu tun ist. Du siehst, die langsame Mainloop bremst dein Programm nicht aus.

Jetzt zu deinem Displayproblem. So ein Display ist laaaaangsam, alle Änderungen dauern ewig. Das würde theoretisch unser Programm ausbremsen. Da die LCD-Routinen aber in der Mainloop liegen, der schnelle Code aber im Interrupt, wird garnicht auf das Display gewartet, sondern der Interrupt abgehandelt und erst danach wieder nach dem Display geschaut.
Wenn jedoch die Interrupts zu schnell aufeinander folgen, hat der Controller vor lauter Interrupts gar keine Zeit für die Mainloop. Ebenso ist wait1 natürlich auch zu lang. Aber das kriegst du hin.
Ich hoffe ich konnte ein bisschen Klarheit reinbringen.

Günter