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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren