mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik eeprom_write_block


Autor: Volker Gebhardt (vg1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich möchte gerne einen Block ins EEPROM schreiben (ATMEGA8), irgendwo 
ist aber ein haken....
include <avr/eeprom.h>

typedef struct {
  unsigned char    cInMask;
  unsigned char    cOutMask;
  unsigned int     iCounter[5];
} t_env;

t_env g_env;
t_env ee_env EEMEM;


void WriteEE()
{
  eeprom_write_block ( &g_env, &ee_env, sizeof (t_env) ); // Zeile A
  PORTD |= 0x01; // LED am Port (ein)
}

int main (void)
{
  DDRD= 0x01; // 1 ist ein ausgang
  PORTD = 0x00; // LED am Port (aus)
  
  g_env.cInMask= 0x12; // irgendwelche werte....
  g_env.cOutMask= 0x34;
  g_env.iCounter[0]= 0x56;
  
  WriteEE(); // und schreiben
  
  while (1) {
  } // endlos
}

Nun müssten die Werte eigentlich im EEPROM liegen und die LED am PORTD 
ansein, ist sie auch wenn ich die "Zeile A-> eeprom_write_block" 
auskommentiere. sonst bleibt sie aus, kann mir jemand sagen was ich 
falsch mache?
MfG VG1

: Verschoben durch Moderator
Autor: Matthias K. (matthiask)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>eeprom_write_block ( &g_env, &ee_env, sizeof (t_env) ); // Zeile A

Versuchs mal so:
#include <avr/pgmspace.h>       // PROGMEM-Funktionen 
...

struct t_env {
  unsigned char    cInMask;
  unsigned char    cOutMask;
  unsigned int     iCounter[5];
};

struct t_env g_env;
struct t_env ee_env EEMEM;

...
eeprom_write_block ( &g_env, &ee_env, sizeof (g_env) );

Autor: Volker Gebhardt (vg1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
es funktioniert jetzt. Habe einen anderen atmega8 genommen ??
(Beide waren neu...)

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.