From 4d292d3ca0c09a05b1f3e92e7bc90290225f340d Mon Sep 17 00:00:00 2001 From: tharexde Date: Sun, 14 Jun 2020 14:51:48 +0200 Subject: [PATCH] fixed: first bit of em4x50 word was skipped in case of a "0" -> first transition in raw Manchester decoding is now taken into account --- common/lfdemod.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/lfdemod.c b/common/lfdemod.c index ee6d6afe0..89910488d 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -1537,6 +1537,11 @@ static uint16_t cleanAskRawDemod(uint8_t *bits, size_t *size, int clk, int inver getNextHigh(bits, *size, high, &pos); // getNextLow(bits, *size, low, &pos); + // do not skip first transition + if ((pos > cl_2 - cl_4 - 1) && (pos <= clk + cl_4 + 1)) { + bits[bitCnt++] = invert ^ 1; + } + // sample counts, like clock = 32.. it tries to find 32/4 = 8, 32/2 = 16 for (size_t i = pos; i < *size; i++) { if (bits[i] >= high && waveHigh) {