Witam,
Próbuje napisać program do licznika częstotliwości na 9 wyświetlaczach 7 segmentowych (z czego 2 wyświetlać miały by tylko jednostkę Hz) - coś na wzór tego projektu:
http://mdiy.pl/miernik-czestotliwosci-na-avr-od-1hz-do-10mhz/
Z tym, że w języku C i na procesor ATMega8. Wystarczy mi zakres do około 1MHz.
Kwarc 16MHz, fusebity C9/FF.
Procedura obsługująca wyświetlacze jakoś już działa (choć nie wiem czy jest to optymalne rozwiązanie) - w przerwaniu od Timera2 multipleksują się wyświetlacze, następnie "wstrzelam" się poprzez instrukcje switch w pętli while(1) w chwilę kiedy wysterowany jest dany wyświetlacz i zapalam jego odpowiednie segmenty.
Z Timera0 chciałem zrobić postawę czasu (odmierzał by dokładnie 1 sek.), i zliczać ilość przychodzących w tym czasie impulsów na nóżkę T1 (pin PD5 procesora) - następnie wynik idzie do zmiennej x i jest wyświetlany na wyświetlaczach.
Niestety program nie działa jak powinien i nie mogę już dojść co jest nie tak - wyświetla liczby od 0 do 30 gdy T1 wisi w powietrzu, gdy zewrę do masy wyświetla 0.
Proszę o pomoc w poprawieniu kodu.
Pozdrawiam !
Próbuje napisać program do licznika częstotliwości na 9 wyświetlaczach 7 segmentowych (z czego 2 wyświetlać miały by tylko jednostkę Hz) - coś na wzór tego projektu:
http://mdiy.pl/miernik-czestotliwosci-na-avr-od-1hz-do-10mhz/
Z tym, że w języku C i na procesor ATMega8. Wystarczy mi zakres do około 1MHz.
Kwarc 16MHz, fusebity C9/FF.
Procedura obsługująca wyświetlacze jakoś już działa (choć nie wiem czy jest to optymalne rozwiązanie) - w przerwaniu od Timera2 multipleksują się wyświetlacze, następnie "wstrzelam" się poprzez instrukcje switch w pętli while(1) w chwilę kiedy wysterowany jest dany wyświetlacz i zapalam jego odpowiednie segmenty.
Z Timera0 chciałem zrobić postawę czasu (odmierzał by dokładnie 1 sek.), i zliczać ilość przychodzących w tym czasie impulsów na nóżkę T1 (pin PD5 procesora) - następnie wynik idzie do zmiennej x i jest wyświetlany na wyświetlaczach.
Niestety program nie działa jak powinien i nie mogę już dojść co jest nie tak - wyświetla liczby od 0 do 30 gdy T1 wisi w powietrzu, gdy zewrę do masy wyświetla 0.
Proszę o pomoc w poprawieniu kodu.
Pozdrawiam !
Kod: C / C++