Skip to content

Commit b0652f2

Browse files
committed
Correct bitslip 'endianness'
1 parent dc6d9ad commit b0652f2

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

ch32v305/src/hw/i2s_hw.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ static void i2s_process_buf(volatile uint16_t const *src_words)
9999
uint32_t coincidences = 0;
100100
for(size_t i = 0; i < I2S_RX_DMA_CHUNK_WORDS - 4; i += 2U)
101101
{
102-
uint32_t sample_32 = ((uint32_t)src_words[i] << 16) | src_words[i + 1U];
102+
uint32_t sample_32 = ((uint32_t)src_words[i + 1U] << 16) | src_words[i];
103103
bool first_two_bits_same = (sample_32 >> 31) == ((sample_32 >> 30) & 1);
104104
bool last_bit_different = (sample_32 >> 31) != (sample_32 & 1);
105105
coincidences += first_two_bits_same && last_bit_different;
@@ -325,7 +325,7 @@ bool i2s_needs_reset(void)
325325
if ((s_i2s_reset_coincidences < s_i2s_coincidences_samples / 2 - thres) ||
326326
(s_i2s_reset_coincidences > s_i2s_coincidences_samples / 2 + thres)) {
327327
// Is bitslipped, request reset outside the ISR.
328-
uint32_t sample_32 = ((uint32_t)s_rx_dma_buf[0] << 16) | s_rx_dma_buf[1];
328+
uint32_t sample_32 = ((uint32_t)s_rx_dma_buf[1] << 16) | s_rx_dma_buf[0];
329329
printf("coincidences: %ld/%ld, thres: %ld, sample: %08lX\n", s_i2s_reset_coincidences, s_i2s_coincidences_samples, thres, sample_32);
330330
ret = true;
331331
}

0 commit comments

Comments
 (0)