- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 8 von 8

Thema: Werte im eeprom vor "überbrennen" schützen.

  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311

    Frage Werte im eeprom vor "überbrennen" schützen.

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    im EEPROM lege ich zwei Wörter ab, die lediglich Kalibrationsdaten sein sollen:
    Code:
    uint16_t eeWord EEMEM = 0;
    
    //Beschreiben in main():
    uint16_t CalibData = 12345;
    eeprom_write_word(&eeWord, CalibData);
    
    //auslesen aus main():
    CalibDate = eeprom_read_word(&eeWord);
    Zur Frage: wenn ich jetzt das Programm laufen lasse und 12345 reinschreibe, bleibt der Wert ja erhalten wenn ich das Gerät aus und wieder anschalte. Aber wie ist es, wenn ich den µC neu flashe? Dann schreibt er doch wieder "0" in's EEPROM, richtig? Kann man das irgendwie einstellen, dass nur aus dem Programm heraus Werte in's EEPROM gelangen können und nicht durch das Flashen?

    Besten Dank,
    Simon

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Hallo,
    das müsste schon möglich sein. Du überträgst wahrscheinlich mit avrdude, dann kannst du das über die Kommandozeile festlegen. Es gibt aber so viele Optionen bei avrdude, das kann man sich gar nicht alles merken. Welchen Parameter du genau brauchst, musst du hier raussuchen: http://www.nongnu.org/avrdude/user-m...avrdude_4.html
    Beim flashen wird der EEPROM-Speicher mit Einsen gefüllt (Hex FF, Dec 255, Bin 11111111).
    Notfalls irgendein "workaround" machen - erst EEPROM-Daten auslesen, dann flashen und EEPROM-Daten wieder draufspielen, die Aufrufe von avrdude ließen sich in einer .bat -Datei unterbringen.

    Grüße, Bernhard

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Hi,
    danke fuer den Hinweis. Muesste dann so laufen...
    Code:
    avrdude ... -U eeprom:r:ee:i
    avrdude ... flashen
    avrdude ... -U eeprom:w:ee:i
    Werd's heute Abend mal probieren,
    merci,
    Simon

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Das einfachste ist es, im Controller die EESAVE-Fuse zu setzen.
    MfG
    Stefan

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    33
    Beiträge
    1.192
    Sternst hat recht, Fuses anders zu setzen ist deutlich einfacher!
    Dann muss man wirklich nichts weiter an avrdude ändern.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von BMS Beitrag anzeigen
    Sternst hat recht, Fuses anders zu setzen ist deutlich einfacher!
    Dann muss man wirklich nichts weiter an avrdude ändern.
    Sicher? Vom Programm aus soll das Eprom ja beschreibbar bleiben, ist es das bei gesetzten Schreibschutz? Könnte man vom Programm aus den Schreibschutz löschen > Schreiben >setzen?

    Gruß Richard

  7. #7
    Erfahrener Benutzer Begeisterter Techniker Avatar von PCMan
    Registriert seit
    05.08.2006
    Ort
    Munich
    Beiträge
    311
    Hi,

    also, ich habe EESAVE gesetzt und kann vom Programm aus lesen/schreiben, avrdude lässt beim Programmieren das EEPROM in Ruhe. Genau das, was ich wollte. Besten Dank,
    Simon

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von PCMan Beitrag anzeigen
    Hi,

    also, ich habe EESAVE gesetzt und kann vom Programm aus lesen/schreiben, avrdude lässt beim Programmieren das EEPROM in Ruhe. Genau das, was ich wollte. Besten Dank,
    Simon
    Auch besten Dank für die Info das es vom Programm aus geht. Wieder etwas dazu gelernt.

    Gruß Richard

Ähnliche Themen

  1. "Data" Werte im laufenden Betrieb abändern => M
    Von mrmajo im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 08.11.2010, 13:59
  2. Antworten: 2
    Letzter Beitrag: 07.06.2010, 13:25
  3. Antworten: 34
    Letzter Beitrag: 11.01.2010, 19:40
  4. "Config Servo" in Bascom - Warum so krumme Werte??
    Von m@rkus33 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 25
    Letzter Beitrag: 26.02.2009, 15:42
  5. Wie "Pegel" absenken + EEprom beschreiben
    Von DBZwerg im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 24.12.2006, 21:05

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test