Arduino soros monitor?
Az Arduino "gyári" szoftverét használom programozáshoz. Található benne egy soros monitor is, amivel értelemszerűen az eszköz tud kommunikálni. Az lenne a kérdésem, hogy hogyan tudnék oda relatíve gyorsan kiírattatni egy váltó értékét? Van egy bemeneti jelem, aminek a frekvenciája 2000 és 8000 Hz között mozog. Na ennek kellene a periódusidejét kiküldenie. Ami fontos, hogy realtime-ban történjen a dolog, vagyis ne úgy hogy pl. 1 milliszekundumonként vesz egy mintát, hanem hogy folyamatosan. Az a fő problémám, hogy a sima Serial.println(x) utasítás túl sok időt vesz el, ez a folyamat alatt akár több ciklus is lefut a bemeneti jelből. Hogyan lehetne ezt kiküszöbölni? Van rá valami gyorsabb opció?
És amúgy igen, az alap 9600-as értékét átállítottam a lehető legmagasabbra, de még így is "lassú".
Olyan nincs, hogy "folyamatosan"... Ha max. 8000 Hz a jeled, akkor is 0,125 ms kell a megméréséhez.
Megszakítással kezeled a mérést?
Mit értesz megszakítás alatt?
Itt főleg nem a megméréssel van a probléma, hanem a mért adat eljuttatásával. Méréshez használtam pl. egyszerű loop-okat, meg pulseIn nevezetű utasítást is. Igazából mindegyik működött, egy lassító tényező van benne, a soros monitorra történő kiíratás.
Azt még elfelejtettem közölni, hogy a mérendő jel teljes mértékben szimmetrikus, azaz 50% a kitöltési tényezője, így elég csak az egyik értékének az idejét mérni (magas vagy alacsony jelszint). Sőt, igazából ez is lenne a fő-fő cél, egy periódus alatt kétszeri mérés. De mint írtam, ez nem probléma, csak az információ eljuttatása...
Gondoltam arra is, hogy a mérés alatt a processzor "tehetetlenségét" ki kellene küszöbölni, de sajnos ez még nem jelentene közvetlen megoldást, az említett Serial.println() utasítás végrehajtás tekintetébe milliszekundumos tartományba esik.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!