Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Timer és megszakítások használata Mingesz Róbert V 5.0 2015. március 16. 1.

Hasonló előadás


Az előadások a következő témára: "Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Timer és megszakítások használata Mingesz Róbert V 5.0 2015. március 16. 1."— Előadás másolata:

1 Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Timer és megszakítások használata Mingesz Róbert V március 16. 1

2 Timerek 2

3 Számlálók Négy 16-bites számláló Különböző üzemmódok Választható órajelforrások Események számlálása Periodikus események generálása Idő-, frekvencia-, fázisszögmérés 3

4 Timer 0 (/Timer 1): Mode 2 4

5 8 bit auto reload mode tt 4t4t 4t4t TL0TF CLR TF0

6 Timer üzembe helyezése Mikrovezérlő órajel beállítása (SYSCLK) Üzemmód kiválasztása (8 bit auto reload) Órajel forrás kiválasztása (SYSCLK/x) Timer engedélyezése Reload érték kiszámolása (TH0) TL0 = TH0 6

7 Timer 2 (/Timer 3): Auto-reload 7

8 Timer 2 auto reload 8 TMR2RL TMR2RL tt NtNt TMR2RL TMR2RL TMR2RL TMR2RL+1 Clear TF2H (SW) TMR2 =TMR2H*256 +TMR2L TMR2RL =TMR2RLH*256 +TMR2RLL NtNt Set TF2H (HW, interrupt) TMR2RL

9 Megszakítások 9

10 Megszakításvektorok ForrásCímsorszámFlagA flag-et a hardver törli Reset0x0000--igen /INT0 külső0x00030IE0igen Timer 0 overflow0x000B1TF0igen /INT1 külső0x00132IE1igen Timer 1 overflow0x001B3TF1igen UART00x00234RI0, TI0nem Timer 2 overflow0x002B5TF2H, TF2Lnem SPI00x00336SPIF, WCOL,MODF, RXOVRN nem SMB00x003B7SInem 10

11 Megszakítás idődiagramja Események (megszakítások) kezelése 11 Utasítás #1 Utasítás #2 Utasítás #3 LCALL Megszakítási alprogram Megszakítási alprogram RETI tt tt tt tt a főprogram nem fut esemény

12 Megszakításkezelő rutin void timermegszak(void) __interrupt INT_TIMER2 { TF2 = 0; // timer flag törlése maga a kód; } INT_TIMER2: a 2. timer megszakításvektorának sorszáma (header file) 12

13 Timer megszakítás használata Megszakításkezelő rutin definiálása ! Timer megszakítás engedélyezése Megszakítások globális engedélyezése 13

14 Valós idejű többszálú környezet 14

15 Éhezés 15

16 Éhezés 16

17 Tippek többszálú környezethez Éhezés elkerülése – Gyorsan végrehajtódó megszakításrutinok – Hosszabb feldolgozások: fő szál – Elegendő processzorsebesség – Gyakoriság megfelelő kiválasztása volatile változók: biztonságos használat többszálú környezetben 17

18 A kiegészítő áramkör 18

19 A kiegészítő áramkör kapcsolási rajza 19 oldal

20 A kiegészítő áramkör panelterve 20 oldal

21 Jegyzőkönyv készítése 21

22 Mindenképp szükséges mellékletek *.cwg fájlok (konfig wizard konfigurációja) *.c (maga az elkészített kód) Esetleg header fájlok, ha azok módosítva lettek 22

23 Kód beillesztését igénylő feladatok Csak a fontos részletek NEM az egész kód, főleg nem a konfigurációs sorokkal 23

24 Program bemutatása Nélküle nem jár pont (a korábbi (rész)feladatokra sem) Lehet számítani: – Kérdésekre – Javaslatokra 24

25 Javítási útmutató Tájékoztató jelleggel! 25

26 Feladatok 26

27 1. feladat LED1 villogtatása 2 s-os periódusidővel a Timer 2 használatával. Válassza ki a megfelelő processzorsebesség és timer beállításokat. Részletezze a számolását! Mérje pontosan a villogás frekvenciáját! 27

28 2. feladat Amikor a LED1 aktív, a LED2 villogjon 6 Hz frekvenciával. LED1 vezérlését a Timer 2 végezze, a LED2-t pedig a Timer 1. Válassza ki a megfelelő processzorsebesség és timer beállításokat. Részletezze a számolását! 28

29 Tippek A megszakítások frekvenciája túl nagy → Szoftveres kiterjesztés: külön számlálót kell használni a rutinon belül (lásd előadás példa) 29

30 Jegyzőkönyv készítése Formátum megőrzése! (a fekete részek a hallgatói tartalom) Csak a lényeges kódelemek beírása A többi mellékletként (feladatonként): – C források – cwg fájlok 30

31 Kit üzembe helyezése Jumperek ellenőrzése Szalagkábel csatlakoztatása USB kábel csatlakoztatása AC/DC adapter csatlakoztatása Kikapcsolás fordított sorrendben 31

32 Hibaelhárítás Laboratory practical with the C8051Fxxx microcontroller family, Authors: Zoltán Gingl and Róbert Zoltán Mingesz, chapter

33 Timer-es időzítés Probléma: - A Timer nem fut vagy nem várt időzítés történik. Lehetséges okok: - A Timer nincs engedélyezve. - A Timer nem megfelelően van beállítva. - A bemenő órajel nem megfelelően van beállítva. - A Timer0 és a Timer1 lehet, hogy kapuzott (gate) módban van és a gate jel sosem lesz aktív. - Az SFR értékek el vannak számolva vagy nincsenek megfelelően beírva. 33

34 Timer-es időzítés megszakítással Probléma : - A Timer nem fut vagy a megszakítási periódusidő értéke nem egyezik meg a várttal. Lehetséges okok : - A Timer nincs engedélyezve. - A kapcsolódó megszakítás nincs engedélyezve. - Az interrupt flag nincs törölve ezért folyamatos megszakítás generálódik. Ebben az esetben szinte az összes processzoridő elmegy. - Egyéb megszakítás kezelő rutinok végrehajtása késleltetheti a timer megszakítást. - A megszakítás kezelő rutin végrehajtása több időt vehet igénybe, mint amennyi idő eltelik két megszakítás között; a túlcsordulási gyakoriság túl magas. - A timer-ek egyszerre többféle célra használhatóak és a beállítások eltérőek. 34

35 3. feladat A kiegészítő panel megismerése. LED-ek ki-be kapcsolása. Mikor világít egy, a panelen lévő LED? 35

36 4. feladat Jelzőlámpa készítése: – Zöld jelzés: 5 s – Sárga: 1 s Keresztező forgalom irányítása A feladatot egy timer rutin lássa el! 36

37 Tipp Változó deklarálása, mely minden egyes timer megszakításnál növekszik Megadott értékek esetén kimeneti konfiguráció megváltoztatása Maximum elérésekor változó törlése 37

38 5. feladat Program bővítése különböző funkciókkal: – Gépjármű „érzékelése” (egyik irány csak akkor kap zöldet, ha megnyomunk egy gombot) – Mentő üzemmód – Éjszakai üzemmód 38


Letölteni ppt "Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Timer és megszakítások használata Mingesz Róbert V 5.0 2015. március 16. 1."

Hasonló előadás


Google Hirdetések