undefined reference to "rc5_data"

Gast #3044674
Lesenswert?

Hallo,

habe mir die Dateien von Herr Dannegger geladen, da ich mir eine RC5 
Fernsteuerung bauen möchte. Er hat ja drei Dateien "RC5.C, Main.c und 
main.h"

Main.c und Main.h werden verknüpft indem main.c folgende Codezeile hat 
#include "main.h". In main.h ist eine Variable  namens "rc5_data". Wenn 
ich ejtzt kompiliere bekomme ich folgenden Fehler: ...c:20: undefined 
reference to `rc5_data' und das 3x mal. Ich denke mal das liegt an der 
Verlinkungen der Dateien, aber ich habe sie doch includet. Benutze AVR 
Studio 4.15 Build 623.

Wäre schön wenn jemand helfen kann!

Gruß Questionmark :)
Gast #3045759
Lesenswert?

Ja ich meine einen Decoder, also ich sende mit einer Fernbedienung ein
RC5-Codiertes Signal und meine IR-Diode gibt dieses Signal an den uC
weiter.
So einen Code benötige ich,  kennt  evtll. jemand eine Website wo man
sich dieses  downloaden kann?

Wäre super :)
Gast #3045810
Lesenswert?

Was nutzt dir wein weiterer Decoder, du hast doch schon einen?

Dein Problem ist ein ganz anderes: Du hast das Prokejt im AVR-Studio 
nicht richtig angelegt.

Links oben gibt es in der Ansicht den Order Sources. Dort musst du alle 
zum Prjekt gehörogen .c-Dateien importieren. Rechte Maustaste hilft 
weiter ;)

Dann klappt das auch mit dem linken ohne Fehlermeldung.

Oliver
Gast #3045819
Lesenswert?

Hm wenn ich ein neues Projekt anlege, den Code in die  main.c kopiere, 
ein  neues Headerfile  erstelle und als  rc5.h abspeichere, die  main.c 
kompiliere kommt ein Fehler das  in  der  main.c Variablen undefiniert 
sind, verständlich sind ja nur  in  rc5.h  deklariert das ist  halt echt 
komisch warum der das nicht verlinkt...
Gast #3045846
Lesenswert?

Da fehlt keine Variable, da fehlt das define für F_CPU.
Schua halt mal in rc5....h nach, ob das da definiert ist. Vermutlich 
nicht, denn das macht man üblicherweise in den Compileroptionen.


Prokect->Optionen (oder Settings), da gibt es ein Eingabefeld für F_CPU.

Oliver
Moderator Persönliche Seite #3045877
Lesenswert?

Questionmark schrieb:
> ....avr/lib/avr4/crtm8.o:(.init9+0x0): undefined reference to `main'

Dann schreib Dir doch eine Funktion main()! main() ist die 
C-Hauptfunktion, von der alles andere aus gestartet wird. Da rufst Du 
dann den RC5-Decoder auf und fertig.

Da Du offenbar von C überhaupt keine Ahnung hast, wie willst Du es dann 
überhaupt schaffen, aus dem decodierten RC5-Kommando irgendetwas 
sinnvolles als Aktion auszuführen?

Du brauchst erstmal:

 - ein C-Buch. Lerne C auf dem PC
 - AVR-Tutorial und  AVR-GCC-Tutorial. Lerne, den AVR zu programmieren

Fange mit einfachen Blink-Programmen an. In einem halben Jahr kannst Du 
dann nochmal wiederkommen. Vorher wird das nix.
#3045899
Lesenswert?

Questionmark schrieb:
> Ah lol, ich dachte die  wäre schon drin, alles klar  danke

Und was hat dich jetzt daran gehindert, den Code den du hast 
durchzuscrollen und zu überprüfen, ob du richtig gedacht hast?


Nur weil du wo anders Code zur Verfügung gestellt bekommst, entbindet 
dich das nicht davon
* selber mitzudenken
* C zu lernen bzw. zu können
* mit deinen Tools wie AVR-Studio umgehen zu können.

Es ist ein Trugschluss zu glauben, nur weil man heutzutage im Web alles 
downloaden kann, braucht man selber nichts mehr zu können bzw. zu 
lernen. Vor das 'Ich will' haben die Götter immer noch das 'Ich kann' 
gestellt. Und das hat sich seit 100000 Jahren nicht verändert und gilt 
heute noch genauso, wie es galt als wir von den Bäumen runterkamen.

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