1 / 32

Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat ( lev )

Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat ( lev ). Megszakítások Jelzőlámpa készítése. Makan Gergely, Mellár János, Mingesz Róbert, Boros Péter, Zana Roland. 2014. március 22. Tartalom. Timer használata Megszakításkezelés Feladatok. Timerek. Számlálók.

tadhg
Download Presentation

Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat ( lev )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat (lev) Megszakítások Jelzőlámpa készítése Makan Gergely, Mellár János, Mingesz Róbert, Boros Péter, Zana Roland 2014. március 22.

  2. Tartalom • Timer használata • Megszakításkezelés • Feladatok

  3. Timerek

  4. 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

  5. Timer 0 (/Timer 1): Mode 2

  6. 8 bit auto reload mode TL0 TF0 • 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: 0 0 t 1 0 255 0 252 1 253 1 4t 254 1 255 1 252 1 253 1 4t CLR TF0 254 0 255 0 252 1 253 1

  7. 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

  8. Timer 2 (/Timer 3): Auto-reload • 16 bit-es • Periódus:

  9. Timer 2 auto reload TMR2 =TMR2H*256 +TMR2L TMR2RL =TMR2RLH*256 +TMR2RLL TMR2RL 0 t TMR2RL+1 0 Nt 65534 0 Set TF2H (HW, interrupt) 65535 0 TMR2RL 1 TMR2RL+1 1 Nt Clear TF2H (SW) 65534 0 65535 0 TMR2RL TMR2RL 1 TMR2RL+1 1

  10. Megszakítások

  11. Megszakításvektorok

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

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

  14. 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

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

  16. Éhezés

  17. Éhezés

  18. 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

  19. A kiegészítő áramkör

  20. A kiegészítő áramkör kapcsolási rajza Mingesz Róbert

  21. A kiegészítő áramkör panelterve Mingesz Róbert

  22. Emlékeztető

  23. 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ásaA többi mellékletként (feladatonként): • C források • cwg fájlok

  24. 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

  25. Feladatok

  26. 1. feladat • LED1 villogtatása 0,5 Hz frekvenciával 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. 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?

  28. 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!

  29. 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

  30. Laboratory practical with theC8051Fxxx microcontroller family, Authors: Zoltán Gingl and RóbertZoltán Mingesz, chapter 5.5 Hibaelhárítás

  31. 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. - AzSFR értékek el vannak számolva vagy nincsenek megfelelően beírva.

  32. Timer-esidő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 interruptflag 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-ekegyszerre többféle célra használhatóak és a beállítások eltérőek.

More Related