Der Code ist relativ lang, deswegen hab ich das (für mich vermeindlich)
wichtigste raus getippt.
Die Variablen sind ganz am Anfang, vor der main() Funktion definiert.
(count könnte ich wahrscheinlich auch in der Funktion deklarieren, hab
ich aber geändert, um Fehler auszuschließen)
1 | uint32_t result_time[4];
|
2 | uint16_t count = 0;
|
Der Code wird aufgerufen in der while(1) nach der initialisierung von
ADC, Timer, sei() usw.
counter_ms wird tatsächlich im Compare Interrupt des Timers benutzt und
dort bei jedem Interrupt (alle 1 ms) um 1 erhöht.
Vor der Schleife wird diese Variable auf 0 zurückgesetzt um während des
Tests einen Overflow zu vermeiden.
Somit sind die zu erwartenden Werte zwischen 200 und maximal 5000.
Wie ich erkenne dass die Variable nach der while (ab Pos 2) 0 (oder
negativ) ist, ist dass die Abfrage mit
funktioniert.