LPC935 EEPROM-Programmierung

Gast #1323189
Lesenswert?
• ▲
▼
Hallo Zusammen...

Mit folgende kurzen Befehlszeilen kann ich einen Int-Wert ins EEPROM 
schreiben und auch wieder lesen.

if (Bit_da(0)==1) //wert in eeprom schreiben
    {
     EA=0;   // Interrupt Sperre setzen
     DEECON = 0x20; //eine Reihe, 64-Byte beschreiben für int-Wert>255
     DEEDAT = 511;    //Beispiel-Wert
     DEEADR = 0;
     EA =1; // Interrupt Sperre aufheben
     while ((DEECON&0x80)==0);
    }

if (Bit_da(2)==1) //Wert aus EEPROM auslesen
  {
    DEECON = 0;
    DEEADR = 0;
    while ((DEECON & 0x80) == 0);
    wert = DEEDAT;
    P2=wert;
  }


Welche Werte (Adresse) muss ich abändern, damit ich insgesamt 4 
unabhängige Int-Werte getrennt speichern und getrennt lesen kann?

Das habe ich leider nicht herausbekommen, trotz Datenblätter lesen...

Danke und Gruss, Thorsten.
Gast #1325897
Lesenswert?
• ▲
▼
Das Manual habe ich mehrmals gelesen und einiges versucht. Leider bin 
ich trotzdem nicht dahintergekommen, wie ich dann exakt die 2 Byte 
herausgelesen bekomme. Bekomme immer nur die letzten acht Bit heraus, 
bei einem Int-Wert von 300 also nur die 44. Jetzt stehe ich leider ganz 
auf dem Schlauch.

Gruss, Thorsten
#1325992
Lesenswert?
• ▲
▼
Thorsten schrieb:
> Das Manual habe ich mehrmals gelesen und einiges versucht. Leider bin
> ich trotzdem nicht dahintergekommen, wie ich dann exakt die 2 Byte
> herausgelesen bekomme. Bekomme immer nur die letzten acht Bit heraus,
> bei einem Int-Wert von 300 also nur die 44. Jetzt stehe ich leider ganz
> auf dem Schlauch.

Ich glaube, du hast da etwas missverstanden. Das EEProm ist byteweise 
aufgeteilt und dementsprechend kannst du keine Int Werte (16Bit) direkt 
speichern. Du musst diese erst in zwei einzelne Bytes aufteilen und 
getrennt speichern/abfragen.
In deinem Beispiel schreibst du "DEEDAT = 511" was unsinnig ist, da du 
nur Werte zwischen 0-255 reinschreiben kannst in das 8Bit Register. Du 
musst dich also selber darum kümmern, wie du deinen Int Wert mit 16Bit 
aufteilst in zwei 8Bit Werte und nach dem Laden wieder zusammenbaust. 
Aber die generelle Vorgehensweise hast du ja genau in deinem 
Beispielcode schon drin.

Ciao,
     Rainer
#1327972
Lesenswert?
• ▲
▼
Speziell zu der LPC900 Familie von 8051er Controllern kann ich dir das 
Buch auf www.c51.de empfehlen. Ich habe es mir damals selber gekauft und 
es erklärt sehr gut die Software sowie Hardware Aspekte dieser 
Controller. Es sind auch sehr viele Codebeispiele mit dabei um die 
einzelnen Funktionen exemplarisch zu benutzen. :)

Ciao,
     Rainer

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.