Skip to content

Commit 156b1b9

Browse files
committed
Issue #559 - Fix previous correction. It introduced an issue when setting FSK modem in continuous FSK Rx mode.
Update radio SX1272 and SX1276 to not start sync word timeout in case of continuous FSK Rx. The sync word timeout is now only started in single FSK Rx mode
1 parent e3910af commit 156b1b9

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/radio/sx1272/sx1272.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -868,8 +868,11 @@ void SX1272SetRx( uint32_t timeout )
868868
{
869869
SX1272SetOpMode( RF_OPMODE_RECEIVER );
870870

871-
TimerSetValue( &RxTimeoutSyncWord, SX1272.Settings.Fsk.RxSingleTimeout );
872-
TimerStart( &RxTimeoutSyncWord );
871+
if( rxContinuous == false )
872+
{
873+
TimerSetValue( &RxTimeoutSyncWord, SX1272.Settings.Fsk.RxSingleTimeout );
874+
TimerStart( &RxTimeoutSyncWord );
875+
}
873876
}
874877
else
875878
{
@@ -1210,7 +1213,6 @@ void SX1272OnTimeoutIrq( void* context )
12101213
{
12111214
// Continuous mode restart Rx chain
12121215
SX1272Write( REG_RXCONFIG, SX1272Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1213-
TimerStart( &RxTimeoutSyncWord );
12141216
}
12151217
else
12161218
{
@@ -1296,7 +1298,6 @@ void SX1272OnDio0Irq( void* context )
12961298
{
12971299
// Continuous mode restart Rx chain
12981300
SX1272Write( REG_RXCONFIG, SX1272Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1299-
TimerStart( &RxTimeoutSyncWord );
13001301
}
13011302

13021303
if( ( RadioEvents != NULL ) && ( RadioEvents->RxError != NULL ) )
@@ -1342,7 +1343,6 @@ void SX1272OnDio0Irq( void* context )
13421343
{
13431344
// Continuous mode restart Rx chain
13441345
SX1272Write( REG_RXCONFIG, SX1272Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1345-
TimerStart( &RxTimeoutSyncWord );
13461346
}
13471347

13481348
if( ( RadioEvents != NULL ) && ( RadioEvents->RxDone != NULL ) )

src/radio/sx1276/sx1276.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,8 +1022,11 @@ void SX1276SetRx( uint32_t timeout )
10221022
{
10231023
SX1276SetOpMode( RF_OPMODE_RECEIVER );
10241024

1025-
TimerSetValue( &RxTimeoutSyncWord, SX1276.Settings.Fsk.RxSingleTimeout );
1026-
TimerStart( &RxTimeoutSyncWord );
1025+
if( rxContinuous == false )
1026+
{
1027+
TimerSetValue( &RxTimeoutSyncWord, SX1276.Settings.Fsk.RxSingleTimeout );
1028+
TimerStart( &RxTimeoutSyncWord );
1029+
}
10271030
}
10281031
else
10291032
{
@@ -1371,7 +1374,6 @@ void SX1276OnTimeoutIrq( void* context )
13711374
{
13721375
// Continuous mode restart Rx chain
13731376
SX1276Write( REG_RXCONFIG, SX1276Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1374-
TimerStart( &RxTimeoutSyncWord );
13751377
}
13761378
else
13771379
{
@@ -1460,7 +1462,6 @@ void SX1276OnDio0Irq( void* context )
14601462
{
14611463
// Continuous mode restart Rx chain
14621464
SX1276Write( REG_RXCONFIG, SX1276Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1463-
TimerStart( &RxTimeoutSyncWord );
14641465
}
14651466

14661467
if( ( RadioEvents != NULL ) && ( RadioEvents->RxError != NULL ) )
@@ -1506,7 +1507,6 @@ void SX1276OnDio0Irq( void* context )
15061507
{
15071508
// Continuous mode restart Rx chain
15081509
SX1276Write( REG_RXCONFIG, SX1276Read( REG_RXCONFIG ) | RF_RXCONFIG_RESTARTRXWITHOUTPLLLOCK );
1509-
TimerStart( &RxTimeoutSyncWord );
15101510
}
15111511

15121512
if( ( RadioEvents != NULL ) && ( RadioEvents->RxDone != NULL ) )

0 commit comments

Comments
 (0)