Hirdetés

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

  • Janos250

    őstag

    válasz AcCEsS #9974 üzenetére

    Leírom a saját tapasztalatomat, bár az eléggé különbözik az ESP32 miatt.
    Ha a jel hosszát elég jól lőttem be, akkor rövid szalaggal símán ment. Ha növeltem a ledek számát, akkor a tiédhez hasonló jelenséget tapasztaltam. Digitális analizátorral derült ki az ok:
    Az ESP32 1 ms-enként megszakít, akkor adja át a vezérlést - ha szükséges - másik tasknek. Amíg a kevés led miatt a magot megkapott processz 1 ms-en belül el tudta végezni a dolgát, addig minden símán ment. Ha ezt meghaladta a ledre "feltöltési" idő, akkor ha közben megszakított egy jel közben, akkor a rövig jel helyett hosszú lett véletlenszerűen, és bolondságokat csinált. Ha éppen egy alacsony helyiértékű bit lett hibás, akkor éppen nagy gond nem volt, de ha egy magasabb helyiértékű bit szaladt túl, akkor az galibát okozott. Nem azt akarom mondani, hogy nálad is ez a gond, hanem csak azt, hogy nálam ez volt, vedd esetlegesen számításba az időzítési hibát is. Egy digitális analizátorral kéne megnézni.

    (Ja, még mielőtt az ESP32-t használók felkapják a fejüket, ez annál a verziónál volt, amikor nem hardverből vezéreltem a ledeket, hanem símán C++ programból. Az ESP32 ugyanis elég gyors ahhoz, hogy ezt meg lehessen csinálni. Az interruptok megfelelő tiltásával kezelhetővé vált a probléma. A hardveres vezérlésnél ilyen gond nem volt, mert ott van elég idő az egyik pufferbe töltéshez, amíg a másik puffert nyomja kifelé a hardver)

    Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

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