Hallo Forum, ich habe ein Array wie folgt Aufgebaut: typedef struct { unsigned char zeichen[4]; unsigned int zahl1; unsigned int zahl2; }_T_struct; const _T_struct buffer[] = { {{'A','A','A','A'},2,2} ..... }; ich möchte nun das erste Zeichen auslesen, also buffer[0].zeichen[0] mit dem Dev-C++ klappt alles wunderbar, nur nicht mit dem Winavr?? Was mache ich falsch?? mfg world
wenn ich wie gesagt mit dem Dev-C++ Kompiler arbeite, gibt er mir bei dieser zeile buffer[0].zeichen[0] ein 'A' zurück. Wenn ich das mit dem Winavr-kompiler mache, dann bekomme ich nur Müll zurück, also nix definiertes!!
Kommen beim Kompilieren Fehlermeldungen? Wo kommt denn der Müll raus? Holst du die Daten über die serielle Schnittstelle ab? So kann man nur rätseln...
keine Fehlermeldungen. bei Dev-C++ über printf und beim Winavr über LCD. Es liegt nicht an der LCD-Routine! Habe ich schon überprüft. Gebe ich einen Zeichen vor, dann wird es auch aufs lcd geschrieben. nur nicht das zeichen aus dem struct.
Wenn dein Buffer wirklich const sein soll, muss auch noch mittels PROGMEM angegeben werden dass dieser auch im Flash gespeichert werden soll (siehe GCC-Tutorial). Also: const _T_struct buffer[] PROGMEM = ... Dann geht das Auslesen aber auch nur noch mittels der Flash-read/write -Funktionen pgm_read_byte etc.
Zeig doch bitte endlich ein vollständig kompilierbares Programm. So ist das alles nur Stochern im Nebel.
vielleicht will deine LCD-Ausgabe ja auch ein Zeichen (als Wert) und keinen Pointer ... oder umgekehrt ... Mist, meine Kristallkugel ist kaputt.
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.