Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaImre Veres Megváltozta több, mint 6 éve
1
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat
Timer és megszakítások használata Bors Noémi, Gingl Zoltán, Mellár János, Mingesz Róbert
2
Timerek
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
4
Timer 0 (/Timer 1): Mode 2
5
8 bit auto reload mode 8-bites számláló TL0: kezdőérték
TH0: reload érték Reload: TL0 túlcsordulásakor Példa: TL0=0, TH0=252; Periódus: 𝑇= 256−𝑇𝐻0 ∙Δ 𝑡 𝑇𝐶𝐿𝐾 Δ 𝑡 𝑇𝐶𝐿𝐾 = 1 𝑓 𝑇𝐶𝐿𝐾
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
7
Timer 2 (/Timer 3): Auto-reload
16 bit-es Periódus: 𝑇=(65536−𝑇𝑀𝑅2𝑅𝐿)∙Δ 𝑡 𝑇𝐶𝐿𝐾2
8
Timer 2 auto reload
9
Megszakítások
10
Megszakításvektorok Forrás Cím sorszám Flag A flag-et a hardver törli
Reset 0x0000 - igen /INT0 külső 0x0003 IE0 Timer 0 overflow 0x000B 1 TF0 /INT1 külső 0x0013 2 IE1 Timer 1 overflow 0x001B 3 TF1 UART0 0x0023 4 RI0, TI0 nem Timer 2 overflow 0x002B 5 TF2H, TF2L SPI0 0x0033 6 SPIF, WCOL,MODF, RXOVRN SMB0 0x003B 7 SI
11
Megszakítás idődiagramja
Események (megszakítások) kezelése
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)
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
14
Valós idejű többszálú környezet
15
Éhezés
16
Éhezés
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
18
Oszcilloszkóp mérőfej használata
19
Oszcilloszkóp mérőfej
Jelvezeték ! GND ! Földelés
20
Mérés a mérőfejjel
21
Mérés a mérőfejjel
22
Mérés a mérőfejjel
23
GND elhelyezése
24
GND elhelyezése
25
Tilos! Hibás csatlakozás!
26
Tilos! Hibás csatlakozás!
27
Példa mérésre
28
Példa mérésre
29
Jegyzőkönyv készítése
30
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
31
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
32
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
33
Javítási útmutató Tájékoztató jelleggel!
34
Feladatok
35
1. feladat LED1 villogtatása 2 s-os periódusidővel a Timer 2 használatával. (LED 1 s-ig ég, 1 s-ig sötét) 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!
36
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!
37
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)
38
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
39
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
40
Hibaelhárítás Laboratory practical with the C8051Fxxx microcontroller family, Authors: Zoltán Gingl and Róbert Zoltán Mingesz, chapter 5.5
41
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.
42
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.
43
Következő óra Van előzetes feladat Lesz jegyzőkönyvkészítés
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.