Guten Tag zusammen,
ich habe ein Problem mit dem Verständnis der Funktion
"eeprom_write_block"
Folgendes - ich möchte eine Struktur welche 14bit groß ist (2 Byte) ins
EEPROM schreiben in dieser Struktur stehen Zustandsmeldungen.
Einzelne Bytes ins EEPROM schreiben hat bei mir funktioniert, aber ich
glaube ich habe den Syntax noch nicht ganz verstanden um einen ganzen
Block (struct) zu schreiben:
So sieht mein struct aus.
1 | volatile uint16_t adresse = 0x05;
|
2 |
|
3 |
|
4 | struct {
|
5 | unsigned V_1:1; //
|
6 | unsigned V_2:1; //
|
7 | unsigned V_3:1; //
|
8 | unsigned P_1:1; //
|
9 | unsigned P_2:1; //
|
10 | unsigned P_3:1; //
|
11 | unsigned P_4:1; //
|
12 | unsigned P_5:1; //
|
13 | unsigned M_1:1;
|
14 | unsigned M_2:1;
|
15 | unsigned M_3:1;
|
16 | unsigned KW:1;
|
17 | unsigned KF:1;
|
18 | unsigned Temp_Diff:1;
|
19 | } state;
|
Und im Programm kommt dann der Aufruf:
1 | cli();
|
2 | eeprom_write_block(state, adresse, sizeof(state));
|
3 | sei();
|
Dort bekomme ich dann eine Fehler meldung und eine Warnung:
Error 1 incompatible type for argument 1 of 'eeprom_write_block'
Warning 2 passing argument 2 of 'eeprom_write_block' makes pointer
from integer without a cast
Im Tutorial für den die Fuktion sieht es auch so aus als wenn nur ein
Array ins EEPROM geschrieben wird.
Kann mich da vieleicht jemand mal aufklären?
Das wäre super.
Vielen Dank