Skocz do zawartości

[C] Timer odliczający czas od spełnionego warunku na STM32 / HAL


Pomocna odpowiedź

Napisano

Witam. Niedawno zacząłem przygodę z STM32 i mam problem.

W funkcji przerwania mam pewien warunek, zwykły if. Chciałbym, aby timer zaczął odliczać czas od momentu spełnienia tego warunku. Skonfigurowałem timer odpowidnio do swoich potrzeb i teraz pojawiają się 2 pytania:

1. Jak wywołać rozpoczęcie zliczania czasu w zależności od spełnionego warunku? Po prostu w pętli if(...) { TIM enable } czy odwołanie do przerwania (IRG Handler) a powód dla którego nie moge sam wypróbować różnych opcji to...

2. Jakie funkcje w bibliotekach HAL odpowiadają funkcjom

TIM_GetITStatus oraz TIM_ClearITPendingBit ?

Z góry dziękuję za odpowiedzi i pozdrawiam!

Ja bym to zrobił tak, jak jest zrobione millis() w Arduino: liczysz cały czas, a w swoim if-ie tylko zapamiętujesz wartość w zmiennej. Potem odejmujesz wartości i masz czas. Jak zrobisz to odejmowanie dobrze, to nawet nie straszny ci overflow.

No właśnie srednio to się uda. Chodzi o to że daję jakiś sygnał na ADC mikrokontrolera. i jeśli ten sygnał przekroczy jakąś wartość i będzie ponad tą wartością przez np 10 sekund to niech się zapali dioda na początek. Myślałem jeszcze o zliczaniu stanów wysokich na pinie, które będą na nim właśnie gdy ta wartość będzie przekroczona, ale to też nie jest dla mnie łatwe do ogarnięcia

A jak poszło z FFT i zespolonym przetwornikiem ADC? Nie chciało się zajrzeć do własnego wątku i odpowiadać na pytania a tu proszę, kolejny problem i znów po pomoc? Pierwsze wrażenie można zrobić tylko raz. A co ze "wzmacniaczem szumu"? Nie wygląda byś był(a?) zainteresowany(a?) odpowiedziami na tym Forum. Przekonaj mnie dlaczego mamy być zainteresowani Twoimi pytaniami. Moim zdaniem szkoda na Ciebie czasu.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...