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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.