www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Compiler- Fehler?


Autor: zbf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,
ich verwende AVR Studio und mache gerade meine ersten Gehversuche.
Leider komme ich hier (trotz tollem Tutorium) nicht weiter...

Sieht jemand an folgenden Fehlermeldungen vll. was ich falsch mache?

Danke!


rm -rf main.o lcd.o adc.o  C_STARTUP.elf dep/* C_STARTUP.hex 
C_STARTUP.eep
Build succeeded with 0 Warnings...
avr-gcc -I"N:\abcd\.." -I"C:\Program Files\WinAVR-20100110\avr" 
-mmcu=atmega32 -Wall -gdwarf-2 -std=gnu99    -mmcu=atmega32 
-DF_CPU=8000000UL -Os -fsigned-char -MD -MP -MT main.o -MF dep/main.o.d
 -c  ../main.c

../main.c: In function 'main':
../main.c:335: warning: implicit declaration of function 'ADC_Init'
../main.c:378: warning: implicit declaration of function 'ADC_Read_Avg'
../main.c:329: warning: unused variable 'mein_zeichen'
../main.c:327: warning: unused variable 'lauf_laenge'
../main.c:325: warning: unused variable 'l'
../main.c:324: warning: unused variable 'k'
avr-gcc -I"N:\Eigene Dateien\Frank\Elektronik\AVR-Projects\C_STARTUP\.." 
-I"C:\Program Files\WinAVR-20100110\avr"  -mmcu=atmega32 -Wall -gdwarf-2 
-std=gnu99    -mmcu=atmega32          -DF_CPU=8000000UL -Os 
-fsigned-char -MD -MP -MT lcd.o -MF dep/lcd.o.d  -
c  ../lcd.c

avr-gcc -I"N:\Eigene Dateien\Frank\Elektronik\AVR-Projects\C_STARTUP\.." 
-I"C:\Program Files\WinAVR-20100110\avr"  -mmcu=atmega32 -Wall -gdwarf-2 
-std=gnu99    -mmcu=atmega32          -DF_CPU=8000000UL -Os 
-fsigned-char -MD -MP -MT adc.o -MF dep/adc.o.d  -
c  ../adc.c

../adc.c: In function 'ADC_Init':
../adc.c:6: error: 'uint16_t' undeclared (first use in this function)
../adc.c:6: error: (Each undeclared identifier is reported only once
../adc.c:6: error: for each function it appears in.)
../adc.c:6: error: expected ';' before 'result'
../adc.c:8: error: 'ADMUX' undeclared (first use in this function)
../adc.c:8: error: 'REFS0' undeclared (first use in this function)
../adc.c:9: error: 'ADCSRA' undeclared (first use in this function)
../adc.c:9: error: 'ADPS1' undeclared (first use in this function)
../adc.c:9: error: 'ADPS0' undeclared (first use in this function)
../adc.c:10: error: 'ADEN' undeclared (first use in this function)
../adc.c:15: error: 'ADSC' undeclared (first use in this function)
../adc.c:19: error: 'result' undeclared (first use in this function)
../adc.c:19: error: 'ADCL' undeclared (first use in this function)
../adc.c:20: error: 'ADCH' undeclared (first use in this function)
../adc.c:21: error: expected expression before ')' token
../adc.c:21: warning: 'return' with a value, in function returning void
../adc.c: At top level:
../adc.c:26: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before 'ADC_Read'
../adc.c:41: error: expected '=', ',', ';', 'asm' or '__attribute__' 
before 'ADC_Read_Avg'
make: *** [adc.o] Error 1
Build failed with 17 errors and 7 warnings...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sieht jemand an folgenden Fehlermeldungen vll. was ich falsch mache?
Du bindest nicht alle nötigen Header ein...

Zeig doch mal deine Source-Files.

Autor: zbf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Die 3 source-codes hab ich verwendet.
lcd.h und main.h

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jetzt gehst du dein main.c mal von oben nach unten durch.
Und fragst dich bei jeder Zeile, ob sie dem Compiler mitteilt, dass es 
eine Funktion ADC_Init gibt

(Was macht eigentlich der Inhalt von lcd.h in main.c. Das gehört da so 
nicht rein. Du inkludierst ja sowieso lcd.h)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: zbf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger schrieb:
> (Was macht eigentlich der Inhalt von lcd.h in main.c. Das gehört da so
> nicht rein. Du inkludierst ja sowieso lcd.h)

Ja das hab ich aus der Not heraus gemacht, weil ich nicht geschafft hab, 
lcd.h zu inkludieren.


Ich hab jetzt in meinem Verzeichnis adc.h angelegt und in main.c 
folgends editiert:

#include "adc.h"

adc.h enthällt folgende Prototypen:

void ADC_Init(void);
uint16_t ADC_Read( uint8_t channel );
uint16_t ADC_Read_Avg( uint8_t channel, uint8_t average );

funktioniert aber trotzdem nicht.
immernoch 17 errors

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
zbf schrieb:

> funktioniert aber trotzdem nicht.
> immernoch 17 errors

Dann fang mit dem ersten an ihn zu bearbeiten.

Immer daran denken: Jedes *.c File wird für sich selbst compiliert.

Wenn du in adc.c zb das ADMUX Register verwenden willst, dann musst du 
in adc.c auch etwas inkludieren, was den Compiler mit dem ADMUX Register 
bekannt macht. Zum Bleistift <avr/io.h>

Wenn du in adc.c den Datentyp uint16_t verwenden willst, dann musst du 
in adc.c etwas inkludieren, was den Compiler mit uint16_t bekannt macht.


Was du in main.c inkludierst, interessiert den Compiler nicht, wenn er 
adc.c compiliert. Denn: Jedes *.c File wird für sich selbst, völlig 
eigenständig und losgelöst von allen anderen, compiliert.

Autor: zbf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke dir.

Autor: Klaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaaaaa, der Compiler ist mal wieder Schuld =)  Ich liebe solche Threads 
:D

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.