mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC935 EEPROM-Programmierung


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Robert Weber (rweber)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

dann schau mal ins UserManual des '935 Kapitel 18. Da stehts genau 
beschrieben.

Gruss,
rweber

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für deine Hilfe.
Ich hatte es wirklich missverstanden. Leider ist dieses Thema ja nicht 
genau beschrieben im Manual und als Anfäger hat man es da nicht leicht.
 Gruss, Thorsten

Autor: R. W. (quakeman)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Buch ist bestellt. Dann kann ja jetzt nix mehr schiefgehen. lol

Hoffe mal, das es mich weiterbringt. Danke für den Tip.
Gruss, Thorsten

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.