• Der Zugriff auf deine volatiles t1_x, t2_x, t1_y, t2_y (zumindest die aus dem Hauptprogramm) muss atomar erfolgen. Ich glaub zwar nicht, daß dein Problem damit behoben ist, aber es gibt sonst (sporadische) Fehler.
    → [wiki="Fallstricke bei der C-Programmierung"]
  • INT0 resp. INT1-Flags nach Anfassen von MCUCSR clearen?
  • Mache nicht Variablen global, die besser lokal sind! (z.B. result)
  • float ist hier -- wie fast immer -- ziemlich sicher Overkill und kann in 32-Bit Fix-Arithmetik übertragen werden.