[SX128x] Merge pull request #1206 from Jorropo/fix-signed-ranging-result
fix getRangingResult to properly account for signed numbers
This commit is contained in:
commit
885a921ea3
1 changed files with 2 additions and 1 deletions
|
@ -176,7 +176,8 @@ float SX1280::getRangingResult() {
|
||||||
RADIOLIB_ASSERT(state);
|
RADIOLIB_ASSERT(state);
|
||||||
|
|
||||||
// calculate the real result
|
// calculate the real result
|
||||||
uint32_t raw = ((uint32_t)data[0] << 16) | ((uint32_t)data[1] << 8) | data[2];
|
uint32_t uraw = ((uint32_t)data[0] << 16) | ((uint32_t)data[1] << 8) | data[2];
|
||||||
|
int32_t raw = (uraw & ((1<<23) - 1)) | (uraw >> 23 << 31);
|
||||||
return((float)raw * 150.0 / (4.096 * this->bandwidthKhz));
|
return((float)raw * 150.0 / (4.096 * this->bandwidthKhz));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue