[Si443x] Added -1 as alias for lowest supported frequency deviation
This commit is contained in:
parent
f4b2b6d257
commit
4c96b7b7ae
1 changed files with 7 additions and 12 deletions
|
@ -334,28 +334,23 @@ int16_t Si443x::setBitRate(float br) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t Si443x::setFrequencyDeviation(float freqDev) {
|
int16_t Si443x::setFrequencyDeviation(float freqDev) {
|
||||||
// set frequency deviation to lowest available setting (required for RTTY)
|
// set frequency deviation to lowest available setting (required for digimodes)
|
||||||
if(freqDev == 0.0) {
|
float newFreqDev = freqDev;
|
||||||
int16_t state = _mod->SPIsetRegValue(SI443X_REG_MODULATION_MODE_CONTROL_2, 0x00, 2, 2);
|
if(freqDev < 0.0) {
|
||||||
_mod->SPIwriteRegister(SI443X_REG_FREQUENCY_DEVIATION, 0x00);
|
newFreqDev = 0.625;
|
||||||
|
|
||||||
if(state == ERR_NONE) {
|
|
||||||
_freqDev = freqDev;
|
|
||||||
}
|
|
||||||
return(state);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RADIOLIB_CHECK_RANGE(freqDev, 0.625, 320.0, ERR_INVALID_FREQUENCY_DEVIATION);
|
RADIOLIB_CHECK_RANGE(newFreqDev, 0.625, 320.0, ERR_INVALID_FREQUENCY_DEVIATION);
|
||||||
|
|
||||||
// calculate raw frequency deviation value
|
// calculate raw frequency deviation value
|
||||||
uint16_t fdev = (uint16_t)(freqDev / 0.625);
|
uint16_t fdev = (uint16_t)(newFreqDev / 0.625);
|
||||||
|
|
||||||
// update registers
|
// update registers
|
||||||
int16_t state = _mod->SPIsetRegValue(SI443X_REG_MODULATION_MODE_CONTROL_2, (uint8_t)((fdev & 0x0100) >> 6), 2, 2);
|
int16_t state = _mod->SPIsetRegValue(SI443X_REG_MODULATION_MODE_CONTROL_2, (uint8_t)((fdev & 0x0100) >> 6), 2, 2);
|
||||||
_mod->SPIwriteRegister(SI443X_REG_FREQUENCY_DEVIATION, (uint8_t)(fdev & 0xFF));
|
_mod->SPIwriteRegister(SI443X_REG_FREQUENCY_DEVIATION, (uint8_t)(fdev & 0xFF));
|
||||||
|
|
||||||
if(state == ERR_NONE) {
|
if(state == ERR_NONE) {
|
||||||
_freqDev = freqDev;
|
_freqDev = newFreqDev;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(state);
|
return(state);
|
||||||
|
|
Loading…
Add table
Reference in a new issue