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

Hasonló előadás


Az előadások a következő témára: "Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat"— Előadás másolata:

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


Letölteni ppt "Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat"

Hasonló előadás


Google Hirdetések