- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: EEPROM schreiben, lesen

  1. #1

    EEPROM schreiben, lesen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo @ all,

    Ich möchte eine Steuerung mit Display und entsprechender Menüführung programmieren.
    Dieses Menü soll in verschiedenen Sprachen einprogrammiert werden.
    Folgendes habe ich mir dazu ausgedacht.
    Im Programm-flash wird mithilfe von String-Variablen immer die aktuell eingestellte Sprache ausgegeben.
    Wenn ich dann die Sprache umstelle wird diesen Variablen ein anderer Text zugewiesen. Also aus dem EEPROM in den Flash kopiert.
    Das sollte doch funktionieren oder ?
    Nun meine fragen dazu, wie und wo programmiere ich die verschiedenen Texte ins EEPROM ? Kann ich das direkt in der Datei mit der Endung .eep wie müsste das aussehen ? Macht bzw. darf man dort überhaupt Werte direkt reinschreiben ? Das ist doch eine compilierte Datei oder ??

    Ich hoffe das ich mein Problem verständlich beschrieben habe und freue mich auf Eure Lösungsansätze.

    MfG

    Ovoron

  2. #2
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    29
    Beiträge
    656
    In deinem Fall kann man einfach alle Werte in den Flash schreiben und jeweils die passenden Anzeigen. Werte vom EEPROM in den Flash zu kopieren wäre Unsinn (wenn dann umgekehrt), da der EEPROM für z.B. Werte, die sich verändern können gedacht ist und nicht für Konstanten (außerdem kann man den Flash nicht ohne weiteres vom Programm selbst programmieren lassen, dazu braucht man einen Bootloader). Wenn du aber den EEPROM für etwas anderes benutzen willst google mal nach "avr +eeprom" oder so etwas in der Art. Aber eines kann ich schon sagen, dafür gibt es Funktionen, die man in den Quelltext einbaut, man schreibt nicht einfach irgendwas in die .eep Datei.

    mfg

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hier wird das ganz brauchbar beschrieben: http://www.mikrocontroller.net/artic...utorial#EEPROM
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  4. #4
    Hallo,
    OK verstanden. was speichert Ihr denn so im EEPROM ?
    Ich kann doch auch nur mit dem flash Speicher arbeiten oder wo bietet es sich an mit dem EEPROM zu arbeiten ?

    Greetz

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Jaecko
    Registriert seit
    16.10.2006
    Ort
    Lkr. Rottal/Inn
    Alter
    41
    Beiträge
    2.009
    Wenn die Sprachen bereits alle im Flash liegen, ist das kein Problem.
    Aber erst reinkopieren geht nicht wirklich brauchbar. Wie gesagt kann man bei AVRs im Flash nur vom Bootloader aus rumschreiben. Die XE16x (Infineon) können das auch vom normalen Programm aus.

    Im EEPROM liegen z.B. Daten wie Displayhelligkeit/Kontrast, Lautstärkeeinstellungen, Adressen von irgendwelchen I2C-Bus-Geräten, aufgetretene Fehler. Ein I2C-EEPROM kann z.B. auch zum Speichern von Temperaturdaten verwendet werden.
    #ifndef MfG
    #define MfG

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Zitat Zitat von Ovoron
    ... Ich kann doch auch nur mit dem flash Speicher arbeiten oder wo bietet es sich an mit dem EEPROM zu arbeiten ...
    Dein Projekt bzw. Deine Idee ist ja gut. Wenn man (mehrere) gleichbleibende Werte, in diesem Fall eben Strings hat, dann ist es sinnvoll das im EEPROM zu speichern. Ich mache es gelegentlich bei Textausgaben ähnlich, allerdings nur mit einer Sprache.

    Im EEPROM lege ich solche Strings an:
    Code:
    // Das LCD hat 24 Zeichen:              "1234567890123456";
    unsigned char ABC1[]            EEMEM = " BTtester  357M ";
    unsigned char ABC2[]            EEMEM = "ABC Vx93 21Nov09";
    Das wird dann bei passender Gelegenheit an ein LCD ausgegeben so:
    Code:
      Line1();	// 1. Zeile
      lcd_eep_string(ABC1);        
      Line2();	// 2. Zeile
      lcd_eep_string(ABC2);        
      _delay_ms( 800);
    Die LCD-Routinen bedienen das Display - klar. Ausgaben über andere Schnittstellen wären natürlich möglich.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Im EEPROM speichert man auch wärend des Betriebs anfallende Daten die nach dem Abschalten wieder abgerufen werden.
    Ein Beispiel dafür ist ein Datenlogger.
    Oder wenn du über das Menü Variable ändern kannst, die erhalten werden sollen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Erfahrener Benutzer Roboter Experte Avatar von BurningWave
    Registriert seit
    22.12.2007
    Ort
    nahe Stuttgart
    Alter
    29
    Beiträge
    656
    Ich speicher im EEPROM zum Beispiel Einstellungen und eine kleine Alarmanlage von mir hat z.B. gespeichert, wann ein Alarm ausgelöst wurde.
    Zusammenfassend kann man sagen, dass im Flash das Programm und Konstanten, wie alle Texte (Strings) und Werte (einfache Zahlen) gespeichert werden. Der EEPROM ist für Variablen gedacht, die nach dem Trennen der Stromversorgung erhalten bleiben sollen und bei einem Datenlogger für Datensätze. Der dritte Speicher eines AVRs ist der SRAM, der Arbeitsspeicher. In ihm werden alle normalen Variablen, die du so definierst gespeichert.

Berechtigungen

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

LiTime Speicher und Akkus