-
Fototrend
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
-
DigitXT
félisten
válasz
lanszelot #19855 üzenetére
A többszálúság az a kivétel.
Azt arra mondtam, hogy olyankor "kicsit"
bonyolultabb tervezni a programot. Amúgy, ha szigorúan nézzük, nem
soronként fut a program, hiszen a fordító előre lefordítja gépi kódba.
A leírt szöveg absztrakció...Szkipt nyelvek tudnak soronként futtatni
programokat. (Ott simán lehet, hogy teljesen szar sor marad a kódban,
mégis hibátlanul fut, amíg oda nem ugrik... És akkor elszáll hibával...)
Ilyen szempontból az Arduino által futtatott C sokkal jobb, mivel már a
fordítás közben kiderülnek a szintaktikai hibák + típusosak a változók...
(Mondjuk egy AWK ezzel szemben sokkal rugalmasabb, könnyebb vele
pl. szövegeket feldolgozni, ad hoc jelleggel, rövid programokat írni. Ám
ha elírsz valamit simán megeszi: csak futás közben jön ki, hogy bugos.)Az Arduino Uno/Mega mint egymagos architektúra, egyszerre egyetlen
dolgot csinál, de azt relatíve gyorsan, így tudod kihasználni, hogy kvázi
egyidejűleg látszólag több dolgot csináljon, hogy "pörgeted" a loop-ot.Na most a delay az ezt hazavágja! Szóval nagyobb projekteknél, amikor
több bemenetet kell figyelni, vagy pl. szoftveres soros portot használsz,
nem fér bele, hogy álldogáljunk másodperceket, mert elveszik az adat...
És ilyenkor jön az, hogy megszakítás: az észreveszi... Illetve a hardveres
UART (ami szintén megszakításokkal működik), nagy sebességnél jobb!
Viszont felesleges megszakításokra építeni a programot, ha bőven elég
az is, hogy pörög a loop... A millis() figyelése jobb. Lásd órádra pillantás.Szerk: oké, a SoftwareSerial is megkerüli a delayt megszakításokkal, de
vannak limitációi. Én most pl. Nextion kijelzővel kommunikálok 115200
baud sebességgel (RX1), anno ez mintha nem akart volna összejönni...
Szerk: emellett egy másik porton olvasom a kijelzendő adatokat, stb. -
válasz
lanszelot #19855 üzenetére
Na most gondolod rosszul, nem tud több szálon futni (kivétel mondjuk az esp32 ahol két mag van), ezt miből vontad le?
A program futása soronként történik, kivéve ha megszakítást használsz (de valójában ott is soronként fut a kód).
Ami téged félrevezetett, hogy a megoldás, amit adtam neked, egy modern oprendszer időosztásos módszeréhez hasonlóan látszólag egy időben, de valójában felváltva csinál több dolgot.
Új hozzászólás Aktív témák
- exHWSW - Értünk mindenhez IS
- Macska topik
- macOS PC-re
- Autós topik
- Windows 11
- Renault, Dacia topik
- Debrecen és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Videó stream letöltése
- További aktív témák...
- BenQ DesignVue PD2705U 4K Designer Monitor!27"/99% sRGB/Pantone/AQCOLOR/Type-c/Mac Ready/Beszámítás!
- Garmin fenix 8 51 mm amoled sapphire karbonszürke DLC titanium
- BESZÁMÍTÁS! Asus B560M i5 10400F 16GB DDR4 512B SSD RX 6600XT 8GB AeroCool DS Cube ADATA 600W
- BESZÁMÍTÁS! Asus H370 i5 8700 16GB DDR4 512B SSD RX 6650 XT 8GB Zalman N5 OF ADATA 600W
- Tágulási tartály Baseflex 12/1.5 6bar
- Fujitsu USB Port Replicator PR09 docking station (1x5K vagy 2x4K felbontás) (DisplayLink)
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Telefon felvásárlás!! Samsung Galaxy A50/Samsung Galaxy A51/Samsung Galaxy A52/Samsung Galaxy A53
- GYÖNYÖRŰ iPhone 13 mini 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3340
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest