PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RFM12b Lib von Hansinator Atmel studio 7 Include Problem



Live85
08.07.2018, 01:18
33536 33537

Hallo, ich hoffe ihr könnt mir helfen, ich bin ein totaler anfänger...
ich versuche seit tagen den test Code für ein RFM12 funkmodul zum laufen zu bekommen, die library und den test code habe ich von dieser seite http://www.jacob-roboter.de/basteleien/rfm12-funkmodule/ .. der compiler ist nur am fehler schmeissen.
Ich habe die lib und ihre Unterordner im toolchain und im Projektordner bekannt gemacht, er findet auch alle Header und source dateien im Ordner, also gehe ich davon aus das dass "includ" geklappt hat, leider bekommen ich immer noch fehler an fehler und wenn ich es mal geschaft habe ein teil anzuarbeiten kommen auf einmal ganz andere fehler.

was kann ich noch tun ???

021aet04
08.07.2018, 08:11
Was mir auffällt ist das einige Dinge nicht deklariert sind (".... undeclared (first use in function)" ). Das machst du mit "define".
Als Beispiel (du musst kontrollieren welcher Port das genau ist): #define PORT_SS PORTB


MfG Hannes

wkrug
08.07.2018, 09:13
Hast Du dich auch an die Beschreibung gehalten?
Zuerst musst Du von der externen Seite die entsprechende Library in dein Projekt Verzeichnis entpacken.
Da gibts dann einen Ordner mit dem Namen rfm12lib.
In diesem Ordner gibts dann eine Datei, die rfm12_config.h.demo heisst.
Diese Datei musst Du aus dem Unterordner in dein Projektverzeichnis hoch kopieren ( Verschieben würde ich die nicht, weil Du sonst kein Original mehr hast ) .
Diese hochkopierte Datei im Projektordner wird dann in rfm12_config.h umbenannt.
Diese Datei muss von Dir editiert und auf deinen benutzten Controller angepasst werden!
Dann sollte sich das Ganze compilieren lassen.

Warum in der rfm12.c und der rfm12.h zwei mal die gleichen Dateien included werden versteh ich eigentlich nicht so ganz, aber so what.

Zum Verständnis.
Der C - Compiler arbeitet den Quellcode stur von oben nach unten ab.
Wenn eine Variable oder eine Zuweisung nicht definiert ist, kann er sie im weiteren Compilierungsprozess nicht verarbeiten ( er kennt sie ja nicht ).
Wenn da eine include Direktive drin ist, verarbeitet er zuerst die angegebene Datei komplett, bevor er wieder in der nächsten Zeile der Hauptdatei weitermacht.
Wenn der Compiler dann eine Datei nicht findet, spuckt er diese und alle darin gemachten Definitionen als Fehler raus.

Live85
08.07.2018, 20:53
Hallo, danke für die Antworten...
die deklariet ist alles, er spricht auch die verschieden Headerdateien (im Unterordner) an..

Die Headerdatei "rfm12_config.h" habe ich um benannt und die nötigen Einstellungen vorgenommen.


Zur Struktur, heisst dass das die Header und Source Dateien in der richtigen reinfolge Inkludiert werden müssen ? wenn ja wie bemkomme ich die reinfolge raus... 33538

wkrug
09.07.2018, 00:26
Ich hab versucht aus den angegebenen Dateien ein Projekt zu generieren.
Ergebnis es geht nicht.
Zuerst fehlt der Ordner uart und auch die Datei uart.h konnte ich nicht finden.
Den Ordner rfm12lib gibt es auch nicht.
Da scheint wohl einiges durcheinander gekommen zu sein.
So bekommt man das nicht compiliert.

Live85
11.07.2018, 14:54
Also ist die Lib Unbrauchbar ???
Hat jemand eine Alternative um das Funkmodul RFM12 anzusprechen ??

wkrug
11.07.2018, 22:02
Also ist die Lib Unbrauchbar ???
Das würde ich so nicht sagen.
Du musst halt eben gucken, welche Teile Du brauchst und welche nicht.
Und wie die lib eingebunden werden muß.
Da hilft leider nur viel Beschreibung lesen und ausprobieren.

Du kannst natürlich nicht erwarten, das andere das für Dich tun.

Wenn Dir der oben genannte Autor sein komplettes Projektverzeichnis zippt, kannst Du die sofort verwenden.

Live85
17.07.2018, 15:40
Hallo, ich möchte mir das Programm schon selbst erarbeiten, der Lerneffekt wäre fast Null wenn mir jemand das Programm schreibt....

Ich hoffte nur auf Hinweise auf den Fehler....

danke für deine mühe

wkrug
18.07.2018, 07:56
der Lerneffekt wäre fast Null wenn mir jemand das Programm schreibt..
Das hab Ich schon auch so verstanden.
Allerdings müsste Ich mir auch erstmal alle benötigten Teile des Programms zusammensuchen um dann die Fehler erkennen und nachvollziehen zu können.
Und das ist mir für eine Prog, das Ich eigentlich nicht brauche zu viel Aufwand.
Ich würde mal versuchen, den Mann mit dem funktionierenden Programm anzumailen.
Eventuell schickt Dir der eine .zip Datei seines Programmordners, die Du dann für Deine Zwecke umschreiben kannst.

Ansonsten bleibt Dir nur der Weg, dich durch die Dokumentation der Library durchzuarbeiten.

Ein Problem mit den RFM Modulen ist zusätzlich, das man sie unterschiedlich beschalten kann.
Das Programm muss also auch zur verwendeten Beschaltung passen, sonst geht es nicht.

Zu einer kompletten Dokumentation gehört also auch ein Schaltplan!