EEProm verwaltung

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • EEProm verwaltung

      Hallo zusammen,

      durch Test's ist mir aufgefallen, das mir mein Microcontroller (sehr sehr selten) auch mal falsche Werte aus dem EEProm zurück gibt. Es ist sehr sporadisch und betrifft auch immer zufällige Speicheradressen die beim erneuten einlesen auch wieder den richtigen Wert zurückgeben. Gelesen wird ganz normal über den Befehl "readeeprom". Es wird im laufe des Programms auch recht häufig gelesen aber immer nur einzeln mit anschließender Verarbeitung, deshalb gehe ich erstmal nicht davon aus, dass hier die spannung durch überanspruchung zusammen bricht (Messtechnisch konnte ich da auch nichts feststellen).

      Mein Ansatz wäre daher die Werte mit einer Adressverschiebung im EEProm zu spiegeln und beim Programmstart diese gegeneinander zu prüfen und in ein Array zu Speichern und im weiteren Programm mit dem Arrya zu arbeiten. Sollte der Wert unterschiedlich sein wird der Vorgang einmal wiederholt, wenn dann alles in ordnung ist geht es weiter sonst Fehlermeldung. Danach wird noch geprüft ob der Wert innerhalb des Wertebereichs (min, max) liegt und ins Array geschrieben.

      Gibt es da bessere/effizientere Möglichkeiten da Sicherheit reinzubekommen?
      Schön wäre natürlich auch die Erkennung von defekten EEProm-Speicherstellen und eine Verschiebung/Verweisung auf eine Ersatz-Speicherstelle ohne das dies groß im Programmablauf auffällt.
      Es sind fast 512 Bytes mit diversen Einstellungen die im EEProm gespeichert sind und nur gezielt durch den Benutzer verändert werden können aber ich muss sichergehen, dass diese auch korrekt sind.

      für Ansätze oder Ideen wäre ich sehr Dankbar!

      LG
    • Ja Interrupts werden verwendet aber die setzen nur Bits damit die entsprechenden Funktionen im Hauptprogramm bearbeitet werden. Die Werte die aus dem EEProm gelesen werden sind immer nur Bytes. Was auffällig ist, ist das bei einem Fehler immer der Wert 255 aus dem EEProm zurückkommt, da dieser Wert aber auch mal korrekt sein kann lässt es sich so nicht rausfiltern. Zwischen zwei fehlerhaften Lesevorgängen liegen mehrere hunderttausend lesevorgänge die korrekt waren. Deshalb habe ich mich damit schon abgefunden und würde den Fehler gerne abfangen.
      Ist ein normales Array da zuverlässiger als das EEProm? dann könnte man die Daten einmal einlesen und Prüfen und damit weiterarbeiten.
    • Trabatium schrieb:

      dass hier die spannung durch überanspruchung zusammen bricht
      Ein Broun Out könnte das zeigen. Ein Blockkondensator ist verbaut? ;)
      Wurden sie den so oft beschrieben das da Verschleisserscheinungen denkbar sind?
      Da ist kein Interrupt der auch liest? Beim Schreiben sollten keine dazwischen kommen.
      Er ist nicht deutlich über/untertaktet? Das könnte auch Probleme verursachen.
      Wichtige Daten könnten eine Prüfsumme bekommen. Bei Anzeigetexten/Bildern wird es wohl niemanden auffallen wenn da jedes 100.000te mal ein seltsames Symbol erscheint ^^
      Wenn genügen Ram vorhanden ist, wäre ein Array auch viel einfacher für den Code.