Witam!
To mój pierwszy post, więc proszę o wyrozumiałość.
Skonstruowałem licznik impulsów - częstościomierz, w oparciu o projekt AVT5025 (Mikroprocesorowy wykrywacz metali).
Sonda wykrywacza umieszczona będzie przy bramie wjazdowej na parking i jeśli pojawi się nad nią samochód to na danym pinie mikrokontrolera pojawi się stan wysoki. Układ ma po prostu wykrywać pojazdy wjeżdżające na parking.
Schemat wygląda mniej więcej tak:
Na wejście T1 podaje sygnał z sondy o f~ 108 kHz. Jeśli zbliżę do sondy jakiś metalowy przedmiot (w domyśle będzie to samochód) częstotliwość wzrasta do około 120 kHz. Timer0 odlicza 1 sekundę, a w tym czasie Timer1 zlicza impulsy z "wykrywacza metalu".
Napisałem program tak, aby wystawił mi stan wysoki na pinie PC5 jeśli częstotliwość sygnału będzie większa niż 110 kHz, ale niestety kod nie jest poprawny, ponieważ cały czas mam tam stan wysoki.
Gdzie jest błąd w programie? Proszę o pomoc
To mój pierwszy post, więc proszę o wyrozumiałość.
Skonstruowałem licznik impulsów - częstościomierz, w oparciu o projekt AVT5025 (Mikroprocesorowy wykrywacz metali).
Sonda wykrywacza umieszczona będzie przy bramie wjazdowej na parking i jeśli pojawi się nad nią samochód to na danym pinie mikrokontrolera pojawi się stan wysoki. Układ ma po prostu wykrywać pojazdy wjeżdżające na parking.
Schemat wygląda mniej więcej tak:
Na wejście T1 podaje sygnał z sondy o f~ 108 kHz. Jeśli zbliżę do sondy jakiś metalowy przedmiot (w domyśle będzie to samochód) częstotliwość wzrasta do około 120 kHz. Timer0 odlicza 1 sekundę, a w tym czasie Timer1 zlicza impulsy z "wykrywacza metalu".
Napisałem program tak, aby wystawił mi stan wysoki na pinie PC5 jeśli częstotliwość sygnału będzie większa niż 110 kHz, ale niestety kod nie jest poprawny, ponieważ cały czas mam tam stan wysoki.
Kod: C / C++
Gdzie jest błąd w programie? Proszę o pomoc