Witam.
Tematów tego typu jest masa, przymierzam się do budowy (w zasadzie płyta bazowa jest) i własnego oprogramowania skali cyfrowej + może kilka dodatkowych funkcji do prostego qrp.
Na "pokładzie" ATMEGA168 20PU, wyświetlacz 16x2, obwód kształtujący sygnał wejściowy to zlinearyzowana bramka z 74HC00 + bufor, dzielnik /5 lub /10 na 74HC390 (taki miałem w szufladzie, hi), generator 20MHz (nie badałem stabilności na razie). Kod - C (WinAVR czyli AVR-GCC), opublikuję jak będę bliżej końca, choć to żadne odkrycie.
Pomiar częstotliwości w zasadzie działa (działa, ale jeszcze nie sprawdzałem z kalibrowanym generatorem), natomiast naszła mnie wątpliwość co do metodyki pomiaru.
W zdecydowanej większości projektów na Atmelach, sygnał cyfrowy podawany jest na wejście licznika 16bit TIMER1 (16bitow), natomiast TIMER0 (8bitów) służy za podstawę czasu. Po odpowiedniej liczbie przepełnień T0, uznajemy ze mamy "jakiś-tam" czas zliczania, robimy proste operacje arytmetyczne, i mamy wynik.
Spotkałem się natomiast z projektami gdzie jest odwrotnie - T0 zlicza impulsy wejściowe, natomiast T1 służy za podstawę czasu. Sam nie wiem co jest lepsze.
Na mój rozum, T0 który jest taktowany dużo większą częstotliwością (mierzoną, czyli powiedzmy, 1MHz) może, przy częstym (fwe/256) przeładowaniu opóźniać o jakieś takty T1, co odbije się na dokładności.
Z drugiej strony, jeśli T0 używamy jako podstawy czasu, to czy taktując 8bitowy licznik T0 z preskalera fcpu/1024, uzyskamy odpowiednio dokładną podstawę? (znów mogą wejść jakieś cykle zegara itp). Dokładność jaką bym chciał osiągnąć to co najmniej 100Hz.
A może jedna i druga metoda w zasadzie dają prawie równoważne rezultaty, a ja robię z igły widły
Pozdrawiam