SX1276 Ping Pong Demo Application

Dependencies:   SX1276Lib mbed

Fork of SX1276PingPong by Semtech

Files at this revision

API Documentation at this revision

Comitter:
GregCr
Date:
Wed Aug 20 06:29:39 2014 +0000
Parent:
0:1ed39951ab7b
Child:
2:59e108728d71
Commit message:
Release Candidate

Changed in this revision

SX1276Lib.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/SX1276Lib.lib	Tue Aug 19 12:48:26 2014 +0000
+++ b/SX1276Lib.lib	Wed Aug 20 06:29:39 2014 +0000
@@ -1,1 +1,1 @@
-http://mbed.org/users/GregCr/code/SX1276Lib/#ca84be1f3fac
+http://mbed.org/users/GregCr/code/SX1276Lib/#f0ce52e94d3f
--- a/main.cpp	Tue Aug 19 12:48:26 2014 +0000
+++ b/main.cpp	Wed Aug 20 06:29:39 2014 +0000
@@ -7,15 +7,15 @@
 
 
 /* Set this flag to '1' to use the LoRa modulation or to '0' to use FSK modulation */
-#define USE_MODEM_LORA  0
+#define USE_MODEM_LORA  1
 #define USE_MODEM_FSK   !USE_MODEM_LORA
 
-#define RF_FREQUENCY                                    869000000 // Hz
+#define RF_FREQUENCY                                    868000000 // Hz
 #define TX_OUTPUT_POWER                                 14        // 14 dBm
 
 #if USE_MODEM_LORA == 1
 
-    #define LORA_BANDWIDTH                              0         // [0: 125 kHz,
+    #define LORA_BANDWIDTH                              2         // [0: 125 kHz,
                                                                   //  1: 250 kHz,
                                                                   //  2: 500 kHz,
                                                                   //  3: Reserved]
@@ -32,7 +32,7 @@
 #elif USE_MODEM_FSK == 1
 
     #define FSK_FDEV                                    25e3      // Hz
-    #define FSK_DATARATE                                50e3      // bps
+    #define FSK_DATARATE                                9600      // bps
     #define FSK_BANDWIDTH                               50e3      // Hz
     #define FSK_AFC_BANDWIDTH                           83.333e3  // Hz
     #define FSK_PREAMBLE_LENGTH                         5         // Same for Tx and Rx
@@ -94,14 +94,12 @@
 double RssiValue = 0.0;
 double SnrValue = 0.0;
 
-DigitalOut Led( LED1 );
-
 int main() 
 {
     uint8_t i;
     bool isMaster = true;
     
-    debug("\n\r\n\r     SX1276 Ping Pong Demo Application \n\r");
+    debug( "\n\r\n\r     SX1276 Ping Pong Demo Application \n\r" );
         
 #if defined TARGET_NUCLEO_L152RE
     debug( DEBUG_MESSAGE, "         > Nucleo-L152RE Platform <\r\n" );
@@ -113,7 +111,8 @@
     debug( DEBUG_MESSAGE, "         > Untested Platform <\r\n" );
 #endif
     
-
+    debug( DEBUG_MESSAGE, "SX1276 Chipset Version = 0x%x \n\r", Radio.Read( REG_VERSION ) );
+    
     Radio.SetChannel( RF_FREQUENCY ); 
 
 #if USE_MODEM_LORA == 1
@@ -147,6 +146,8 @@
 #error "Please define a modem in the compiler options."
 
 #endif
+     
+    debug( DEBUG_MESSAGE, "Starting Ping-Pong loop\r\n" ); 
         
     Radio.Rx( RX_TIMEOUT_VALUE );
     
@@ -161,8 +162,6 @@
                 {
                     if( strncmp( ( const char* )Buffer, ( const char* )PongMsg, 4 ) == 0 )
                     {
-                        // Indicates on a LED that the received frame is a PONG
-                        Led = !Led;
                         debug( "Pong...\r\n" );
                         // Send the next PING frame            
                         Buffer[0] = 'P';
@@ -191,8 +190,6 @@
                 {
                     if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, 4 ) == 0 )
                     {
-                        // Indicates on a LED that the received frame is a PING
-                        Led = !Led;
                         debug( "Ping...\r\n" );
                         // Send the reply to the PONG string
                         Buffer[0] = 'P';
@@ -212,9 +209,6 @@
             State = LOWPOWER;
             break;
         case TX:
-            // Indicates on a LED that we have sent a PING [Master]
-            // Indicates on a LED that we have sent a PONG [Slave]
-            Led = !Led;
             if ( isMaster )
             {
                 debug("...Ping\r\n" );
@@ -310,8 +304,8 @@
 {
     debug( DEBUG_MESSAGE, ":OnRxTimeout\n\r" );
     Radio.Sleep( );
+    Buffer[ BufferSize ] = 0;
     State = RX_TIMEOUT;
-    Buffer[ BufferSize ] = 0;
 }
 
 void OnRxError( void )