Compiler- Fehler?

Gast #1828774
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...
Gast #1828805
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
#1828812
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.

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