Folgende Fehlermöglichkeiten habe in bisher in Betracht gezogen:
  • Übertaktung (18,432 MHz), kann ich aber ausschließen, da das Fehlerbild mit 8 MHz identisch ist.
  • Alterung des Flash, Code wird fehlerhaft gelesen. Unwahrscheinlich, da ich den Chip nun seit 5 Jahren betreibe, aber sicher nur an 30 Tagen im Jahr mit ca. 10 Löschvorgängen pro Tag (macht 1500 Programmierzyklen).
  • Compiler-Fehler, dafür hab ich auch die Listings angehängt, evtl mal draufschauen.
  • Es ist mit ziemlicher Sicherheit Möglichkeit #4, eine data/stack-Collision. Du versuchst mehr RAM zu verwenden, als überhaupt da ist. Da werden dann Daten zerstört und die merkwürdigsten Effekte sind die Folge.