Also doch ausführlicher:

Die Startwerte werden zu Beginn eingelesen und nicht aktuallisiert. Dann wird bei jedem Durchlauf der Zähler erhöht auch wenn wir uns noch im schon gezählten Feld befinden.

Einfaches Zahlenbeispiel:

Mittelwert ist 350, start_var_l sei 200:

Dies hier wird nie gezählt weil (start_var_l>mittelwert) immer falsch ist:

if (data[0]<mittelwert && start_var_l>mittelwert) {
wechsel_l++;
}

Aber dafür wird hier bei jedem Schleifendurchgang mit (data[0]>mittelwert) gezählt weil (start_var_l<mittelwert) immer wahr ist:

if (data[0]>mittelwert && start_var_l<mittelwert) {
wechsel_l++;
}

Wenn ein Bitwechsel festgestellt wurde, muss der Wert dazu gespeichert werden um den nächsten Bitwechsel erkennen zu können.




@damaltor: Nach dem \t folgen zwei Leerzeichen