Witam, robię porządki w bibliotekach i tymi przydatnymi się podzielę, może komuś się przyda.
Na początek - prosta funkcja opóźniająca (wiem, że normalnie się tego nie powinno stosować, ale do nauki się przydaje), której mi zawsze brakowało. Oparta na Systicku - trzeba tylko podać z jakim zegarem jest taktowany.
Do pobrania z gita:
https://github.com/dambo1993/STM_DMB_LI ... tick_delay
[STM32] Zamiennik _delay_ms na Systicku
[STM32] Zamiennik _delay_ms na Systicku
Nowy blog o tematyce embedded -> https://www.embedownik.pl/
- inż.wielki
- User
- Posty: 307
- Rejestracja: niedziela 20 gru 2015, 23:11
Re: [STM32] Zamiennik _delay_ms na Systicku
Co do tego że nie powinno się stosować, to też nie prawda. Powinno, ale w odpowiednich miejscach, ale też nie powinno się przesadzać z tym. Przecież wiadomo że nie wszystko da się zrobić bez używania takiego zatrzymania. Jeżeli jeszcze aplikacja jest pisana z wykorzystaniem RTOS'a albo innego systemu czasu rzeczywistego, to taki delay jest całkiem przydatny.
- inż.wielki
- User
- Posty: 307
- Rejestracja: niedziela 20 gru 2015, 23:11
Re: [STM32] Zamiennik _delay_ms na Systicku
rezasurmar pisze:Po prostu w pętli głównej być tego nie powinno.
W większości się z Tobą zgadzam, jednak, bez wykorzystania delay'a w pętli głównej, jeżeli cała aplikacja działa z wykorzystaniem RTOS'a to procesor się zajedzie. Zwykły while(1) bez żadnego dileja nie pozwoli na płynne przełączanie tasków.
- inż.wielki
- User
- Posty: 307
- Rejestracja: niedziela 20 gru 2015, 23:11
Re: [STM32] Zamiennik _delay_ms na Systicku
Procesora się nie zatrzymuje, ale wkładając petle while(1) w task, a to jest dość popularne i normalne, pozwalasz na przełączenie taska. Spróbuj sobie zrobić task i machnąć w min pętle nieskończoną, która nie będzie miała dileja, zobaczysz że mimo tego, inne taski się nie wykonają, sprawdziłem to. A nie mówię że się nie da inaczej, ostatnio napisałem oprogramowanie gdzie petla jest pusta a kod wykonuje się z przerwań. Ale to zależy od przeznaczenia i zadań dla oprogramowania.
Wróć do „Programowanie STM w C/C++”
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości