15-03-2025, 17:05
(14-03-2025, 20:52)KaDe napisał(a): Witam.
Ja to bym ugryzł w ten sposób że, ów analogowy sygnał podnieść do takiego poziomu aby po wyprostowaniu i zachowaniu tylko górnych połówek sinusoidy przepuścić przez przerzutnik Schmitta po czym wprowadzić sygnał wyzwalający przerwanie które z chwilą np. zbocza narastającego mierzy jego długość (czas trwania od narastającego zbocza do opadającego). Czynność tą w celu uwiarygodnienia że mamy doczynienia z użytecznym sygnałem powtórzyć np. 10 razy i jeśli wynik jest taki sam (ewentualnie odrzucić inne wyniki) można założyć że był sygnał taki na jaki czekasz?
Z czasem program będziesz rozbudowywał (dopieszczał) o elementy które wyjdą w tzw. "praniu".
Od czegoś trzeba zacząć. Powodzenia.
Są dwie postawowe metody mierzenia częstotliwości - pomiar czasu trwania okresu sygnału i pomiar liczby impulsów w zadanym przedziale czasu. Proponujesz tą pierwszą metodę - z tym, że wtedy należy zadbać o powtarzalność przetworzenia sygnału anologowego na postać cyfrową. Komparator musi wykrywał przejście z zera na jedynkę i odwrotnie dokładnie w tej samej fazie sygnału - co wymaga stałej aplitudy sygnału analogowego.
Sam pomiar nawet nie wymaga używania przerwań - procki mają wejście ICP (input capture) - polega to na tym, że jest sobie licznik/timer pracujący cały czas w kółko. I gdy na wejściu ICP zmienia się sygnał aktualna wartość licznika jest kopiowana do dedykowanego rejestru sprzętowego. Potem można go odczytać programowo, odjąć poprzednią wartość i od razu dostajemy sprzętowo zmierzoną długość impulsu.

