[SX127x] Added -1 as alias for lowest supported frequency deviation
This commit is contained in:
parent
f3c1887517
commit
ed4d6e8897
1 changed files with 8 additions and 2 deletions
|
@ -708,8 +708,14 @@ int16_t SX127x::setFrequencyDeviation(float freqDev) {
|
||||||
return(ERR_WRONG_MODEM);
|
return(ERR_WRONG_MODEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// set frequency deviation to lowest available setting (required for digimodes)
|
||||||
|
float newFreqDev = freqDev;
|
||||||
|
if(freqDev < 0.0) {
|
||||||
|
newFreqDev = 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
// check frequency deviation range
|
// check frequency deviation range
|
||||||
if(!((freqDev + _br/2.0 <= 250.0) && (freqDev <= 200.0))) {
|
if(!((newFreqDev + _br/2.0 <= 250.0) && (freqDev <= 200.0))) {
|
||||||
return(ERR_INVALID_FREQUENCY_DEVIATION);
|
return(ERR_INVALID_FREQUENCY_DEVIATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -719,7 +725,7 @@ int16_t SX127x::setFrequencyDeviation(float freqDev) {
|
||||||
|
|
||||||
// set allowed frequency deviation
|
// set allowed frequency deviation
|
||||||
uint32_t base = 1;
|
uint32_t base = 1;
|
||||||
uint32_t FDEV = (freqDev * (base << 19)) / 32000;
|
uint32_t FDEV = (newFreqDev * (base << 19)) / 32000;
|
||||||
state = _mod->SPIsetRegValue(SX127X_REG_FDEV_MSB, (FDEV & 0xFF00) >> 8, 5, 0);
|
state = _mod->SPIsetRegValue(SX127X_REG_FDEV_MSB, (FDEV & 0xFF00) >> 8, 5, 0);
|
||||||
state |= _mod->SPIsetRegValue(SX127X_REG_FDEV_LSB, FDEV & 0x00FF, 7, 0);
|
state |= _mod->SPIsetRegValue(SX127X_REG_FDEV_LSB, FDEV & 0x00FF, 7, 0);
|
||||||
return(state);
|
return(state);
|
||||||
|
|
Loading…
Add table
Reference in a new issue