- Fotók, videók mobillal
- Xiaomi 15 - kicsi telefon nagy energiával
- iPhone topik
- Megérkeztek a Xiaomi 15T sorozatának telefonjai Magyarországra
- iOS alkalmazások
- Harmadjára is bemutatta ugyanazt a Huawei
- Honor 400 Pro - Gép a képben
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Rekordérdeklődés a Xiaomi hátsó kijelzője iránt
- Milyen okostelefont vegyek?
-
Mobilarena
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
gyapo11
őstag
válasz
Teasüti #3351 üzenetére
Valójában a villogás nem a megfelelő szó, jobb az akadozás. Simán el tudom képzelni, hogy valaki megírja az animációt, valaki más a távirányító kezelését, és a kettőt összeeresztve akadozni kezd, mert pont akkor nyomok rá a távirányítóra, amikor léptetni kellene az animációt, és a processzor egyszerre csak egy dologgal tud foglalkozni, a szem meg érzékeny az akadozásra. Ilyenkor jön az, hogy meg kellene találni az okát, de ezt idegen kódban és nem profi programozási tudással elég nehéz. Ha meg profi a tudás, akkor nem kell netről vadászni a kódot, hanem meg kell írni az első byte-tól úgy, hogy az infrát is le tudja kezelni a legkisebb akadás nélkül.
A megszakítás jó dolog, de nem tud csodát. Vagy az eredeti kód fut, vagy a megszakítást szolgálja ki, de addig az eredeti kód áll. Ahhoz több processzormag, közös memóriakezelés stb. kellene, hogy egy beérkező megszakítás ne állítsa meg az egyik magon futó kódot, és a másik magon azonnal futhasson a megszakítás.
Egy távirányítóról érkező parancs kiszolgálása persze elég rövid idő, de ha nem jól van megírva a kód vagy a library, akkor akár látható nagyságú idő is elmehet, és gond van.
Nem beszélünk konkrét számokról, mert ahhoz kellene a kód, és még akkor sem könnyű összeszámolni a szükséges órajel ciklusokat. Ehelyett ha írunk egy kis ciklust, az kb. 100 ezer/s, ha csinál is valamit, akkor legyen 10 ezer/s, ez 100 μs, ha pl. hangfrekis hullámformát generálunk, és egy megszakítás elvesz ennyi időt, akkor az már hallható lesz.
Sokszor láttuk már itt a fórumon is, meg más forráskódokban is a delay(1)-et vagy hasonlót, mert különben elvesznek byte-ok a soros vagy egyéb csatornán. Pedig a processzor 16 MHz-en pörög, és az ehhez képest rettentő lassú soros porton is el tud veszni adat, ha nem állítjuk meg egy ms-ig a futást.
Már egy ilyen kis processzorocska is annyi mindent csinál, hogy nem elemezzük órajel szinten. Ráadásul mi c++ forráskódódot látunk, de a processzorba egy ebből generált bináris kód megy, nem tudjuk, hogy melyik arduino utasításból milyen bináris kódot generál, így nem tudjuk az időigényeket se. Ráadásul ott vannak a libek, amiknek még a forráskódját se nézzük, hanem csak include-oljuk és reménykedünk benne, hogy működik és nem ütközik semmivel.
Ezért mondom, hogy ez hobbyra van kitalálva, mert pillanatok alatt tud bárki működő programot futtatni. Amint bonyolódik a program, mindenféle korlátokba ütközünk, az időzítést is nehéz kézbentartani, a libek minősége ismeretlen, a szigorú tesztelése időigényes. Mindezek elkerülése meg oda vezet, hogy elhagyjuk az arduino hw-t és sw-t is, és magát a mikrovezérlőt programozzuk profi eszközzel, debuggal, teszteléssel.
Vannak komoly házvezérlések, és egyéb bonyolultabb projectek, tehát sikerülhet a dolog, de erre nem lehet építeni, nem lehet megélhetést alapozni rá.
Új hozzászólás Aktív témák
- Intel Core i5-9500 / i5-9500T / i7-8700 / i7-9700 CPU, processzor - Számla, garancia
- 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia
- Azonnali készpénzes INTEL CPU NVIDIA VGA számítógép felvásárlás személyesen / postával korrekt áron
- Apple MacBook Pro 13" 2019 256/8GB Akku:40 ciklus! Magyar
- Bomba ár! Lenovo IdeaPad 330S - i7-8550U I 8GB I 512SSD I 14" FHD I Radeo I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest