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

  • Janos250

    őstag

    válasz its_grandpa #15203 üzenetére

    Igen, igazad van. :) Eredetileg valahogy - a nem megfelelő inicializálás miatt - a státus lekérdezés nem igazán jól működött, ezért került be a sok delay, és úgy maradt. Valóban ki is lehet belőle szedni.
    delay: nem igazán tudom, mi a helyzet vele, ettől függetlenül. Van ahol azt írják, hogy vtaskdelay-t használjunk. Az biztosan átadja a vezérlést a többi tasknak az adott időre, de van ahol azt írják, hogy a sima delay-t is ugyanerre fordítja, tehát mindegy. Majd egyszer kipróbálom. :)
    A sok magic number szándékosan van így: az Ada könyvtárban ott van minden részletesen, az nagyon univerzális, de igen hosszú is.
    Szándékosan olyat akartam, ami rövid, tömör, és az SPI kezelését is megmutatja. Az SPI-ről is tervezem, hogy írjak pár sort egyszer, mert aki csak az UART-ot használta, annak elég szokatlan a filozófiája, hogy nincs benne "csak read". Helyette úgy működik, hogy ha küldünk egy byte-ot, akkor - akár kell, akár nem - jön be is egy. Tehát úgy olvasunk, hogy kiküldünk egy kódot (sorozatot), hogy mit akarunk olvasni, aztán küldjük sorra a haszontalan kódokat, hogy velük együtt jöjjön a hasznos adat.
    Elég fura ez pl. amikor a hőelem hőmérsékletét olvasom, ahol a konverter panelnak semmi adatra nincs szüksége, mégis SPI-vel úgy olvasom, hogy KÜLDÖM a felesleges adatokat, mert ezekkel párhuzamosan jön a hasznos adat. (Ez utóbbit csak azoknak írtam, akik nem szokták az SPI-t használni.) Az esp8266-on korábban nem is használtam könyvtárat, hanem a chip select és a clk lábakat mozgattam programból, és a MISO-nak megfelelőt olvastam, a MOSI-nak meg nem is volt megfelelője, mert fölösleges az adott esetben. Azóta átáltam kényelemből az SPI-re annál is.

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

Hirdetés