rfm12lib
rfm12lib Release status: stable [box doku] | |
---|---|
Description | Die RFM12 Library ermöglicht es RF12(B) Module mit einem AVR zu steuern |
Author(s) | Hansinator, Tixiv, Soeren |
Last Version | 1.1.0 () |
Platform | AVR |
License | GPLv2 or later |
Download | GIT |
For an english version of this site go to RFM12 Library/EN.
Library Features
- Ein einfaches Paketformat, bestehend aus:
- Einem 8-bit (0..255) Pakettyp- oder Adress-feld
- Paketlänge bis zu 255 Bytes
- Eine simple Header Checksumme
- Interrupt oder Polling basierte Datenübertragung
- Verschiedene Frequenzbänder, abhängig von dem verwendeten Modul (433, 868 und 915 MHz)
- Collision avoidance (carrier sense)
- Synchronisierungsfunktion beim Datentransfer
- Hardware oder software SPI
- Nur-Sende-Modus, zum verkleinern der binaries
- Grundlegende ASK (amplitude shift keying) empfangs und sende Funktionalität (Für Funksteckdosen aus dem Baumarkt und ähnlichem)
- Low-battery detector (funktion des RFM12)
- Low-power Wakeup timer (funktion des RFM12)
Aktuelle Version
Die aktuelle Version ist auf Github zu finden: librfm12
Experimental 1.1.1
- Support für RFM12BP, bzw. Hooks für RX/TX Befehle (ungetestet)
Quellcode:
svn co https://www.das-labor.org/storage/LaborLib/rfm12/tags/rfm12-1.1.1-experimental/
Dokumentation
Die online Dokumentation zur Version 1.0.0 findet sich hier:
http://www.hansinator.de/rfm12lib/
Eine gepackte Version zum Download gibt es hier:
http://www.das-labor.org/files/rfm12lib_doc_1_0_0.zip
Die Doku zu Version 1.1. ist identisch zu der Doku der Version 1.0
Download
Den source der Version 1.1.0 gibt es hier als ZIP Datei zum Download (MD5: 4545ad72782bf9465c1be109ecce9da5).
Alternativ gibt es den aktuellsten Entwicklungsstand in unserem Subversion repository. Die sourcen sind entweder im web einsehbar, oder lassen sich direkt auschecken mit dem Kommando:
svn co https://www.das-labor.org/storage/LaborLib/rfm12/trunk
Benutzungsbeispiel
Die Datei rfm12_config.h enthält die gesamte Konfiguration der Library, siehe Dokumentation.
Hier ist ein Beispiel zur Benutzung der Library:
uint8_t teststring[] = "teststring\r\n"; uint8_t packettype = 0xEE; rfm12_init(); /* initialize the library */ sei(); while (23) { /* ... */ rfm12_tx (sizeof(teststring), packettype, teststring); rfm12_tick(); /* periodic tick function - call that one once in a while */ }