Hallo Leute, Sorry für die triviale Frage aber ich habe ein Array mit festen Werten angelegt und möchte während dem Programm drauf zugreifen ... mein Atmega16 zeigt während dem Debuggen an, dass das Array mit 0x00en voll ist, obwohl ich es doch eigentlich mit Werten initialisiert habe ... auch test2 wird mit 0x00 geladen obwohl es eigentlich mit 0x03 geladen werden müsste. Was mache ich falsch ? const unsigned char test1[] = { 0x01,0x02,0x03 }; int main (void) { unsigned char test2; test2 = test[2]; }
Sorry, ein test zuviel ... dennoch gleiches Problem :) const unsigned char array[] = { 0x01,0x02,0x03 }; int main (void) { unsigned char var; var = array[2]; }
Das Problem mit dem Programm ist evtl., daß es gleichbedeutend ist mit
1 | const unsigned char array[] = |
2 | {
|
3 | 0x01,0x02,0x03 |
4 | };
|
5 | |
6 | int main (void) |
7 | {
|
8 | }
|
und ein Compiler es daher dahingehend optimieren darf, als würde die Quelle auch so aussehen.
Hi, ja das hatte ich auch zuerst gedacht, aber ich habe die Optimierung ausgestellt ... also auf -O0 ... wenn ich das Array nicht als Konstante deklariere sondern mit in die MainFunktion nehme, dann geht es ??? Liegt es vielleicht an irgendwelchen verkurbelten Compilereinstellungen??
Also es hat sich erledigt, ich habe ausversehen 2 andere Bufferarrays zu groß dimensioniert und so meine 1k SRAM gesprengt. Aber warum bekomme ich keine Fehlermeldung oder zumindest eine Warning ... die Chipinformation hat doch der Compiler, demnach sollte er doch auch über die Speicherressourcen bescheid wissen, oder ??
Hallo Ralf, test2 = test[2]; müsste eigentlich test2 = test1[2]; heissen oder nur ein Schreibfehler ? Gruß Jörg
Wenn du endlich einmal dein richtiges Programm zeigen würdest, könnte man dir helfen. Aber wenn sich hinten nach raus stellt, dass auch du der Fraktion "Ich präsentiere unvollständige Daten und beschäftige damit mehrere Leute damit, nach Fehlern in Code zu suchen, den ich so gar nicht geschrieben habe" angehörst, sinkt die Bereitschaft sich noch weiter Gedanken um dein Problem zu machen ganz gewaltig.
@Zwiebackfräser hatte ich bereits oben korrigiert, war ein Schreibfehler :) @Karl heinz Buchegger warum so genervt, der Fehler hat sich doch gefunden. Natürlich hätte ich meinen kompletten Code posten können aber der ist auf sieben .c Files verteilt. Und oben das war mein original Code den ich benutzt habe, mir ist nur ein kleiner Abschreibfehler passiert ... keine Ahnung warum ich die paar Zeilen nicht kopiert habe.
Ralf schrieb: > @Karl heinz Buchegger > warum so genervt, der Fehler hat sich doch gefunden. goto Grund1; MininmalBeispiel1: > Natürlich hätte ich meinen kompletten Code posten können aber der ist > auf sieben .c Files verteilt. Dann nimmt man ein Minimalbeispiel. Ja, Mühe darf man auch vom Fagesteller erwarten. goto Ende; Grund1: > Und oben das war mein original Code den ich benutzt habe, mir ist nur > ein kleiner Abschreibfehler passiert ... keine Ahnung warum ich die paar > Zeilen nicht kopiert habe. Nicht Abschreiben, sondern kopieren, ausnahmsweise ist das Fehler mitkopieren bei Cut'n'Paste erwünscht. Ansonsten beschäftigen wir uns mit der Suche nach deinen Abtippfehlern und nicht nach den eigentlichen Fehlern. Damit du meinen Beitrag vollständig lesen kannst: goto MininmalBeispiel1; Ende:
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.