[PIC programování] – 4. díl

Ahoj! Vítám vás u čtvrtého dílu této série.

V dnešním díle se pokusíme napsat program, který při stisku tlačítka rozsvítí LEDku a při druhém stisku jí zhasne. Provedeme to za pomoci té lehčí varianty, že program bude čekat na stisk tlačítka ve smyčce, což povede k jednoduchosti, zároveň však nebude moci provádět jiné úkony. Pojďme na to!

Použijeme zapojení z minulého dílu:

Tut3_1
V tomto případě není důvod nejprve programovat PICku a potom sestavovat obvod, protože PICku už máme naprogramovanou z předchozího dílu (se stejným zapojením) a nemělo by tudíž nikde dojít ke zkratu.

Stejně tak použijeme kód z minulého dílu, akorát umažeme vše mezi návěštím START a instrukcí end:

Pojďme si doplnit kód do hlavní části programu. Nejprve vypneme LEDku:

Kód, který známe, nemusím doufám vysvětlovat… Dále počkáme na stisk tlačítka. Jakmile je tlačítko stisknuto, LEDku rozsvítíme.

Nyní počkáme, až se tlačítko uvolní:

Nyní první část kódu zopakujeme a upravíme pro vypnutí LEDky:

A znovu čekáme na uvolnění tlačítka:

Teď už jen stačí vrátit se zpět na START, aby se celý proces mohl opakovat:

Opět snad nemusím vysvětlovat… Celý kód tedy bude vypadat takto:

Nyní když vyzkoušíme program, by měla být LEDka zhasnutá. Po stisknutí tlačítka by se měla rozsvítit, po dalším stisku zhasnout a tak pořád dokola. Obvod se může chovat trochu podivně a občas se LEDka nerozsvítí/nezhasne. Je to z toho důvodu, že u ne příliš kvalitních tlačítek dojde k nepatrnému jiskření při stisku/uvolnění tlačítka. Protože je náš mikrokontrolér poměrně rychlý, stihne se na stav tlačítka zeptat v době jiskření a zjistí několikrát změnu stavu. Tento problém později vyřešíme snížením frekvence dotazování na stav tlačítka.

Celé řešení je ale dost nepraktické a – jak si ukážeme v dalších dílech – ve většině případů naprosto nepoužitelné právě z důvodů, že procesor mezitím nemůže vykonávat jiné instrukce.

To by bylo pro tento krátký díl vše, v příštím díle se na chvíli odkloníme od experimentů s tlačítkem a ukážeme si práci s vlastními “proměnnými” a porovnávání jejich hodnot. Do té doby vám přeji mnoho úspěchů s assemblerem!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.