Hirdetés

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

  • Janos250

    őstag

    válasz Sokimm #7319 üzenetére

    Na, akkor lássuk konkrétan, hátha mást is érdekel:
    Láttam, hogy Teasüti egy kész könyvtárat használt a WS2812 led szalag vezérlésére. Innen jött az ötlet, hogy - játékból - kipróbáljam, hogy az elég bonyolult kész program helyett a "kézzel" való vezérlést használjam.
    Ennek a szalagnak a vezérlése úgy történik, hogy a szalag minden egyes ledjéhez kiküldjük a saját színét, 24 biten. A kiküldés bitenként megy: pl. a 400 nanos hoszú impulzus jelenti a "0" értékű bitet, a 800 nanos az "1"-et.
    Ha beállítok egy lábon magas sztintet, akkor ha ez 0 értékű bit, akkor 400 nano múlva kell levinnem alacsony szintre, ha 1 a bit értéke, akkor 800 nano múlva. Ezt kell ismételni a szalag minden egyes ledjére sorban egymás után, ahogy a szalagon vannak. Egy led színe 24 bit, tehát egy 100 ledből álló szalagra 2400 db. - az egyes led kívánt színei szerint - különböző hosszúságú impulzust kell kiküldeni.
    Viszont, ha egy 400 nanos impulzus középén jön egy megszakítás, akkor mire "visszatér" a task, az már akár 800 nanos is lehet, tehát hibásan másik bitként értelmezi a led.
    Na, ez talán a legtipikusabb példája az ESP32 "RTM" funkciójának. Az egyes impulzusok adatait feltöltöm egy megadott memória területre, és ráeresztem a hardvert, ami teljesen önállóan kiküldi ezeket az impulzusokat, igen nagy pontossággal, mert 15 biten írom le az impulzus hosszát. A 16. bit jelzi, hogy a megadott ideig L vagy H szinten kell lenni az adott lábnak.
    Ezt nevezi az ESP32 RTM-nek. Eredetileg az infrás távvezérlők szimulálására ajánlják, mert lehet úgy programozni, hogy egy magasabb vivőfrekvenciát moduláljon az adott hosszal.
    Tehát - mint írtam - nem egy élő projekt problémájáról van szó, hanem kíváncsiságról.

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