Witam,
Mam mały problem z pomiarem prędkości za pomocą Timer'a (Bascom). Może napisze krótki opis problemu:
Na początku wyznaczyłem sobie ile impulsów na metr daje auto, wyszło 5,15. postanowiłem więc mierzyć w stałym czasie te impulsy i przeliczać na km. Jak się okazało takie podejście jest ok ale skoki prędkości są o kilka km np: 22, 25, 29 km/h ... Jest to kiepskie rozwiązanie. Czytając elektrodę znalazłem inne podejście do problemu polegające na liczeniu czasu pomiędzy kolejnymi impulsami, ale niestety moja wiedza dotyczącą timerów i przerwać jak dość kiepska i może znalazła by się osoba która by pomogła rozwiązać opisywany problem.
Znalazłem taką podpowiedz:
Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer.
robisz przerwanie dzialajace na zbocze np. narastające->
Dalej :
robisz zmienną flaga
w przerwaniu robisz
if flaga=1 then
start timer1
flaga=0
else
stop timer1
w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje
flaga=1
zerujesz licznik
endif
Jak to powinno dokładnie wyglądać w kodzie bascom, dodam jeszcze że Timer1 mam już wykorzystany do innego celu. Dokładnie nie rozumiem mechanizmu przerwania i przepełnienia?
Mam mały problem z pomiarem prędkości za pomocą Timer'a (Bascom). Może napisze krótki opis problemu:
Na początku wyznaczyłem sobie ile impulsów na metr daje auto, wyszło 5,15. postanowiłem więc mierzyć w stałym czasie te impulsy i przeliczać na km. Jak się okazało takie podejście jest ok ale skoki prędkości są o kilka km np: 22, 25, 29 km/h ... Jest to kiepskie rozwiązanie. Czytając elektrodę znalazłem inne podejście do problemu polegające na liczeniu czasu pomiędzy kolejnymi impulsami, ale niestety moja wiedza dotyczącą timerów i przerwać jak dość kiepska i może znalazła by się osoba która by pomogła rozwiązać opisywany problem.
Znalazłem taką podpowiedz:
Konfigurujesz timer1 do pracy w normalnym ale nie robisz start timer.
robisz przerwanie dzialajace na zbocze np. narastające->
Dalej :
robisz zmienną flaga
w przerwaniu robisz
if flaga=1 then
start timer1
flaga=0
else
stop timer1
w rej od timera masz czas... kopiujesz gdzie Ci tam pasuje
flaga=1
zerujesz licznik
endif
Jak to powinno dokładnie wyglądać w kodzie bascom, dodam jeszcze że Timer1 mam już wykorzystany do innego celu. Dokładnie nie rozumiem mechanizmu przerwania i przepełnienia?