adc bei atmega32 gibt fehler

Gast #1424893
Lesenswert?

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 #1424897
Lesenswert?

>../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 #1424924
Lesenswert?

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

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