if(zelle[i] > 614)

Das ist ein Befehl, der auf AVR nicht in eine einzige Instruktion umgesetzt werden kann. Wird der Wert gegen 614 verglichen, was durch die Sequenz cp und cpc geschieht und taucht dazwischen ne IRQ auf, die bedient wird und ändert die den Wert, dann hat ein Byte den alten Wert und ein Byte cshon den den neuen Wert. Insgesamt ist der Wert korupt, so daß die Bedingung x>614 auch erfüllt sein kann, wenn x<= 614 ist bzw falsch sein kann, wenn x>614 ist.

https://www.roboternetz.de/wissen/in...-atomarer_Code