Witam!
Mam w swoim programie chciałbym wykorzystać timer w trybie one pulse do odmierzania czasu, ale w taki sposób, żeby można było wyłączyć timer w przerwaniu od wartości CCR. Do tego celu wykorzystuje TIM2 (general purpose). Niestety timer nieprawidłowo odmierza czas kiedy chcę go wyłączyć bitem CEN(np wpisuję ze ma się wyłączyć po 100us a wyłącza się po 180us) jedyne co mi się udało wymyślić żeby odmierzał dobrze to w przerwaniu wpisuje do CNT wartość ARR i w naturalny sposób się wyłącza i w takim przypadku działa dobrze. Na TIM 1 taki sposób działa prawidłowo ale nie mogę wykorzystać TIM1 bo jest już zajęty. Mikrokontroler to STM32F103. Poniżej konfiguracja:
Czy może ktoś się spotkał z takim problem a może go rozwiązał?
Mam w swoim programie chciałbym wykorzystać timer w trybie one pulse do odmierzania czasu, ale w taki sposób, żeby można było wyłączyć timer w przerwaniu od wartości CCR. Do tego celu wykorzystuje TIM2 (general purpose). Niestety timer nieprawidłowo odmierza czas kiedy chcę go wyłączyć bitem CEN(np wpisuję ze ma się wyłączyć po 100us a wyłącza się po 180us) jedyne co mi się udało wymyślić żeby odmierzał dobrze to w przerwaniu wpisuje do CNT wartość ARR i w naturalny sposób się wyłącza i w takim przypadku działa dobrze. Na TIM 1 taki sposób działa prawidłowo ale nie mogę wykorzystać TIM1 bo jest już zajęty. Mikrokontroler to STM32F103. Poniżej konfiguracja:
Kod: C / C++
Czy może ktoś się spotkał z takim problem a może go rozwiązał?