logo_elektromys.eu

/ Komentované zdrojové kódy |

V této sekci se nachází různé demonstrační, vzorové a ukázkové zdrojové kódy, které slouží samostatně nebo jako doplněk k výuce.

/ Detekce stisku tlačítek |

Mechanická tlačítka mohou trpět "zákmity" - tedy jevem kdy při stisku nebo uvolňování dojde k několikanásobnému krátkému doteku a uvolnění kontaktů. Z hlediska mikropočítače se tato situace jeví jako serie krátkých stisků a uvolnění tlačítka. Pokud tento jev není ošetřen (softwarově nebo hardwarově) může to mít nepříjemné následky. Hardwarové ošetření je pracné (poctivé ošetření vyžaduje dvě součástky navíc). Nejjednodušší softwarové ošetření spočívá v tom že program sleduje stav tlačítek jen několikrát za sekundu (např 30-100x). Perioda sledování musí být delší jako trvání zákmitů (typicky do 1-2ms). Rychlejší skenování nemá opodstatnění, protože typický nejkratší stisk tlačítka trvá mezi 50-100ms.

Jedna z variant jak toho docílit je volat v hlavní smyčce stále dokola rutinu skenování tlačítek. Ta pomocí milis odpočítává potřebný čas a stav tlačítek přečte jen po uplynutí zvoleného času (periody). Pokud je v hlavní smyčce nějaký blokující dlouho trvající proces, mohlo by se stát že se rutina sledování tlačítek nezavolá včas a programu tak nějaký stisk unikne. V takovém případě je možné provádět sledování v rutině přerušení od časovače (bez využití milis). Skenování lze snadno přepsat na detekci stisku i detekci uvolnění, případně lze detekovat oba přechody - což lze následně spolu s milis využít ke měření doby stisku a rozlišovat "krátký" a "dlouhý" stisk.

Home
| V1.00 13.11.2022 /
| By Michal Dudka (m.dudka@seznam.cz) /