adc bei atmega32 gibt fehler

Gast #1424893
Hallo

ich habe folgendes Programm geschrieben was die am ADC angelegte 
Spannung (ADC1) am Portb ausgeben soll (binär). Wenn ich es aber 
compilen will, kommen bei der   Zeile ADCSRA |= (1 << ADFR); folgende 
Fehler:

../test_obs_geht.c:11: error: 'ADFR' undeclared (first use in this 
function)
../test_obs_geht.c:11: error: (Each undeclared identifier is reported 
only once
../test_obs_geht.c:11: error: for each function it appears in.)

Ich verwende einen Atmega32 und schreibe die Programme mit AVR Studio 
und WinAVR.
In der AVR-GCC Anleitung auf dieser Seite ist genau beschrieben, dass 
das ADFR Bit gesetzt werden muss wenn man den Freerunning Modus 
aktivieren will.

Was ist in diesem Programm falsch, dass ich ständig diese Fehler 
bekomme?

Vielen Dank für Antworten.



1
#include <avr/io.h>
2

3

4
int main(void)
5
{
6
  int value_color;
7
  DDRB = 0xff;
8
  
9
  ADCSRA |= (1 << ADEN);
10
  ADCSRA |= (1 << ADSC);
11
  ADCSRA |= (1 << ADFR);
12
  ADCSRA |= (1 << ADPS0);
13
  ADCSRA |= (1 << ADPS1);
14
  ADCSRA |= (1 << ADPS2);
15

16
  
17

18
  //AVCC als referenz nehmen
19
  ADMUX |= (1 << REFS0);
20

21
  //kanal 1 auswählen
22
  ADMUX |= (1 << MUX0);
23

24
  while(1)
25
  {
26

27
  //werte aus dem ADC register in eine variable schieben
28
  value_color = ADCL;
29
  value_color += (ADCH << 8);
30

31
  //werte am port b ausgeben
32
  PORTB = value_color;
33

34

35
  
36
  }
37
}
Gast
>../test_obs_geht.c:11: error: 'ADFR' undeclared (first use in this
>function)

Sagt doch schon alles.
Dein "ADFR" kennt der Compiler nicht. Gibt es auch nicht.
Vielleicht meinst du "ADIF". Das brauchst du aber nur, wenn du den ADC 
mit seiner Interrupt-Routine bearbeitest.
Gast
Hi

>In der AVR-GCC Anleitung auf dieser Seite ist genau beschrieben, dass
>das ADFR Bit gesetzt werden muss wenn man den Freerunning Modus
>aktivieren will.

Mag schon sein. Aber nicht für den ATMega32. Dort läuft das anders. Der 
Autotrigger Mode wird über die ADTS-Bits im SFIOR-Register eingestellt.
Sieh dir das Datenblatt an.

MfG Spess

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.