mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Fehler: expected '=', ',', ';', 'asm' or '__attribute__'


Autor: kilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe einen ATmega32 und versuche diesen eine Spannung auswerten zu 
lassen. Dazu benutze eine Funktion aus dem AVR-gcc-Tutorial.
uint16_t ReadChannel(uint8_t mux) {  
 
  uint8_t i;
  uint16_t result;
 
  ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);

  ADMUX = mux;   
  ADMUX &= 0x3F; 
 
                                  
  ADCSRA |= (1<<ADSC);    
  
  while ( ADCSRA & (1<<ADSC) ) {
     ;       
  }
  
  result = ADCW;  
        
  result = 0; 
  
  for( i=0; i<4; i++ ) {
    ADCSRA |= (1<<ADSC);      
    
    while ( ADCSRA & (1<<ADSC) ) {
      ;       
    }
    
    result += ADCW;  
  }
  
  ADCSRA &= ~(1<<ADEN);
 
  result /= 4;   
 
  return result;
}


Wenn ich diese ganz normal in die main-datei schreibe, lässt sich diese 
ohne Fehlermeldung ausführen. Lagere ich sie aber in die Datei 
adc-routines.c aus und erstelle auch den entsprechenden Header-File,
uint16_t ReadChannel(uint8_t);

bekomme ich folgenden Output:

> "make.exe" all

-------- begin --------
avr-gcc (GCC) 4.2.2 (WinAVR 20071221)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is 
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR 
PURPOSE.


Compiling C: main.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=10000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -Wundef -MMD -MP 
-MF .dep/main.o.d main.c -o main.o
In file included from main.c:3:
./lcd-routines.h:15:1: warning: "F_CPU" redefined
<command-line>: warning: this is the location of the previous definition
main.c: In function 'main':
main.c:22: warning: implicit declaration of function 'itoa'
main.c:23: warning: passing argument 1 of 'lcd_string' from incompatible 
pointer type

Compiling C: adc-routines.c
avr-gcc -c -mmcu=atmega8 -I. -gdwarf-2 -DF_CPU=10000000UL -Os 
-funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall 
-Wstrict-prototypes -Wa,-adhlns=./adc-routines.lst  -std=gnu99 -Wundef 
-MMD -MP -MF .dep/adc-routines.o.d adc-routines.c -o adc-routines.o
adc-routines.c:1: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'ReadChannel'
make.exe: *** [adc-routines.o] Error 1

> Process Exit Code: 2

Verstehe nicht, was an meinem Programm falsch sein soll. Schon mal im 
Vorraus dankbar für Hilfe.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kilian, wie hälst du es denn in adc-routines.c mit den #includes?

Autor: kilian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Mann, ich bin ein Idiot! Die habe ich glatt vergessen. Jetzt 
funktioniert es. Danke für deine schnelle Antwort!

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.