Hirdetés

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

  • DigitXT

    félisten

    válasz lanszelot #19848 üzenetére

    Most, hogy bemásoltad a kódot, lehet érdemben beszélgetni róla.:R
    Szóval Arduinonál úgy működik, hogy először lefut a setup, aztán meg
    átmegy a loop-ba, s az végtelenül ismétlődik. Esetedben ugye a setup
    egyrészt inicializálja a kijelzőt, másrészt (meglepetés!) elindítja a soros
    portot is, 9600 baud beállítással. Ez azért jó, mert a Serial Monitoron a
    program futását tudod monitorozni és tudod debuggolni, ha vmi "gázos".

    A delay használata egyszerű programoknál rendben van, vagy ha vmire
    kifejezetten várni kell, hogy megtörténjen. Ellenben, egy olyan program,
    ami folyamatosan (kellene hogy!) nézzen egy bemenetet megakad tőle:
    tehát az a delay(1000) az elején feleslegesen vár egy másodpercet. És
    amit utána kiértékelsz, az NEM az aktuális mért érték! Hanem még az
    egy másodperccel korábbi: nyilván "tanulós" programban ez is elmegy,
    amennyiben az ember tisztában van vele. De ha nem, kigyomlálandó...
    Erre jött a jótanács a millis() használatról, hiszen az egy mindenkoron
    növekvő számláló, a bekapcsolástól kezdve, ezredmásodpercben.:R
    (Tehát, anélkül tudsz mondjuk ~1 másodpercenként csinálni "akármit",
    hogy az MCU kifejezetten addig az 1 másodpercig ne csinálna mást...)

    A koncepcionális különbség pedig annyi, hogy nem megállsz és vársz,
    hogy elteljen egy adott időszak (közben nem csinálsz semmit), hanem
    szépen csinálod a dolgod, csak időről időre az órádra pillantasz, és ha
    azt látod, hogy eltelt már az adott (várakozási) idő, akkor csinálod meg
    az időzített/ütemezett feladatot. (Így több dolgot is kényelmesen tudsz
    más-más időközönként végrehajtani.) Első körben szerintem ennyi...:D

    pont ezért nem szúrtam be, mert lehetetlen ide berakni
    Nekem nem úgy néz ki, mintha lehetetlen lenne, ha egyszer sikerült...

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