mirror of
https://github.com/liberatedsystems/RNode_Firmware_CE.git
synced 2025-05-09 09:55:15 -04:00
Merge pull request #5 from tomelec/patch-1
LoRa: Enable LowDataRateOptimize for symbol length >16ms
This commit is contained in:
commit
3e866178f1
2 changed files with 18 additions and 0 deletions
16
LoRa.cpp
16
LoRa.cpp
|
@ -418,6 +418,8 @@ void LoRaClass::setSpreadingFactor(int sf)
|
|||
}
|
||||
|
||||
writeRegister(REG_MODEM_CONFIG_2, (readRegister(REG_MODEM_CONFIG_2) & 0x0f) | ((sf << 4) & 0xf0));
|
||||
|
||||
handleLowDataRate();
|
||||
}
|
||||
|
||||
long LoRaClass::getSignalBandwidth()
|
||||
|
@ -437,6 +439,18 @@ long LoRaClass::getSignalBandwidth()
|
|||
}
|
||||
}
|
||||
|
||||
void LoRaClass::handleLowDataRate(){
|
||||
int sf = (readRegister(REG_MODEM_CONFIG_2) >> 4);
|
||||
if ( long( (1<<sf) / (getSignalBandwidth()/1000)) > 16) {
|
||||
// set auto AGC and LowDataRateOptimize
|
||||
writeRegister(REG_MODEM_CONFIG_3, (1<<3)|(1<<2));
|
||||
}
|
||||
else {
|
||||
// set auto AGC
|
||||
writeRegister(REG_MODEM_CONFIG_3, (1<<2));
|
||||
}
|
||||
}
|
||||
|
||||
void LoRaClass::setSignalBandwidth(long sbw)
|
||||
{
|
||||
int bw;
|
||||
|
@ -464,6 +478,8 @@ void LoRaClass::setSignalBandwidth(long sbw)
|
|||
}
|
||||
|
||||
writeRegister(REG_MODEM_CONFIG_1, (readRegister(REG_MODEM_CONFIG_1) & 0x0f) | (bw << 4));
|
||||
|
||||
handleLowDataRate();
|
||||
}
|
||||
|
||||
void LoRaClass::setCodingRate4(int denominator)
|
||||
|
|
2
LoRa.h
2
LoRa.h
|
@ -82,6 +82,8 @@ private:
|
|||
|
||||
static void onDio0Rise();
|
||||
|
||||
void handleLowDataRate();
|
||||
|
||||
private:
|
||||
SPISettings _spiSettings;
|
||||
int _ss;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue