From bbb6783656af4e605a4d568e575a3016834955ab Mon Sep 17 00:00:00 2001 From: Andre Frantzke Date: Fri, 7 Nov 2014 08:46:21 +0100 Subject: [PATCH] changed init values to match .bas example, modified TX routine to match example from RFM02_code.pdf --- rfm02.cpp | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/rfm02.cpp b/rfm02.cpp index 382bc91..b2bc6a3 100644 --- a/rfm02.cpp +++ b/rfm02.cpp @@ -82,6 +82,17 @@ void RFM02::writeRegister(uint8_t HighByte, uint8_t LowByte) { void RFM02::configureDeviceSettings() { + writeRegister(0xCC,0x00); // read status + writeRegister(0x93,0x62); // 868MHz Band +/- 90kHz Bandbreite + writeRegister(0xA6,0x86); // 868.35 MHz + //writeRegister(0xD0,0x40); // RATE/2 + writeRegister(0xC8,0x11); // 4.8kbps + writeRegister(0xC2,0x20); // Bit Sync active + writeRegister(0xC0,0x01); // disable TX + writeRegister(0xD2,0x40); // PLL 25% + writeRegister(0xB3,0x00); // -9 db + writeRegister(0xE0,0x00); // 'disable wakeup timer + /* writeRegister(0xCC,0x00); // read status writeRegister(0x90,0x82); // 868MHz Band +/- 90kHz Bandbreite writeRegister(0xA6,0x86); // 868.35 MHz @@ -90,7 +101,13 @@ void RFM02::configureDeviceSettings() { writeRegister(0xC2,0x20); // Bit Sync active writeRegister(0xB3,0x00); // 0dBm output power writeRegister(0xC0,0x01); // disable TX - + */ + digitalWrite(26, HIGH); + delay(100); + digitalWrite(26, LOW); + digitalWrite(26, HIGH); + delay(100); + digitalWrite(26, LOW); } // Data via FSK @@ -117,15 +134,15 @@ uint8_t i=8; while(i){ // do 8 times..., (any number of bit's will do, also 9 or 121) i=i-1; - digitalWrite(_pinFSK, LOW); //OUT_PORT_REG &= ~FSK; // first set Bitx as '0' - if( DataByte & BIT7 ) // if not '0' write over with '1' - //OUT_PORT_REG |= FSK; // ...write '1' if most significant bit is '1' - digitalWrite(_pinFSK, HIGH); // ...write '1' if most significant bit is '1' - //while(!(IN_PORT_REG & nIRQ)); // wait for the 0-1-edge of nIRQ, reading in the data - //while(IN_PORT_REG & nIRQ); // wait for 1-0-edge to send the last bit while(!(digitalRead(_pinNIRQ))); // wait for the 0-1-edge of nIRQ, reading in the data - while((digitalRead(_pinNIRQ))); // wait for the 0-1-edge of nIRQ, reading in the data + while((digitalRead(_pinNIRQ))); // wait for 1-0-edge to send the last bit + + if( DataByte & BIT7 ) // if not '0' write over with '1' + digitalWrite(_pinFSK, HIGH); // ...write '1' if most significant bit is '1' + else + digitalWrite(_pinFSK, LOW); //OUT_PORT_REG &= ~FSK; // first set Bitx as '0' + DataByte <<= 1; // shift DataByte one bit left to write the next bit } }