EEPROM-Wert wird nicht gespeichert

Gast #571342
Lesenswert?
• ▲
▼
Morgen,

irgendwie wird mein EEPROM-Wert nicht gespeichert. Als Controller 
verwende ich einen Atmega88 und den GCC Compiler mit dem AVR-Studio.

Ich ich habe die EEPROM-Variable folgendermaßen deklariert:

volatile uc_8 Just _attribute_ ((section (".eeprom")));

Im AVR-Studio habe ich unter Memory Settings folgende Definitionen 
gemacht:

Memory Type: EEPROM / Name: .eeprom / Adress: 0x380

So müsste die Variable doch an der Speicheradresse 0x380 gespeichert 
werden.

Nach einem Reset stehen dort auch die richtigen Werte, nur sobald die 
Spannung einmal abgeschaltet und wieder eingeschaltet wird, ist der Wert 
futsch.

Kann mir einer sagen, woran das liegen kann?

Gruß


#571353
Lesenswert?
• ▲
▼
Was ist damit:
1
#include <avr/eeprom.h>
2

3
uint8_t test EEMEM = 5;
4
uint8_t check EEMEM;
5

6
int main()
7
{
8
  uint8_t i = eeprom_read_byte( &test );
9
  eeprom_write_byte( &check, i );
10

11
  while( 1 )
12
    ;
13

14
  return 0;
15
}

Einfach im AVR Studio ein neues Projekt anlegen.
Keine Memory Settings oder sonstwas angeben.
Gast #571370
Lesenswert?
• ▲
▼
Wie kann ich der Variablen "check" direkt einen Wert zuweisen?

Mit eeprom_write_byte( &check, 128 ); klappt dass nicht.

Auch

unsigned int z = 128;
eeprom_write_byte( &check, z );

klappt nicht...
#572192
Lesenswert?
• ▲
▼
Günni wrote:
> Ist es eigentlich möglich, einen bestimmten Speicherbereich des EEPROMS
> auszulesen, also nur mit angabe der Adresse?

Meinst du jetzt per Programm oder willst du über deinen
ISP-Programmer auslesen.

Per Programm:
Klar. Mach ein unsigned char Array in der benötigten Größe
und benutze eeprom_read_block()
Gast #575570
Lesenswert?
• ▲
▼
Hallo,

irgendwie hab ich bei mir festgestellt, das der Wert nicht im EEPROM 
sondern im SRAM abgelegt wird.

Ich benutze den JTAGICEmkII mit dem AVR-Studio. Im Watch Fenster wird 
die Variable mit der Location SRAM angezeigt. Wie kann das sein?

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.