Jak nastavit aby při stisku tlačítka nastala log 1?

Zdravím,
mám na Vás dva dotazy. Chtěl bych se zeptat jak nastavit (předpokládám softwarově), aby při stisku tlačítka nastala log 1 a při puštění se vrátila do log 0. Nějaké základy mám, ale dělal jsem vždy změnu úrovně při stisku. Druhy dotaz je jak udělat, že změna úrovně nenastane hned, ale až po chvílce držení tlačítka? Nevím zda to je vůbec možné.
Děkuji za rady a postřehy

:arrow_right: administrator: přejmenováno z "funkčnost tlačítek"

Tvůj dotaz trošku postrádá smysl, chtělo by to lépe formulovat. Zkusím odpovědět na několik možnách variant Tvého dotazu.

Požadavek : Chceš, aby vstup tlačítka byl v klidu v log. 0 a při stisku v log. 1
Řešení : Vypnout pull-up rezistor na pinu mcu a k pinu připojit odpor na zem a tlačítko proti Vcc.
Výhody : Při poklesu napájecího napětí (typicky při vypnutí zařízení) je vstup stále neaktivní, až do úplného vypnutí jádra MCU.
Nevýhody : Složitější zapojení. Běžně se používá zapnutí interního pull-up rezistoru a připojení tlačítka proti GND a softwarově si ošetřit aktivní/neaktivní úroveň vstupu.

Požadavek : Chceš, aby reakce MCU na stisk tlačítka byla log. 0 v klidu a log. 1 při stisknutém tlačítku.
Řešení : Tlačítko připoj libovolně (viz varianty nahoře) a software zajistí požadované logické úrovně na výstupím pinu třeba takto - MCU periodicky čte stav vstupního pinu a podle jeho stavu posílá log. úroveň na výstupní pin.

Požadavek : Stejný jako 2), ale výstup MCU bude v log. 1 až po určité době držení tlačítka.
Řešení : Tlačítko připoj libovolně (viz varianty nahoře) a software zajistí požadované logické úrovně na výstupím pinu třeba takto - MCU periodicky čte stav vstupního pinu. Pokud je stisknuté tlačítko, přičte 1 k nějaké proměnné. Jakmile proměnná dosahne určité hodnoty, přestane přičítat (aby proměnná nepřetekla) a pošle na výstup log. 1. Pokud tlačítko není stisknuté, vynuluje proměnnou a pošle na výstup log. 0. - na tomhle principu se SW ošetřují zákmity tlačítek.