Home          Flowcode        Elektronika        Contacts            

Tutoriál 4  - proměnné a rozhodovací smyčka.
1) vytvoříme nový soubor stejně jak u předchozího tutoriálu,
dá se vymazat a znova naklikat.
V rámci procvičení si jej udělejte znovu, tj. výběr procesoru, nastavení pojistek, přiřazení pinů atd…
Zadání: Bude-li tlačítko zmáčknuto, rozsvítí se led, když je pustíme, led zhasne.

2) vložíme nekonečnou smyčku (loop) v ní bude běhat program a ptát se na stav tlačítka.

3) v záložce imput klikneme na ikonu vypínače (switch).
Dole se nám objeví spínač. Pravým tlačítkem změníme ext properties dle obrázku.
V první kolonce je grafická podoba:spínač, tlačítko, přepínač… ale je to jen grafické znázornění, nikoliv funkční!!
Kolonka pod ní je switch operation, toto je důležité, volba je buď spínač (latching), nebo tlačítko (momentary).
V meníčku polarity se zadává, když zmáčkneme tlačítko, co se má zapsat do registru.
Poslední kolonka debounce je pro ošetření zákmitů na kontaktech. Je zde proto, že když stiskneme nebo pustíme tlačítko, tak procesor je tak rychlý že se zeptá řádově 1000x (dle rychlosti oscilátoru) za sekundu na stav tlačítka. V mechanických tlačítkách i spínačích jsou zákmity běžné, tak je to tímto způsobem ošetřeno.
Vlevo se dá tažením jezdce zvětšit, nebo zmenšit ikona tlačítka na ploše.

4) Následuje component macro, kde přiřadíme switch a zdáme read state, což je volba, která se neustále dotazuje na stav tlačítka, a projíždí smyčkou.
Na rozdíl od těch dvou dalších voleb, které čekají na stlačení nebo puštění tlačítka a tím zastaví procesor.
V spodu je volba kam se má stav tlačítka načíst.

5) Vytvoříme si proměnou (variable).
Kliknutím, vpravo na trojúhelníček, ve spodu je volba variables.
Poklikáním na volbu se otevře okno, ve kterém zadáváme jméno, počáteční hodnotu (než se přepíše načtením tlačítka), popis a jaký rozsah má mít.
Já zvolil Bool, protože je dostačující. 
Když by jsme například chtěli načíst hodnotu z AD převodníku, který má procesor integrovaný 10bit, tak by jsme potřebovali typ INT protože by byla max. načtená hodnota z AD 1024.

6) Přetáhneme decision (rozhodovací smyčka) a zadáme parametry.
V první kolonce si ji můžeme jakkoliv pojmenovat, v další zadáváme parametr:IF
tlacitko=1  to znamená, že když zmáčkneme na tlačítko a to se uloží do proměnné tlačítko, tak projede program pravou stranou.
Bude tudy jezdit tak dlouho, dokud je napustíme, jelikož jsme zadali parametr read state.

7) Do pravé větve rozhodovacího stromu zadáme component macro s parametrem pro led, aby se rozsvítila.

8) Do větve pro NO zadáme taky component macro tentokrát pro zhasnutí led.
Bylo by někdy potřeba změnit opačně rozhodovací úroveň, tak se to dá pohodlě změnit ve vlastnostech swap yes and no.

Nyní spustíme debugger a podíváme se jakým stylem se nám mění variables "tlacitko"
Do okna variables pravým klikem přidáme naši proměnou.
Pozor! Když máme simulation speed nastavenou na real time, tak se nám konstanta nezobrazí!
Když je stlačíme, měla by se 0 změnit na 1 a opačně.

Poznámka: na mém evo boardu tento zdroják funguje obráceně,
protože mám tlačítko pověšené na pin MCLR a tam plní opačnou funkci.
Když bych to chtěl změnit, kliknu si na rozhodovací strom a zadám volbu swap.....
Toť vše, pro dnešní lekci.

počítadlo.abz.cz