[CC1101] Added -1 as alias for lowest supported frequency deviation

This commit is contained in:
jgromes 2021-02-13 17:41:34 +01:00
parent 3208d57c9a
commit c8ce3160fc

View file

@ -412,14 +412,13 @@ int16_t CC1101::setRxBandwidth(float rxBw) {
} }
int16_t CC1101::setFrequencyDeviation(float freqDev) { int16_t CC1101::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 = SPIsetRegValue(CC1101_REG_DEVIATN, 0, 6, 4); if(freqDev < 0.0) {
state |= SPIsetRegValue(CC1101_REG_DEVIATN, 0, 2, 0); newFreqDev = 1.587;
return(state);
} }
RADIOLIB_CHECK_RANGE(freqDev, 1.587, 380.8, ERR_INVALID_FREQUENCY_DEVIATION); RADIOLIB_CHECK_RANGE(newFreqDev, 1.587, 380.8, ERR_INVALID_FREQUENCY_DEVIATION);
// set mode to standby // set mode to standby
SPIsendCommand(CC1101_CMD_IDLE); SPIsendCommand(CC1101_CMD_IDLE);
@ -427,7 +426,7 @@ int16_t CC1101::setFrequencyDeviation(float freqDev) {
// calculate exponent and mantissa values // calculate exponent and mantissa values
uint8_t e = 0; uint8_t e = 0;
uint8_t m = 0; uint8_t m = 0;
getExpMant(freqDev * 1000.0, 8, 17, 7, e, m); getExpMant(newFreqDev * 1000.0, 8, 17, 7, e, m);
// set frequency deviation value // set frequency deviation value
int16_t state = SPIsetRegValue(CC1101_REG_DEVIATN, (e << 4), 6, 4); int16_t state = SPIsetRegValue(CC1101_REG_DEVIATN, (e << 4), 6, 4);