Witam.
Potrzebuję za pomocą uC zmierzyć czas trwania impulsu, dokładnie to będzie czas otwarcia wtrysku w samochodzie. Czytałem, że można to zrobić na wiele sposobów jednak najlepiej zrobić to za pomocą funkcji timera ICP. Rozumiem, że działa to tak:
Timer cały czas zlicza czas...
1. Gdy zbocze jest narastajace, przepisuje aktualna wartość timera do zmiennej zbocze1.
2. Zmieniam aby teraz reagował na zbocze opadające.
3. Gdy zbocze jest opadające , przepisuje aktualną wartość timera do zmiennaj zbocze2.
Otrzymuję z tego różnicę (zbocze2 - zbocze1) co daje mi później w przeliczeniu czas trwania impulsu.
Pytanie jednak jak zrobić żeby nie doszło do sytuacji gdy np. pierwsza wartość przy zboczu narastającym będzie bliska przepełnienia, a druga przy zboczu opadającym już będzie wartością po przepełnieniu czyli mniejszą od pierwszej?
Mógłbym prosić o jakiś fragment pseudokodu?
Dzięki
Potrzebuję za pomocą uC zmierzyć czas trwania impulsu, dokładnie to będzie czas otwarcia wtrysku w samochodzie. Czytałem, że można to zrobić na wiele sposobów jednak najlepiej zrobić to za pomocą funkcji timera ICP. Rozumiem, że działa to tak:
Timer cały czas zlicza czas...
1. Gdy zbocze jest narastajace, przepisuje aktualna wartość timera do zmiennej zbocze1.
2. Zmieniam aby teraz reagował na zbocze opadające.
3. Gdy zbocze jest opadające , przepisuje aktualną wartość timera do zmiennaj zbocze2.
Otrzymuję z tego różnicę (zbocze2 - zbocze1) co daje mi później w przeliczeniu czas trwania impulsu.
Pytanie jednak jak zrobić żeby nie doszło do sytuacji gdy np. pierwsza wartość przy zboczu narastającym będzie bliska przepełnienia, a druga przy zboczu opadającym już będzie wartością po przepełnieniu czyli mniejszą od pierwszej?
Mógłbym prosić o jakiś fragment pseudokodu?
Dzięki