Ú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.:D 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.:B
    A leírt szöveg absztrakció...:DDD 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...:K)

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

Új hozzászólás Aktív témák

Hirdetés