Guten Tag, ich habe ein Problem mit einem ATMega32. ICh will eine Block lesen. Das Beschreiben klappt. Aber das lesen quittiert er mit dieser Fehler Meldung. invalid use of void expression. eeprom_read_block ( (void*) program_2.name_1,(const void*) 7,(size_t) 21) ); Program_2.name_1 ist ein Feld in einer Struktur. Ich konnte den Fehler auf size_t eingrenzen. Ich verwende beim schreiben den selben Befehl, da mekert er aber nicht. Weiss jemmand Rat ? Gruß Nutnic
Gast
#4872913
> Ich verwende beim schreiben den selben Befehl, da mekert er aber nicht.
Das glaube ich nicht, da ist nämlich eine überzählige Klammer drin.
Hallo g457, das ist nur ein Code schnipse. Ich habe noch mehr geschreiben. Ich wollte euch nur nicht zu Müllen mit meinem Programm. An der Klammrer liegt es nicht. :-) Gruß Nutnic
Gast
#4873005
Kompletten Code her.
Gast
#4873007
Martin B. schrieb: > Hallo g457, > > das ist nur ein Code schnipse. Ich habe noch mehr geschreiben. > Ich wollte euch nur nicht zu Müllen mit meinem Programm. > > An der Klammrer liegt es nicht. :-) > > Gruß Nutnic
1 | |
Anbei der Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
-- Das Forum bietet die [ c ] [ /c ]-Tags, um Quelltext lesbarer zu machen. Nun, hier hilfts dann auch nicht. -rufus
Gast
#4873087
Martin B. schrieb: > sprintf(text,"Name: %d " ,eeprom_read_block ( (void*) > program_2.name_1 > ,(const void*) 7 > ,(size_t) 21) ); Klammer zu viel. Wie bereits gesagt...
Gast
#4873089
MaWin schrieb: > Klammer zu viel. > Wie bereits gesagt... Ne doch nicht. Der Code ist extrem schwer zu lesen. Vor allem, weil da die Hälfte auskommentiert und falsch eingerückt ist.
Gast
#4873092
> Anbei der Code: > > struct New_Own_Program_1 > { > > uint8_t time_1_min; ^^^^^^^ Der müsste schon hier anfangen zu meckern.
Gast
#4873095
Es gibt gar kein read_block, was nicht auskommentiert ist. Du verschwendest unsere Zeit, wenn du uns nicht den Code gibst, der auch tatsächlich den Fehler wirft.
Gast
#4873098
g457 schrieb: > Der müsste schon hier anfangen zu meckern. Warum?
MaWin schrieb: > g457 schrieb: >> Der müsste schon hier anfangen zu meckern. > > Warum? Weil #include <stdint.h> fehlt? Offenbar kennt g457 kein C99. ARV-GCC schon, mit o.g. Header.
Gast
#4873444
> Weil #include <stdint.h> fehlt? Jepp. > Offenbar kennt g457 kein C99. Doch. Augenscheinlich besser als Du. > ARV-GCC schon, mit o.g. Header. Jepp. Beim TO fehlt der. Oder eine der Alternativen. Also müsste der Compiler meckern. Wenn er das nicht tut unterschlägt der TO entweder Quellcode oder Fehlermeldungen. Beides ist nicht vorteilhaft.
Martin B. schrieb: > ICh will eine Block lesen. Das Beschreiben klappt. Aber das lesen > quittiert er mit dieser Fehler Meldung. > > invalid use of void expression. Ist doch klar, dass dein auskommentierter Kram nicht funktioniert: So ist eeprom_read_block deklariert
1 | |
2 | |
3 | |
4 | |
Und so verwendest du das:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Die Fehlermeldung "invalid use of void expression" sagt doch schon alles: In der Argumentliste von sprintf darf kein void-Ausdruck auftauchen. Also Funktionsaufruf von eeprom_read_block vor sprintf und dann program_2.name_1 als Argument für sprintf übergeben.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.