07-12-2023, 09:46
(07-12-2023, 06:52)Jarewa0606 napisał(a): Żeby były bardziej prawdziwe wartości to czeka się nauka o timerach i ICP. Innego lepszego sposobu nie ma, uno ma timer sprzętowy ICP włąsnie do tego.
Właśnie - jeszcze potrzebne jest info jaki moduł/procek kolega Fondix używa. Jeśli ATMEGA to prosto. Jeśli jakiś inny to niekoniecznie.
Zasadniczo przy niskich częstotliwościach stosuje lepiej jest zastosować pomiar okresu sygnału. Timer liczący takty zegara (w miarę najszybszego) a na wejście ICP timera badany sygnał.
ICP to takie wejście, które może zgłosić przerwanie, ale dodatkowo w momencie wykrycia zbocza zapamiętywany jest w specjalnym rejestrze aktualny stan licznika. Można go _POTEM_ odczytać, bez specjalnego starania się o czas obsługi przerwania. Na kolejnych przerwaniach można obliczyć różnicę pomiędzy aktualną wartością rejestru a wartością odczytaną (i gdzieś zapamiętaną) w poprzednim przerwaniu. W ten sposób otrzymujemu okres sygnału. Na bierząco można wyznaczać jego minimalną wartość, odpowiadającą maksymalnej częstotliwości (f = 1/t). Taki sposób liczenia długości sygnały jest dużo dokładniejszy od pomiaru polegającego na odczytywaniu pinu IO. Ale trzeba użyć wejście ICP, których jest mało.

