Programm for decoding radio-signals sent by a ETH-Window-Shutter-Contact, received with a RFM12B-module
Diff: rfm12b.cpp
- Revision:
- 1:fc72e0bdb693
- Parent:
- 0:96794c9fc5a3
--- a/rfm12b.cpp Wed Mar 02 20:46:57 2011 +0000
+++ b/rfm12b.cpp Thu Apr 07 19:54:09 2011 +0000
@@ -2,39 +2,45 @@
#include "rfm12b.h"
#include "rfm.h"
+/*!
+ * \file rfm12b.cpp
+ * \brief class for rfm2b in rawmode - only receive part implemented
+ * \author Karl Zweimüller based on code from WED 6.9.2009
+ */
+
+
/** Class rfm12b for RFM12B transceiver module
http://www.hoperf.com/rf_fsk/rfm12b.htm
*/
/** rfm12b object
*/
-rfm12b::rfm12b(PinName mosi, PinName miso, PinName sclk, PinName nsel, PinName rxdata){
-
- rfm12b_spi = new SPI(mosi, miso, sclk); // mosi, miso, sclk
- cs = new DigitalOut(nsel); // nsel for chipselect
- m_pinRXData = new InterruptIn(rxdata); // rxData- generates interrupts
+rfm12b::rfm12b(PinName mosi, PinName miso, PinName sclk, PinName nsel, PinName rxdata) {
- init_spi(); // init the spi-device
+ rfm12b_spi = new SPI(mosi, miso, sclk); // mosi, miso, sclk
+ cs = new DigitalOut(nsel); // nsel for chipselect
+ m_pinRXData = new InterruptIn(rxdata); // rxData- generates interrupts
+
+ init_spi(); // init the spi-device
}
- /** init the spi-communication
- */
-void rfm12b::init_spi(){
+/** init the spi-communication
+*/
+void rfm12b::init_spi() {
// Setup the spi for 16 bit data : 1RW-bit 7 adressbit, 8 databit
// second edge capture, with a 5MHz clock rate
rfm12b_spi->format(16,0);
rfm12b_spi->frequency(5000000);
}
-
+
///////////////////////////////////////////////////////////////////////////////
//
// Initialise RF module
// This are parameters for ETH Comfort by ELV
///////////////////////////////////////////////////////////////////////////////
-void rfm12b::RFM_init(void)
-{
+void rfm12b::RFM_init(void) {
- // 0. Init the SPI backend
+ // 0. Init the SPI backend
//RFM_TESTPIN_INIT;
//RFM_READ_STATUS();
@@ -45,7 +51,7 @@
//RFM_CONFIG_EF |
RFM_CONFIG_BAND_868 |
RFM_CONFIG_X_11_0pf
- );
+ );
// 2. Power Management Command
//RFM_SPI_16(
@@ -56,10 +62,10 @@
RFM_SPI_16(
RFM_FREQUENCY |
RFM_FREQ_868Band(868.30)
- );
+ );
// 4. Data Rate Command
- RFM_SPI_16(RFM_DATA_RATE_9600);
+ RFM_SPI_16(RFM_DATA_RATE_9600);
// 5. Receiver Control Command
RFM_SPI_16(
@@ -69,7 +75,7 @@
RFM_RX_CONTROL_BW_134 |
RFM_RX_CONTROL_GAIN_0 |
RFM_RX_CONTROL_RSSI_73
- );
+ );
// 6. Data Filter Command
RFM_SPI_16(
@@ -77,13 +83,13 @@
//RFM_DATA_FILTER_ML |
//RFM_DATA_FILTER_DQD(3)
RFM_DATA_FILTER_ANALOG
- );
+ );
// 7. FIFO and Reset Mode Command
RFM_SPI_16(
RFM_FIFO_IT(8) |
RFM_FIFO_DR
- );
+ );
// 8. Receiver FIFO Read
@@ -94,13 +100,13 @@
RFM_AFC_EN |
RFM_AFC_OE |
RFM_AFC_FI
- );
+ );
// 10. TX Configuration Control Command
RFM_SPI_16(
RFM_TX_CONTROL_MOD_30 |
RFM_TX_CONTROL_POW_0
- );
+ );
// 11. Transmitter Register Write Command
@@ -116,18 +122,18 @@
// );
// 15. Status Read Command
- //RFM_SPI_16(RFM_TX_ON());
- RFM_SPI_16(RFM_RX_ON());
+ //RFM_SPI_16(RFM_TX_ON());
+ RFM_SPI_16(RFM_RX_ON());
}
///////////////////////////////////////////////////////////////////////////////
-
+
/** write and read 16 bit to device
*/
-uint16_t rfm12b::rfm_spi16(uint16_t outval){
+uint16_t rfm12b::rfm_spi16(uint16_t outval) {
uint16_t readval;
// Select the device by seting chip select low
@@ -138,7 +144,7 @@
// Deselect the device
cs->write(1);
wait_ms(1); // wait before going on
- return(readval);
+ return(readval);
}