diff --git a/src/utility.c b/src/utility.c index 3ad9f48..11d2308 100644 --- a/src/utility.c +++ b/src/utility.c @@ -15,10 +15,10 @@ uint8_t bit_count(uint8_t b) { uint16_t lfsr_update(void) { static uint16_t lfsr = 0xF00D; - uint16_t bit; - bit = ((lfsr >> 0) ^ (lfsr >> 2) ^ (lfsr >> 3) ^ (lfsr >> 5)) & 1; - lfsr = (lfsr >> 1) | (bit << 15); + lfsr ^= lfsr >> 7; + lfsr ^= lfsr << 9; + lfsr ^= lfsr >> 13; return lfsr; }