Forum: Mikrocontroller und Digitale Elektronik ATMega8 will nicht mit GCC-Compiler


von Stefan (Gast)


Lesenswert?

Hallo zusammen,

ich hätte da mal eine grundlegende Frage. Gibt es einen besonderen Trick 
den gcc so zu konfigurieren, dass er für den Mega8 korrekt kompiliert? 
(AVR Studio 4 mit WINAvr).

Wenn ich z.B. eine Variable definiere und diese hochzählen will, macht 
das der mC nicht.

...
volatile unsigned int THIS_VAR;
THIS_VAR++;
...

Ich dachte schon, der mC wäre hin, aber in Assembler funktioniert es 
problemlos. (Mit Bascom hab ich übrigens das gleiche Problem).

Danke und Gruß
Stefan

von Michael H. (michael_h45)


Lesenswert?

lad mal eine projekt-datei rauf. ich tippe auf falsche einstellungen...

von Johannes O. (jojo_2)


Lesenswert?

zeig doch bitte mal den kompletten code...
hab hier nen atmega48, der ist ähnlich und bei dem funktioniert es 
definitiv. auch hat es frühers bei meinen atmega8 auch immer 
funktioniert...

von Stefan E. (stefan_e)


Lesenswert?

Einfach mal geraten: Bei C muss ich die Definition einer lokalen 
Variable ganz am Anfang eines Blocks/ einer Funktion stehen, also in der 
unmittelbar nächsten Zeile nach der letzten { ohne irgendwelchen anderen 
Sachen dazwischen.

von Stefan (Gast)


Angehängte Dateien:

Lesenswert?

Michael H. schrieb:
> lad mal eine projekt-datei rauf. ich tippe auf falsche einstellungen...

Johannes O. schrieb:
> zeig doch bitte mal den kompletten code...

Hi,
habe das Makefile und den Code angehängt.
Gruß
Stefan

von Karl H. (kbuchegg)


Lesenswert?

Und wie stellst du fest, dass die Variable nie hochgezählt wird?

Hab deinen Code gerade in ein frisches C-Projekt im AVR-Studio kopiert, 
compiliert, Breakpoint auf den Inkrement und laufen gelassen. Der 
Breakpoint wird erreicht, 1 Single Step mit F10 und danach hat die 
Variable einen um 1 erhöhten Wert, so wie es sein soll.

Compiliert mit -Os.

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.