Witam.
Po raz kolejny wracam do tematu przerwań:
Gdy naciskam przycisk i trzymam przyciśnięty, w przerwaniu najpierw zwiększa się zmienna k i wypełnienie sygnału rośnie, silnik przyspiesza. Gdy puszczę przycisk wypełnienie zostaje zapamiętane i silnik kręci się ze stałą prędkością. Gdy dochodzę do maksymalnego wypełnienia k=255 i chcę by w następnej kolejności silnik powoli zwalniał (ciągle trzymam przycisk) to on kręci się cały czas na maksymalnych obrotach. Gdzie popełniam błąd w kodzie?
Oczywiście zaraz dostanę pewnie reprymendę że używam delay w przerwaniu ale przy narastaniu prędkości wszystko działa, to dlaczego miałoby nie działać przy jej zmniejszaniu?
Po raz kolejny wracam do tematu przerwań:
Kod: C / C++
Gdy naciskam przycisk i trzymam przyciśnięty, w przerwaniu najpierw zwiększa się zmienna k i wypełnienie sygnału rośnie, silnik przyspiesza. Gdy puszczę przycisk wypełnienie zostaje zapamiętane i silnik kręci się ze stałą prędkością. Gdy dochodzę do maksymalnego wypełnienia k=255 i chcę by w następnej kolejności silnik powoli zwalniał (ciągle trzymam przycisk) to on kręci się cały czas na maksymalnych obrotach. Gdzie popełniam błąd w kodzie?
Oczywiście zaraz dostanę pewnie reprymendę że używam delay w przerwaniu ale przy narastaniu prędkości wszystko działa, to dlaczego miałoby nie działać przy jej zmniejszaniu?