Forum: Compiler & IDEs Problem mit Winavr!


von world (Gast)


Lesenswert?

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

von Olli (Gast)


Lesenswert?

Hallo Welt,

gehts auch genauer als "klappt nicht"?

von world (Gast)


Lesenswert?

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!!


von Thomas (Gast)


Lesenswert?

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...

von world (Gast)


Lesenswert?

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.

von Thomas (Gast)


Lesenswert?

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.

von Karl heinz B. (kbucheg)


Lesenswert?

Zeig doch bitte endlich ein vollständig kompilierbares
Programm. So ist das alles nur Stochern im Nebel.

von bluebrother (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.