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 | }
|