Struct ins EEprom sichern

Gast
Bernd schrieb:
> Kann man so ein Struct:
>
1
> struct{
2
>   unsigned Eingang:1;
3
>   unsigned Ausgang_1:1;
4
>   unsigned Ausgang_2:1;
5
>   unsigned Ausgang_3:1;
6
> }flags;
7
>
>  ins EEProm sichern um es beim nächsten Start wieder laden zu können?

Natürlich.
Gast
Bernd schrieb:
> eeprom_update_byte will keinen struct sondern eine int-Variable.

Ich kenne dein eeprom_update_byte nicht!
Aber da es ein byte im Namen hat kann ich mir nicht vorstellen, dass es 
int sonderlich gut schreibt.

Zudem passt die Struktur doch in ein Byte, oder?
Gast
@Bernd, wie sollten Dir die Leute vernünftig helfen? Es fehlen jegliche 
Angaben zum System.

Evtl. so in der Art:

uint8_t * ptr = &flags;
for (i = 0; i < sizeof(flags); i++;)
{
  eeprom_update_byte(i, *ptr);
}

Nur eine Vermutung…
Gast
Harald schrieb:
> Es fehlen jegliche
> Angaben zum System.

Es geht um ein C Projekt im Atmel Studio für einen Tiny2313A

Die EEProm Routinen sind per #include <avr/eeprom.h> eingebunden.


Und jetzt soll das nicht mal 1 Byte große Struct ins EEProm in die erste 
Zelle.
Aber wie lautet die Syntax für eeprom_write_ oder eeprom update_ oder 
eeprom_write_block?

und wie wird das Struct wieder aus dem EEProm gelesen?
Hallo,

also ich würde mir das einfacher machen und die Bits in ein Byte 
schieben. Dann hätte ich ein sauberes Byte für die EEprom Geschichte. 
Den Aufwand mit den Bits "umformen" hast du oder so. Überlege dir was in 
der Handhabung einfacher ist.
Gast
> Und jetzt soll das [...] Struct ins EEProm in die erste Zelle.
> ...
> Und mit welchem Befehl lässt sich das machen?

Mit eeprom_read/write/update_block:
1
#include <avr/eeprom.h>
2

3
struct { ... } flags;
4

5
   ...
6
   eeprom_read_block(&flags, 0, sizeof(flags));
7
   ...
8
   eeprom_update_block(&flags, 0, sizeof(flags));
9
   ...
Beitrag #6785387 wurde von einem Moderator gelöscht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.