Forum: Compiler & IDEs Beispiel aus gcc Tutorial


von Gizmo (Gast)


Lesenswert?

Hi Leute

habt Ihr ne Ahnung was für Headerfiles ich benötige damit bei mir das
Beispiel aus dem gcc Tutorial unter "aktivieren des ADC" auch
funktioniert ?

Compiler bringt folgende Fehlermeldungen:


neu.c:3: error: parse error before "channel"
neu.c:4: warning: return type defaults to `int'
neu.c:4: warning: function declaration isn't a prototype
neu.c: In function `ReadChannel':
neu.c:5: error: `uint8_t' undeclared (first use in this function)
neu.c:5: error: (Each undeclared identifier is reported only once
neu.c:5: error: for each function it appears in.)
neu.c:5: error: parse error before "i"
neu.c:6: error: `uint16_t' undeclared (first use in this function)
neu.c:8: error: `ADCSRA' undeclared (first use in this function)
neu.c:8: error: `ADEN' undeclared (first use in this function)
neu.c:8: error: `ADPS1' undeclared (first use in this function)
neu.c:8: error: `ADPS0' undeclared (first use in this function)
neu.c:11: error: `ADMUX' undeclared (first use in this function)
neu.c:11: error: `channel' undeclared (first use in this function)
neu.c:12: error: `REFS1' undeclared (first use in this function)
neu.c:12: error: `REFS0' undeclared (first use in this function)
neu.c:16: error: `ADSC' undeclared (first use in this function)
neu.c:17: error: `ADIF' undeclared (first use in this function)
neu.c:19: error: `result' undeclared (first use in this function)
neu.c:22: error: `i' undeclared (first use in this function)
neu.c:26: error: `ADC' undeclared (first use in this function)
neu.c:37:2: warning: no newline at end of file
make.exe: *** [neu.o] Error 1

der kennt wohl die Register nicht

Danke für eure Hilfe

von Jörg Wunsch (Gast)


Lesenswert?

Weiß gerade nicht, welches Tutorial genau, aber was sofort
auffällt:

<avr/io.h> => ADCSRA usw. (*)
<stdint.h> => uint8_t, uint16_t usw.

> neu.c:4: warning: return type defaults to `int'
> neu.c:4: warning: function declaration isn't a prototype

Sieht so aus, als hättest du hier ein SIGNAL(SIG_IRGENDWAS)
stehen und <avr/signal.h> vergessen.

(*) das braucht auch den passenden -mmcu=... Compilerschalter

von Gizmo (Gast)


Lesenswert?

jetzt Funktionierts
danke Jörg

von Gizmo (Gast)


Lesenswert?

eine Frage noch

Das is der Funktionskopf is klar:
uint16_t ReadChannel(uint8_t channel)

aber was is das für ein komischer Übergabeparameter?

(uint8_t channel)

von Jörg Wunsch (Gast)


Lesenswert?

Sicher doch der AD-Wandler-Kanal, oder?  Du kannst mit dem ADMUX
einen der verschiedenen AD-Pins auswählen.

von Gizmo (Gast)


Lesenswert?

Das is klar blos isses doch so:
Rückgabetyp Funktionsname(übergabeparameter:parametertyp)
was ist channel für ein Datentyp bzw. wo is der definiert ?

von Rufus T. Firefly (Gast)


Lesenswert?

.

  "was ist channel für ein Datentyp bzw. wo is der definiert ?"


Da steht alles:

uint16_t ReadChannel(uint8_t channel)


   channel ist vom Typ uint8_t
   der Rückgabetyp ist uint16_t

Glaub' ich daran, diese Frage (s.o.) hier wirklich gesehen zu haben?

Oder geht es darum, herauszufinden, was uint8_t ist? "unsigned char"
- wird's klarer?

von OldBug (Gast)


Lesenswert?

>Rückgabetyp Funktionsname(übergabeparameter:parametertyp)

Das ist so nicht ganz richtig.

<Rückgabetyp> <Funktionsname>([void|<Parametertyp & Parametername>])

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.