14-08-2018, 10:42
(14-08-2018, 10:14)qbic napisał(a): dodałem dwa przerwania. Pierwsze które rozpoczynało zliczanie czasu kiedy wykryło zmianę stanu z wysokiego na niski (FALLING) i drugie które które dodawało różnice czasów do zmiennej „impulsLengthInHalfSecond” kiedy wykryło zmianę stanu z niskiego na wysoki (RISING). Następnie wartość zmiennej wyswietlałem co pół sekundy, a potem ja zerowalem.
Niestety wartości które otrzymuje sa zupełnie oderwane od rzeczywistości - zbyt długie, czasem ujemne.
Zastanawiam się czy nie jest to konflikt przerwań. Nie sprawdzałem jeszcze czy sposób ten zadziała jeśli nie zaliczałbym prędkości za pomocą przerwań.
Jakie to sa czasy? Jesli krótsze niz 3,3E-5.....2e-5 to w ten sposób ich nie zmierzysz. Użyj sprzętowego przychwytywania przez timer.