EEprom beschreiben und auslesen, nur 255 wird angezeigt

OP #2351448
Lesenswert?
• ▲
▼
Hallo zusammen,

könnt ihr mir bitte sagen, warum der Wert 25 nicht im EEProm 
abgespeichert wird?

Es wird nur der Wert 255 ausgegeben. Das sagt mir, dass dies der 
Startwert ist und der Wert 25 nicht geschrieben wurde.

Muss ich bei der Übertragung des Programms noch etwas beachten- siehe 
Bild

das Programm nicht nur in den Flashspeicher übertragen, sondern auch in 
den EEProm? Das habe ich auch versucht- siehe Bild- kein Erfolg

 Vielen Dank im Vorraus für Eure Hilfe.


Viele Grüße, Matthias.
Angehängte Dateien:
OP #2351541
Lesenswert?
• ▲
▼
Hallo nochmal,

wie verhält es sich mit dem Schreiben von EEPromdaten aus dem Programm 
heraus?

Das funktioniert auch noch nicht.

wenn das Prgramm so  aussieht, dann zeigt er mir den Wert 99 an.


myByte = 99;
eeprom_write_byte(&eeFooByte, myByte); // schreiben

myByte=0;


myByte = eeprom_read_byte (&eeFooByte);

lcd_ini();
lcd_writezahl(2,1,myByte);


das geht dann,

wenn ich dann aber die Zeilen herausstreiche,
myByte = 99;
eeprom_write_byte(&eeFooByte, myByte); // schreiben

da ja schon im ebend gezeigten Code in den EEProm geschrieben wurde, 
dann zeigt er mir im unten stehenden Code nur noch 255 an.

den unten stehenden Code schreibe ich ja nur in den Flash.

kann es sein, das das Häkchen in AVR Studio5 "Erase device before 
programming" nicht gesetzt werden darf? -siehe Bild

ohne Häkchen erhalte ich aber eine böse Fehlermeldung, wieso eigentlich?


Könnt ihr mir bitte sagen was daran jetzt nicht stimmt?

Dann habe ich es hoffentlich verstanden.

Viele Grüße,

Matthias.


anbei vollständiger Code, wo nur 255 als EEPromwert ausgegeben wird


#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#define LCD_Port PORTB        //PORTB fürs LCD muss im Hauptprogramm 
noch deklariert werden
#include "E:\Eigene Dateien\Dropbox\Atmel AVR\AVR 
Programme\1aVorlagen\lcd_tools2.c"
#include <stdint.h>
#include <avr/eeprom.h>

/* Byte */
uint8_t eeFooByte EEMEM;



int main(void)   //zur Konfiguration des Test- Programms
{
DDRB=0xff;   //LCDPORT  als Ausgang
uint8_t myByte=0;


//myByte = 99;
//eeprom_write_byte(&eeFooByte, myByte); // schreiben

myByte=0;


myByte = eeprom_read_byte (&eeFooByte);

lcd_ini();
lcd_writezahl(2,1,myByte);



 while (1);
Angehängte Dateien:

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.