From 4502e9be9d27c58bf0fd944699177db4a07177d2 Mon Sep 17 00:00:00 2001 From: Zilog80 Date: Mon, 5 Jun 2017 13:32:38 +0200 Subject: [PATCH] rs41: sample_count wrap-around --- rs41/rs41ecc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rs41/rs41ecc.c b/rs41/rs41ecc.c index b7da128..5a3479b 100644 --- a/rs41/rs41ecc.c +++ b/rs41/rs41ecc.c @@ -185,7 +185,6 @@ int read_wav_header(FILE *fp) { #define LEN_movAvg 3 int movAvg[LEN_movAvg]; unsigned long sample_count = 0; -double bitgrenze = 0; int read_signed_sample(FILE *fp) { // int = i32_t int byte, i, sample, s=0; // EOF -> 0x1000000 @@ -256,20 +255,21 @@ int read_bits_fsk(FILE *fp, int *bit, int *len) { } int bitstart = 0; +double bitgrenze = 0; +unsigned long scount = 0; int read_rawbit(FILE *fp, int *bit) { int sample; - int n, sum; + int sum; int sample0, pars; sum = 0; - n = 0; sample0 = 0; pars = 0; if (bitstart) { - //n = 1; // d.h. bitgrenze = sample_count-1 (?) - bitgrenze = sample_count-1; + scount = 1; // (sample_count overflow/wrap-around) + bitgrenze = 0; // d.h. bitgrenze = sample_count-1 (?) bitstart = 0; } bitgrenze += samples_per_bit; @@ -284,8 +284,8 @@ int read_rawbit(FILE *fp, int *bit) { if (sample * sample0 < 0) pars++; // wenn sample[0..n-1]=0 ... sample0 = sample; - n++; - } while (sample_count < bitgrenze); // n < samples_per_bit + scount++; + } while (scount < bitgrenze); // n < samples_per_bit if (sum >= 0) *bit = 1; else *bit = 0;