www.mikrocontroller.net

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


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johann L. (gjlayde) Benutzerseite
Datum:
Angehängte Dateien:
  • bar.i (29,1 KB, 69 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich eine fehlerhafte avr-libc Installation oder eine urururalt 
Toolchain, falsche Toolchain-Pfade...?

Übersetz mal mit
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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Autor: Johann L. (gjlayde) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefan schrieb:
> Hi,
>
> in meiner i-File, die generiert wurde, ist kein #define-Eintrag für
> ADCRSA vorhanden.

ADCSRA

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.