Skocz do zawartości

[STM32] wykonywanie kilku rzeczy nie zależnie.


vtor

Pomocna odpowiedź

Zamierzam zabrać się za STM32. Przeglądam trochę materiałów i ciekawi mnie jak w tych mikrokontrolerach realizuje się wielozadaniowość? W AVR  Arduino wykorzystywało się millis(). A jak to jest w STM32? ( STM32CubeIDE). Bo dellay() jest mało funkcjonalne.

Link do komentarza
Share on other sites

@vtor jeśli chcesz to robić porządnie to zainteresuj się RTOS'ami - to najlepsza opcja. Jak chcesz budować coś samodzielnie to możesz korzystać z timerów i przerwań. Poszukaj też czym jest SysTick - może być tutaj pomocny 🙂

  • Lubię! 1
  • Pomogłeś! 1
Link do komentarza
Share on other sites

można odczytać wartość licznika w pętli głównej używając __HAL_TIM_GET_COUNTER np:

int czas = __HAL_TIM_GET_COUNTER(&htim10);

Możesz to zrobić postępują zgodnie z kursem dla F4 z tą różnicą , że po wykonaniu Kroku. 5 od razu generujesz projekt w CubeMX (nie konfigurujesz przerwań). W wygenerowanym projekcie przechodzisz do funkcji konfigurującej przerwanie TIM_Init i jako ostatnie polecenie dopisujesz :

HAL_TIM_Base_Start(&htim10);

Oczywiście konfigurację zegarów i timera możesz ustawić wedle własnych potrzeb. Nie jest to najbardziej optymalne rozwiązanie ale lepsze od HAL_Delay(). Nawiązując do Arduino a konkretnie płytek opartych o układy SAM/SAMD to wielozadaniowość jest możliwa z wykorzystanie delay() przykład.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.