Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: XRangePingPong XRange-LoRaWAN-lmic-app lora-transceiver
Fork of SX1276Lib by
Diff: sx1276/sx1276.cpp
- Revision:
- 4:f0ce52e94d3f
- Parent:
- 0:e6ceb13d2d05
- Child:
- 5:11ec8a6ba4f0
diff -r ca84be1f3fac -r f0ce52e94d3f sx1276/sx1276.cpp
--- a/sx1276/sx1276.cpp Tue Aug 19 09:15:01 2014 +0000
+++ b/sx1276/sx1276.cpp Wed Aug 20 06:29:01 2014 +0000
@@ -14,8 +14,6 @@
*/
#include "sx1276.h"
-#include "debug.h"
-
const FskBandwidth_t SX1276::FskBandwidths[] =
{
{ 2600 , 0x17 },
@@ -65,6 +63,8 @@
this->dioIrq[3] = &SX1276::OnDio3Irq;
this->dioIrq[4] = &SX1276::OnDio4Irq;
this->dioIrq[5] = NULL;
+
+ this->settings.State = IDLE;
}
SX1276::~SX1276( )
@@ -131,7 +131,7 @@
SetOpMode( RF_OPMODE_RECEIVER );
- wait( 0.001 );
+ wait_ms( 1 );
rssi = GetRssi( modem );
@@ -170,7 +170,7 @@
for( i = 0; i < 32; i++ )
{
- wait( 0.001 );
+ wait_ms( 1 );
// Unfiltered RSSI value reading. Only takes the LSB value
rnd |= ( ( uint32_t )Read( REG_LR_RSSIWIDEBAND ) & 0x01 ) << i;
}
@@ -514,7 +514,7 @@
{
case MODEM_FSK:
{
- airTime = floor( ( 8 * ( this->settings.Fsk.PreambleLen +
+ airTime = ceil( ( 8 * ( this->settings.Fsk.PreambleLen +
( ( Read( REG_SYNCCONFIG ) & ~RF_SYNCCONFIG_SYNCSIZE_MASK ) + 1 ) +
( ( this->settings.Fsk.FixLen == 0x01 ) ? 0.0 : 1.0 ) +
( ( ( Read( REG_PACKETCONFIG1 ) & ~RF_PACKETCONFIG1_ADDRSFILTERING_MASK ) != 0x00 ) ? 1.0 : 0 ) +
@@ -644,7 +644,7 @@
if( ( Read( REG_OPMODE ) & ~RF_OPMODE_MASK ) == RF_OPMODE_SLEEP )
{
Standby( );
- wait( 0.001 );
+ wait_ms( 1 );
}
// Write payload buffer
WriteFifo( buffer, size );
@@ -721,7 +721,7 @@
Write( REG_LR_IRQFLAGSMASK, //RFLR_IRQFLAGS_RXTIMEOUT |
//RFLR_IRQFLAGS_RXDONE |
//RFLR_IRQFLAGS_PAYLOADCRCERROR |
- //RFLR_IRQFLAGS_VALIDHEADER |
+ RFLR_IRQFLAGS_VALIDHEADER |
RFLR_IRQFLAGS_TXDONE |
RFLR_IRQFLAGS_CADDONE |
RFLR_IRQFLAGS_FHSSCHANGEDCHANNEL |
@@ -729,7 +729,6 @@
// DIO0=RxDone
Write( REG_DIOMAPPING1, ( Read( REG_DIOMAPPING1 ) & RFLR_DIOMAPPING1_DIO0_MASK ) | RFLR_DIOMAPPING1_DIO0_00 );
- Write( REG_DIOMAPPING1, ( Read( REG_DIOMAPPING1 ) & RFLR_DIOMAPPING1_DIO3_MASK ) | RFLR_DIOMAPPING1_DIO3_01 );
Write( REG_LR_FIFORXBASEADDR, 0 );
Write( REG_LR_FIFOADDRPTR, 0 );
}
@@ -865,29 +864,27 @@
void SX1276::SetModem( ModemType modem )
{
- if( this->settings.Modem == modem )
- {
- return;
- }
-
- this->settings.Modem = modem;
- switch( this->settings.Modem )
+ if( this->settings.Modem != modem )
{
- default:
- case MODEM_FSK:
- SetOpMode( RF_OPMODE_SLEEP );
- Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_OFF );
-
- Write( REG_DIOMAPPING1, 0x00 );
- Write( REG_DIOMAPPING2, 0x30 ); // DIO5=ModeReady
- break;
- case MODEM_LORA:
- SetOpMode( RF_OPMODE_SLEEP );
- Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_ON );
-
- Write( REG_DIOMAPPING1, 0x00 );
- Write( REG_DIOMAPPING2, 0x00 );
- break;
+ this->settings.Modem = modem;
+ switch( this->settings.Modem )
+ {
+ default:
+ case MODEM_FSK:
+ SetOpMode( RF_OPMODE_SLEEP );
+ Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_OFF );
+
+ Write( REG_DIOMAPPING1, 0x00 );
+ Write( REG_DIOMAPPING2, 0x30 ); // DIO5=ModeReady
+ break;
+ case MODEM_LORA:
+ SetOpMode( RF_OPMODE_SLEEP );
+ Write( REG_OPMODE, ( Read( REG_OPMODE ) & RFLR_OPMODE_LONGRANGEMODE_MASK ) | RFLR_OPMODE_LONGRANGEMODE_ON );
+
+ Write( REG_DIOMAPPING1, 0x00 );
+ Write( REG_DIOMAPPING2, 0x00 );
+ break;
+ }
}
}
@@ -1055,7 +1052,7 @@
}
rxTimeoutTimer.detach( );
- if( (rxError != NULL ) )
+ if( ( rxError != NULL ) )
{
rxError( );
}
