FredSonnenrein hat geschrieben: ↑Sa 22. Feb 2020, 18:57
Es gibt zwei Fehler: einen mit dem Text "warnung lesefehler" und einmal "schwerer lesefehler".
Bei dem ersten hatten zwei der drei Speicherstellen wenigstens den gleichen Inhalt (dieser gewinnt dann), bei der anderen Variante sind drei unterschiedliche Werte gefunden worden, dann wird ein Standardwert verwendet, z.B. 11 für die Nebenstellennummer. Dieser Standardwert wird aber auch gleich ins EEPROM geschrieben. Das muss ich ggf. nochmal überdenken.
Da #2 die "11" verpasst bekam, gehe ich davon aus, dass es zu einem schweren Lesefehler in EEPROM#2 gekommen sein muss :-/
Wird bei einer Warnung der EEPROM-Inhalt neu geschrieben (mit den 2-aus-3-Daten), um alle Speicherbereiche wieder glattzuziehen? Ich kann mir nicht erklären, warum es nach einer EEPROM-Warnung + Neustart manchmal auch wieder ohne EEPROM-Warnung klappt. Oder wird das EEPROM generell nur bei einem Aufruf des Konfigurationsmodus geschrieben?
Weil #2 die 11 (default) bekommen hat und #1 eine Mikrosekunde langsamer war, hat #1 gemerkt dass bereits eine 11 vergeben ist und hat auf "nix" umgeschaltet. In diesem Fall bleibt aber das EEPROM unverändert und nach "korrigieren" der #2 hätte #1 wieder normal hochstarten müssen.
Ok, da war ich zu voreilig - ich habe erst #1 auf was völlig anderes gesetzt, dann #2 zurück auf "22" korrigiert um schlußendlich #1 auf die ursprüngliche "11" zu setzen. Bei #2 war übrigens nicht nur die Rufnummer auf "11" gesetzt, sondern zusätzlich auch noch die Sperrzeiten verschoben:
Sperrzeit a
von 2200 (ok)
bis 2200 (nok, sollte '0600' sein)
Sperrzeit b
von 2015 (ok)
bis 2015 (nok, sollte '0830' sein)
Ich denke, der ATmega hat nen Treffer ...
Gruß,
Th.