Hirdetés

Keresés

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

  • Teasüti

    nagyúr

    válasz Janos250 #4130 üzenetére

    Egy adott bit küldésének a megkezdése és következő közötti idő elég ahhoz, hogy a megszakítások lekezelésre kerüljenek.
    Tehát ha jól látom a dolgot, akkor ez annyival nyújt többet a bitbang-nél, hogy a proci addig malmozik és lekezeli az ISR-t, amíg két bit között eltelik némi idő.
    Na várjunk, a programban ez hogy működik? Bitbang-nél ugye delay-ek vannak a LOW és HIGH értékek között és ugye ki van lőve a megszakítás az időzítés miatt.
    Ennél viszont ezt hogy lehet kivitelezni delay nélkül? Gondolom a loop() nem fogja átugrani az első bit után az adatküldést a következő részre a programban, szóval mit fog csinálni két bit között? Ugyanúgy delay-ezik, nem? Csak az egyik port húzogatása helyett a pwm vezérlőt buzerálja (ami amúgy időben gyorsabb volna, mint egy portot felhúzni HIGH-ra?), de a köztes időben épp úgy malmozik, mint a bitbang-nél?
    Egyelőre csak annyit értek ebből, hogy nem kell kikapcsolni a megszakításokat, mert izomból megoldja a köztes időben az ISR-t. De akkor ez az idő nem lenne ugyanúgy elég bitbang esetében is (nem tudom melyik művelet gyorsabb)? :B

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