Wielozadaniowość w Arduino - funkcja millis bez delay
Ғылым және технология
Sklep elektroniczny: evw-elektronika.pl/ Aktualna strona na FB: / d.orzechowsky
► Program Arduino: 1drv.ms/u/s!AoYGtOxCipb_g582I...
► Możliwość wsparcia kanału: patronite.pl/elektronik2313 ◄
► Subskrybuj kanał: goo.gl/AyxApT ◄
► 📷 Instagram: / majster.boy
► Facebook: / d.orzechowsky◄
► Kontakt: mrsilniczek@wp.pl◄
►Muzyka: ◄
►Zaufane sklepy z elektroniką:
● lcsc.com/
● abc-rc.pl/
● www.icstation.com/
● nettigo.pl/
● lcsc.com/
EXTRA TAGI:
Jak zrobić układ elektroniczny?
Jak zrobić?
Jak zbudować?
Co to znaczy?
Rower elektryczny?
Jak zbudować rower elektryczny?
Pojazd elektryczny.
Akumulator do roweru elektrycznego?
Komputer pokładowy.
Jak zbudować układ na Arduino?
Co to jest Arduino?
Jak działa mikrokontroler?
Podstawy elektroniki elektrotechniki.
Jak zaprogramować mikrokontroler Arduino?
Jak lutować?
Jak zrobić swoją płytkę elektroniczną?
Jak zaprojektować PCB?
Naprawa urządzenia.
Sterownik do silnika.
Jak zrobić samodzielnie?
DIY
Пікірлер: 31
Ten czas nie powinien być typu int tylko unsigned long
@DamianOrzechowski
4 жыл бұрын
Rzeczywście, dla bardzo dużych wartości program mógłby działać nieprawidłowo. Warto mieć to na uwadze!
@kamilstachowski9733
4 жыл бұрын
@@DamianOrzechowski u mnie jakoś nigdy atmega nie miała problemu z liczeniem na tego typu zmiennych
@DamianOrzechowski
4 жыл бұрын
@@kamilstachowski9733 Myślę, że większe znaczenie ma interpretacja przez kompilator. Baaardzo duża liczba unsigned long przekonwertowana wprost na int może dać wynik ujemny.
@kamilstachowski9733
4 жыл бұрын
@@DamianOrzechowski no tak nawet nie aż tak bardzo duża
@grzylen
2 жыл бұрын
@@kamilstachowski9733 jak szybko w czasie rzeczywistym licznik się przekręci?
Gdyby każdy poradnik był tak prosto i łopatologicznie wyjaśniony a nie książkowo to nie jeden by więcej rozumiał.. Dzięki za wyjaśnienie proste i jasne 🍻 teraz lcd wyświetla co 5s a wylyla dane na serwer co 5 min 🍻
Na githubie są profesjonalne biblioteki. Menedżery zadań z możliwością dodawania zadań z priorytetami, jednorazowym wykonaniem czy możliwością zakończenia konkretnego zadania.
A co się stanie gdy zapełnimy licznik "aktualny" i się wyzeruje ? Po ok 50 dniach ( nie liczyłem dokładnie ;) ) aktualny zacznie zliczać od zera podczas gdy "lastmillis" będzie w okolicach maksymalnej wartości. Czy wtedy próba odejmowania np 2 - maks z unsigned long zwróci nam błąd ? A wtedy się procesor zablokuje ? Czy może po prostu stwierdzi, że warunek nie został spełniony i będzie tak w nieskończoność oczekiwał na jego spełnienie ? Głowy nie dam, bo na niej jednak trochę zalezy.. ale jakoś po kościach czuję, że w tym momencie program w najlepszym wypadku będzie miał jeden błędny cykl... i uruchomi coś co podłączyliśmy w nieodpowiednim momencie?? Pozdrawiam i z niecierpliwością czekam na odpowiedź
Fajne, może przyda mi się przy liczniku na wyświetlaczach siedmiosegmentowych do przełączania się miedzy wyświetlaczami. Pobawię się tym i posprawdzam.
Nie ma jak przerwania. Ale przykład fajny, edukacyjny. :)
A do mikrokontrolera atmega 328 można dać rezonator o wyższej częstotliwości niż 16 ?
XD akurat po 3 godzinach nauki (przeorałem temat na wszystkie strony) skończyłem, patrzę a tu twój film
no i teraz do kazdej diody dołączyć mikro przełącznik i mam to co potrzebuje, kto to zrobi i poda mi skech?
nagrasz kiedyś poradnik jak zaprogramować diody adresowalne najlepiej pasek led i czy trzeba to miec pod pc czy to działa na zasadzie że ma ram i pamiec i zapamietuje i mozna tego na nawet na polu uzywac jak sie ma zasilanie 12v?
@TheFicktion
4 жыл бұрын
kolego, diody adresowalne po wlaczeniu oczekuja na dane w postaci wartosci kolorow, zawsze startuja od zera, po wlaczeniu muszisz nadac do nich dane co maja wyswietlic. bez problemu (i nawet troche na wyrost) da sobie z tym rade popularny attiny 85 w koszcie okolo 6zl.
@toflin9620
4 жыл бұрын
@@TheFicktion dziękuje moze pan Damian też zobaczy i coś poradzi :D
@DamianOrzechowski
4 жыл бұрын
@@toflin9620 Tak, będzie też o diodach adresowalnych WS2812B 😉
@toflin9620
4 жыл бұрын
@@DamianOrzechowski to fajowo 😇
Jak zachowa się runtime po przekroczeniu wartości maksymalnej dla INT. Zacznie od zera czy też będzie błąd i wyskoczy wyjątek. Dla stale działającego układu prawdopodobnie trzeba będzie zmienić algorytm.
A to nie jest tak że kompilator Arduino zamienia digitalwrite na operacje na portach?
@DamianOrzechowski
4 жыл бұрын
Z tego co wiem, jest to funkcja, która wykonuje się w czasie rzeczywistym, a nie dyrektywa preprocesora. Gdzieś na YT widziałem film gdzie było porównanie, jak znajdę to podrzucę 😁
@ammorapl
4 жыл бұрын
@@DamianOrzechowski Jestem zaskoczony, byłem przekonany że to właśnie dyrektywy. Ale to było przekonanie na podstawie własnej intuicji.
@DamianOrzechowski
4 жыл бұрын
@@ammorapl Proszę, tutaj jest, dokładnie od 1:55 kzread.info/dash/bejne/d4qhktOPepiceaw.html
Witam Pana cieszę się że trafiłem na ten film. Chce zrozumieć te funkcję bo widzę że często takie rozwiązanie bywa potrzebne. Czy tutaj nie wystąpi problem kiedy bufor milsow się przepełni i licznik przekręci? Chodzi mi o to że lastmilis będzie potwornie wielki a obecny mały . Co za tym idzie po warunek nie zostanie spełniony ?
Rozwiązanie z millis(0 to nie wielozadaniowość!!
Trochę nie związane z tematem ale masz za dużo basu na mikrofonie ustawione, ciężko czasami cię zrozumieć :/