Guten Abend, ich arbeite nun schon ewig daran 2 868Mhz RFM12 Module zum laufen zu bringen! Eigene Versuche mit http://www.mikrocontroller.net/articles/RFM12 brachten mich nicht weiter. Ich versuche nun einfach mal irgendwas zu senden und zu empfangen! Habe dazu diese Anleitung entdeckt: http://www.skutek.de/projekte/funkmodul/funkmodul.html Schaut ja ganz gut aus Hardware ist vorhanden, blos bräuchte ich mal einen kompletten Beispielcode. z.B. habe ich keine Ahnung was ich mit "RFM12_TX_DATA" in der Funktion "rfm12_data_io..." machen soll. Und wie ich den ganzen Rest deklarieren soll. Hat jemand zufälligerweise mal diesen Code benutzt und kann mir ein komplettes Beispiel zur Verfügung stellen? Das wäre wirklich sehr nett, ich versuche schon ewig da mal irgendwas zum laufen zu bringen! Ich wünsche noch einen schönen Abend! Mit freundlichen Grüßen Otto
>Eigene Versuche mit http://www.mikrocontroller.net/articles/RFM12 >brachten mich nicht weiter. Warum nicht? Probleme zeigen.
Hallo, habe mich nun noch einmal mit http://www.mikrocontroller.net/articles/RFM12 befasst. Gleichzeitig habe ich dazu das Programm von Benedikt K. Beitrag "Re: Beispielprogramm für RFM12 433MHz Funk-Module" benutzt. Rausgekommen ist der Code im Anhang für 868Mhz Modul. Änderungen: Grundkonfiguration 80xx auf 868Mhz angepasst. Frequenzeinstellung Axx auf 868,32 Mhz --> 1664 Und noch | eingefüt "RF_PORT =(1<<CS);" --> "RF_PORT |=(1<<CS);" muss das so? Reichen diese Einstellungen für ein 868Mhz Modul? Das angehängt RFM12 send.txt verstehe ich soweit, aber wie genau sende ich jetzt? Einfach anstatt send receive, aber wo wird dann das Interrupt Bit im Status Register abgefragt? Mit freundlichen Grüßen Otto
Otto schrieb: > Schaut ja ganz gut aus Hardware ist vorhanden, blos bräuchte ich mal > einen kompletten Beispielcode. z.B. habe ich keine Ahnung was ich mit > "RFM12_TX_DATA" in der Funktion "rfm12_data_io..." machen soll. > Und wie ich den ganzen Rest deklarieren soll. Eine etwas späte Antwort, aber hoffentlich nicht zu spät: Die Funktion rfm12_data_io() kann den Senderpuffer beschreiben (also Senden), das Empfangsfifo auslesen (also der Empfangsbetrieb) oder auch das Kontrollregister setzen/lesen. Dafür gibt es die drei Definitionen RFM12_TX_DATA, RFM12_RX_DATA und RFM12_REGISTER_DATA. Damit wird also die Funktion rfm12_data_io() mittels des letzten Parameters entsprechend gesteuert. Direkt auf der Webseite ist ja auch ein Beispiel, um Daten zu versenden. Die Initialisierung des Moduls erfolgt einfach mit den Funktionen rfm12_pin_init() und rfm12_init(), dabei ist natürlich die individuelle Pinbelegung in port_definitions.h entsprechend anzupassen (der Abschnitt mit den RFM12-Einträgen)! Beispielcode wäre also:
1 | uint16_t transmit_buffer[RFM12_TXBUFFER_LENGTH]; |
2 | |
3 | rfm12_pin_init(); |
4 | rfm12_init(); |
5 | |
6 | transmit_buffer[0] = 0xb8aa; //sync byte |
7 | transmit_buffer[1] = 0xb8aa; //sync byte |
8 | transmit_buffer[2] = 0xb8aa; //sync byte |
9 | transmit_buffer[3] = 0xb8aa; //sync byte |
10 | transmit_buffer[4] = 0xb82d; //sync pattern (high byte) |
11 | transmit_buffer[5] = 0xb8d4; //sync pattern (low byte) |
12 | |
13 | transmit_buffer[6] = <--- fortfolgende Einträge mit Nutzdaten befüllen |
14 | ...
|
15 | ...
|
16 | transmit_buffer[RFM12_TXBUFFER_LENGTH-2] = 0xb8aa; //sync byte |
17 | transmit_buffer[RFM12_TXBUFFER_LENGTH-1] = 0xb8aa; //sync byte |
18 | |
19 | |
20 | rfm12_data_io(transmit_buffer, receive_buffer, RFM12_TXBUFFER_LENGTH, RFM12_TX_DATA); |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.