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


von Stefan (Gast)


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.

von Johann L. (gjlayde) Benutzerseite


Angehängte Dateien:

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.

von Stefan (Gast)


Lesenswert?

Hi,

in meiner i-File, die generiert wurde, ist kein #define-Eintrag für 
ADCRSA vorhanden.
Soll ich avr-libc mal neuinstallieren?

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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