Leírás
A pulseInLong() a pulseIn() alternatívája, amely jobban kezeli a hosszú impulzusokat és a megszakításokkal érintett forgatókönyveket.
Kiolvas egy impulzust (HIGH vagy LOW) egy tűn. Például, ha az érték HIGH, a pulseInLong() megvárja, hogy a kivezetés LOW-ról HIGH-ra váltson, elindítja az időzítést, majd megvárja, amíg a kivezetés LOW-ra megy, és leállítja az időzítést. Visszaadja az impulzus hosszát mikroszekundumban, vagy feladja, és 0-t ad vissza, ha nem érkezett teljes impulzus az időtúllépésen belül.
Ennek a függvénynek az időzítését empirikusan határozták meg, és valószínűleg rövidebb impulzusok esetén hibákat fog mutatni. 10 mikroszekundumtól 3 percig terjedő impulzusokon működik. Ez a rutin csak akkor használható, ha a megszakítások aktiválva vannak.
Ezenkívül a legnagyobb felbontást nagy időközökkel érjük el.
Szintaxis
pulseInLong(pin, value)
pulseInLong(pin, value, timeout)
Paraméterek
pin: annak az Arduino kivezetésnek a száma, amelyen le szeretné olvasni az impulzust. Engedélyezett adattípusok: int.
value: az olvasandó impulzus típusa: HIGH vagy LOW. Engedélyezett adattípusok: int.
timeout: (opcionális): az impulzus kezdetére várakozás mikromásodperceinek száma; az alapértelmezett egy másodperc. Engedélyezett adattípusok: unsigned long.
Visszatérési érték
Az impulzus hossza (mikromásodpercben) vagy 0, ha nem indult impulzus az időtúllépés előtt. Adattípus: unsigned long.
Referencia > Nyelv > Függvények > Speciális I/O > Pulseinlong