Only access abs_spi_dma_rx_ once

This commit is contained in:
Unknown
2020-01-01 01:52:03 -05:00
parent 8ee478f629
commit 2dfff2a7d6
+4 -3
View File
@@ -373,11 +373,12 @@ void Encoder::abs_spi_cb(){
switch (config_.mode) {
case MODE_SPI_ABS_AMS: {
uint8_t parity_calc, parity_bit;
parity_calc = parity(abs_spi_dma_rx_[0]&0x7FFF);
parity_bit = abs_spi_dma_rx_[0] >>15;
auto rawVal = abs_spi_dma_rx_[0];
parity_calc = parity(rawVal & 0x7FFF);
parity_bit = rawVal >>15;
if (parity_calc == parity_bit) {
pos_abs_ = abs_spi_dma_rx_[0] & 0x3FFF;
pos_abs_ = rawVal & 0x3FFF;
// We are going to ignore values all high or low
// This might happen in normal operation, but its unlikely
// The filter will handle these cases