Hallo, ich nutze schon seit einiger Zeit Code Blocks unter Ubuntu für meine AVR-Projekte, was bisher ohne jegliche Probleme einwandfrei funktionierte. Heute wollte ich mal ADC ausprobieren, bin aber dabei sehr schnell auf ein Problem gestoßen, welches ich bis jetzt nicht selbst beheben konnte. Folgender vereinfachter Code in meiner main.c bereitet bereits das Problem: #include <avr/io.h> int main(void) { ADCSRA = (1 << ADPS1) | (1 << ADPS0); while (1) { } } Hierbei teilt mir der Compiler mit, dass ADCSRA, ADPS1 und ADPS0 angeblich nicht deklariert wurden. Ich habe sichergestellt, dass mein Avr (hier: Atmega16), den ich verwende, auch eingestellt ist. Hierzu habe ich unter Build Options noch das Compiler Flag "-mmcu=atmega16" gesetzt. Dieses Problem bekomme ich nur, wenn ich mit ADC arbeiten will. Alle anderen Makros für Register wie Timer, einfache I/O Sachen sind ohne Probleme ansprechbar und verursachen auch keinen Compilerfehler.
Vermutlich eine fehlerhafte avr-libc Installation oder eine urururalt Toolchain, falsche Toolchain-Pfade...? Übersetz mal mit
1 | avr-gcc ... -g3 -save-temps ... |
und schau dir das i-File an. Dort siehst du die Include-Reihenfolge und die #defines. Für WinAVR-20100110 hab ich das Ergebnis angehängt; wie du siehst, wird ADCSRA definiert.
Hi, in meiner i-File, die generiert wurde, ist kein #define-Eintrag für ADCRSA vorhanden. Soll ich avr-libc mal neuinstallieren?
Stefan schrieb: > Hi, > > in meiner i-File, die generiert wurde, ist kein #define-Eintrag für > ADCRSA vorhanden. ADCSRA
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.