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: DISCO-L072CZ-LRWAN1_LoRa_PingPong
Fork of SX1276GenericLib by
Diff: sx1276/sx1276.cpp
- Revision:
- 18:99c6e44c1672
- Parent:
- 16:d447f8d2d2d6
- Child:
- 19:71a47bb03fbb
diff -r d447f8d2d2d6 -r 99c6e44c1672 sx1276/sx1276.cpp
--- a/sx1276/sx1276.cpp Tue Mar 31 13:35:04 2015 +0000
+++ b/sx1276/sx1276.cpp Fri Jul 10 14:24:45 2015 +0000
@@ -1050,42 +1050,45 @@
switch( this->settings.Modem )
{
case MODEM_FSK:
- irqFlags = Read( REG_IRQFLAGS2 );
- if( ( irqFlags & RF_IRQFLAGS2_CRCOK ) != RF_IRQFLAGS2_CRCOK )
+ if( this->settings.Fsk.CrcOn == true )
{
- // Clear Irqs
- Write( REG_IRQFLAGS1, RF_IRQFLAGS1_RSSI |
- RF_IRQFLAGS1_PREAMBLEDETECT |
- RF_IRQFLAGS1_SYNCADDRESSMATCH );
- Write( REG_IRQFLAGS2, RF_IRQFLAGS2_FIFOOVERRUN );
-
- if( this->settings.Fsk.RxContinuous == false )
+ irqFlags = Read( REG_IRQFLAGS2 );
+ if( ( irqFlags & RF_IRQFLAGS2_CRCOK ) != RF_IRQFLAGS2_CRCOK )
{
- this->settings.State = IDLE;
- rxTimeoutSyncWord.attach_us( this, &SX1276::OnTimeoutIrq, ( 8.0 * ( this->settings.Fsk.PreambleLen +
- ( ( Read( REG_SYNCCONFIG ) &
- ~RF_SYNCCONFIG_SYNCSIZE_MASK ) +
- 1.0 ) + 1.0 ) /
- ( double )this->settings.Fsk.Datarate ) * 1e6 ) ;
+ // Clear Irqs
+ Write( REG_IRQFLAGS1, RF_IRQFLAGS1_RSSI |
+ RF_IRQFLAGS1_PREAMBLEDETECT |
+ RF_IRQFLAGS1_SYNCADDRESSMATCH );
+ Write( REG_IRQFLAGS2, RF_IRQFLAGS2_FIFOOVERRUN );
+
+ if( this->settings.Fsk.RxContinuous == false )
+ {
+ this->settings.State = IDLE;
+ rxTimeoutSyncWord.attach_us( this, &SX1276::OnTimeoutIrq, ( 8.0 * ( this->settings.Fsk.PreambleLen +
+ ( ( Read( REG_SYNCCONFIG ) &
+ ~RF_SYNCCONFIG_SYNCSIZE_MASK ) +
+ 1.0 ) + 1.0 ) /
+ ( double )this->settings.Fsk.Datarate ) * 1e6 ) ;
+ }
+ else
+ {
+ // Continuous mode restart Rx chain
+ Write( REG_RXCONFIG, Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
+ }
+ rxTimeoutTimer.detach( );
+
+ if( ( rxError != NULL ) )
+ {
+ rxError( );
+ }
+ this->settings.FskPacketHandler.PreambleDetected = false;
+ this->settings.FskPacketHandler.SyncWordDetected = false;
+ this->settings.FskPacketHandler.NbBytes = 0;
+ this->settings.FskPacketHandler.Size = 0;
+ break;
}
- else
- {
- // Continuous mode restart Rx chain
- Write( REG_RXCONFIG, Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
- }
- rxTimeoutTimer.detach( );
-
- if( ( rxError != NULL ) )
- {
- rxError( );
- }
- this->settings.FskPacketHandler.PreambleDetected = false;
- this->settings.FskPacketHandler.SyncWordDetected = false;
- this->settings.FskPacketHandler.NbBytes = 0;
- this->settings.FskPacketHandler.Size = 0;
- break;
}
-
+
// Read received packet size
if( ( this->settings.FskPacketHandler.Size == 0 ) && ( this->settings.FskPacketHandler.NbBytes == 0 ) )
{
