Code Blocks und AVR-GCC: Probleme mit ADC Makros, Compiler: ADCSRA nicht deklariert

Gast #2109749
Lesenswert?

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.
Persönliche Seite #2109884
Lesenswert?

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.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren