Digitální učební materiál Autor: Ing. Peter Podoba Předmět/vzdělávací oblast: Digitální technika Tematická oblast: Mikroprocesorová technika Téma: Časová smyčka – výpočet doby čekání Ročník: 4. Datum vytvoření: srpen 2013 Název: VY_32_INOVACE_11.1.08.ELE Anotace: Princip vytvoření časové smyčky. Postup výpočtu doby čekání. Materiál inovativním způsobem zužuje vztah mezi teoretickou a praktickou výukou. Vlastní schémata provázejí žáka krok za krokem úzce specializovaným tématem a usnadňují jeho porozumění. Multimediální výuka se stává názornější a podporuje zájem a aktivitu i u slabších žáků. Metodický pokyn: Prezentace je primárně určena pro výklad v hodině, v odborném výcviku tvoří vhodný doplněk při odborných instruktážích před zahájením praktických činností, ale díky své názornosti může být využita i k samostudiu a pro distanční formu vzdělávání. Vyžaduje použití multimediálních prostředků – PC, dataprojektoru, popř. interaktivní tabule. Otázky na konci tématu ověřují, jak žáci danou problematiku zvládli, a po vytištění je lze použít i jako samostatný test.
Mikroprocesory PIC 16Fxx Časové smyčky Jednoduchá časová smyčka (výpočet čekací doby)
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky V předešlých lekcích jsme se naučili přiřazovat pinům funkci vstupu nebo výstupu a naučili jsme se větvit program pomocí jednoduché podmínky. Zkoušeli jsme na simulátoru postupné rozsvěcování skupiny LED. Simulátor umožňuje pozorovat vnitřní stavy procesoru ve velice zpomaleném režimu, a proto se rozsvěcování LED zdálo přirozené. V reálném čase ale všechny děje proběhnou mnohoticíckrát rychleji. Proto musíme vytvářet podprogramy s přesně definovaným zpožděním - časové smyčky.
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky U procesorů PIC 16Fxx trvá jeden strojový cyklus čtyři takty oscilátoru. V případě použití krystalu 4 MHz se vykoná za sekundu milión instrukcí. (Ve skutečnosti míň, protože některé instrukce potřebují dva strojové cykly.) Pokud tedy známe, kolik cyklů která instrukce potřebuje, můžeme si snadno vypočítat délku běhu programu. Stejně tak si můžeme vypočítat, kolik instrukcí musí proběhnout v uzavřené smyčce, abychom dosáhli požadované doby čekání.
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Příklad výpočtu čekací doby. Čekání Čítač = 0 1 Čítač = počáteční hodnota Konec čekání Čítač = Čítač - 1 t init t dekrementace t testu Vývojový diagram čekací smyčky.
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Na začátku nastavíme do čítače počáteční hodnotu, například 255. Poté otestujeme, zda je tato hodnota rovná nule. Pokud ne, snížíme stav čítače o jedničku (dekrementujeme obsah čítače). To provádíme tak dlouho, dokud není splněna podmínka, že je obsah čítače roven nule. tceklová = tinit + ttestu + n * (tdekrementace + ttestu)
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky V případě n = 255 (maximální hodnota) a při frekvenci krystalu 4MHz by platilo: tinit = 2 SC (strojové cykly), ttestu = 2 SC, tdekr = 2 SC. Celková doba čekání při n = 255 bude tedy: 2+2+255*(2+2) = 1024 SC. Převedeno na čas je to: 0,000001*1024 = 0,001024 s, čili cca jednu milisekundu. Kdybychom chtěli pomocí této smyčky vytvořit blikání LED, tak by efekt blikání byl nulový, protože čekací doba je příliš krátká. Tuto dobu lze prodloužit vnitřním dělením taktovací frekvence až 1:256, nebo vnořením další čekací smyčky.
Mikroprocesory PIC 16Fxx PIC 16F84A časové smyčky Kontrolní otázka: Kolik strojových cyklů vykoná smyčka při hodnotě čítače 100? Jaký uplyne čas při frekvenci krystalu 1 MHz? V případě n = 100 a při frekvenci krystalu 1MHz by platilo: tinit = 2 SC (strojové cykly), ttestu = 2 SC, tdekr = 2 SC. Celková doba čekání při n = 100 bude tedy: 2+2+100*(2+2) = 404 SC. Převedeno na čas je to: 0,000004*404 = 0,001616 s.
Použité zdroje: HRBÁČEK, Jiří. Moderní učebnice programování jednočipových mikrokontrolérů PIC - 1. díl. 1. vyd. Praha: BEN – technická literatura, 2004. ISBN 80-7300-136-5. HRBÁČEK, Jiří. Moderní učebnice programování jednočipových mikrokontrolérů PIC.- 2. díl 1. vyd. Praha: BEN - technická literatura, 2007, 141 s. ISBN 978-80-7300-137-7. PIC16F84A Data Sheet 18-pin Enhanced FLASH/EEPROM 8-bit Microcontroller [on line]. 2004 [cit. 2013-02-03]. Dostupné z: http://www.microchip.com/TechDoc.aspx?type=datasheet Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Peter Podoba.