of 32/32
Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat Makan Gergely, Mellár János, Mingesz Róbert V 5.0 2015. február 9. Timer és megszakítások használata

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

  • View
    42

  • Download
    5

Embed Size (px)

DESCRIPTION

Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat. Timer és megszakítások használata. Makan Gergely, Mellár János, Mingesz Róbert, Boros Péter, Zana Roland. 2014. február 24. Tartalom. Timer használata Megszakításkezelés Feladatok. Timerek. Számlálók. Négy 16-bites számláló - PowerPoint PPT Presentation

Text of Mikrovezérlők alkalmazástechnikája laboratóriumi gyakorlat

Compact USB measurement and analysis system for real-time fluctuation enhanced sensing

Mikrovezrlk alkalmazstechnikja laboratriumi gyakorlatMakan Gergely, Mellr Jnos, Mingesz RbertV 5.0 2015. februr 9.Timer s megszaktsok hasznlataTartalomTimer hasznlataMegszaktskezelsFeladatok22Timerek3SzmllkNgy 16-bites szmllKlnbz zemmdokVlaszthat rajelforrsokEsemnyek szmllsaPeriodikus esemnyek generlsaId-, frekvencia-, fzisszgmrs44Timer 0 (/Timer 1): Mode 25

58 bit auto reload mode6012552522532542552522532542552522530t4t4tTL0TF0001111110011CLR TF0Timer zembe helyezseMikrovezrl rajel belltsa (SYSCLK)zemmd kivlasztsa (8 bit auto reload)rajel forrs kivlasztsa (SYSCLK/x)Timer engedlyezseReload rtk kiszmolsa (TH0)TL0 = TH0 7Timer 2 (/Timer 3): Auto-reload8

8Timer 2 auto reload9TMR2RLTMR2RL+1655340tNt00011001165535TMR2RLTMR2RL+16553465535TMR2RLTMR2RL+1Clear TF2H (SW)TMR2=TMR2H*256+TMR2LTMR2RL=TMR2RLH*256+TMR2RLLNtSet TF2H(HW, interrupt)TMR2RLMegszaktsok10MegszaktsvektorokForrsCmsorszmFlagA flag-et ahardver trliReset0x0000--igen/INT0 kls0x00030IE0igenTimer 0 overflow0x000B1TF0igen/INT1 kls0x00132IE1igenTimer 1 overflow0x001B3TF1igenUART00x00234RI0, TI0nemTimer 2 overflow0x002B5TF2H, TF2LnemSPI00x00336SPIF, WCOL,MODF, RXOVRNnemSMB00x003B7SInem11Megszakts iddiagramjaEsemnyek (megszaktsok) kezelse12Utasts #1Utasts #2Utasts #3LCALLMegszaktsialprogramRETItttta fprogram nem fut esemnyMegszaktskezel rutinvoid timermegszak(void) __interrupt INT_TIMER2{TF2 = 0; // timer flag trlsemaga a kd;}INT_TIMER2: a 2. timer megszaktsvektornak sorszma (header file)13Timer megszakts hasznlataMegszaktskezel rutin definilsa !Timer megszakts engedlyezseMegszaktsok globlis engedlyezse14Vals idej tbbszl krnyezet15hezs16

16hezs17

17Tippek tbbszl krnyezethezhezs elkerlseGyorsan vgrehajtd megszaktsrutinokHosszabb feldolgozsok: f szlElegend processzorsebessgGyakorisg megfelel kivlasztsa

volatile vltozk: biztonsgos hasznlat tbbszl krnyezetben18Jegyzknyv ksztse19Mindenkpp szksges mellkletek*.cwg fjlok (konfig wizard konfigurcija)*.c(maga az elksztett kd)Esetleg header fjlok, ha azok mdostva lettek20Kd beillesztst ignyl feladatokCsak a fontos rszletekNEM az egsz kd, fleg nem a konfigurcis sorokkal21

Program bemutatsaNlkle nem jr pont(a korbbi (rsz)feladatokra sem)Lehet szmtani:KrdsekreJavaslatokra22Javtsi tmutatTjkoztat jelleggel!

23

Feladatok241. feladatLED1 villogtatsa 2 s-os peridusidvel a Timer 2 hasznlatval.Vlassza ki a megfelel processzorsebessg s timer belltsokat. Rszletezze a szmolst!Mrje pontosan a villogs frekvencijt!252. feladatAmikor a LED1 aktv, a LED2 villogjon 6 Hz frekvencival.LED1 vezrlst a Timer 2 vgezze, a LED2-t pedig a Timer 1.Vlassza ki a megfelel processzorsebessg s timer belltsokat. Rszletezze a szmolst!

26TippekA megszaktsok frekvencija tl nagy Szoftveres kiterjeszts: kln szmllt kell hasznlni a rutinon bell (lsd elads plda)27Jegyzknyv ksztseFormtum megrzse!(a fekete rszek a hallgati tartalom)Csak a lnyeges kdelemek bersaA tbbi mellkletknt (feladatonknt):C forrsokcwg fjlok28Kit zembe helyezseJumperek ellenrzseSzalagkbel csatlakoztatsaUSB kbel csatlakoztatsaAC/DC adapter csatlakoztatsaKikapcsols fordtott sorrendben29

29HibaelhrtsLaboratory practical with the C8051Fxxx microcontroller family, Authors: Zoltn Gingl and Rbert Zoltn Mingesz, chapter 5.530

Timer-es idztsProblma:- A Timer nem fut vagy nem vrt idzts trtnik. Lehetsges okok: - A Timer nincs engedlyezve.- A Timer nem megfelelen van belltva. - A bemen rajel nem megfelelen van belltva.- A Timer0 s a Timer1 lehet, hogy kapuzott (gate) mdban van s a gate jel sosem lesz aktv. - Az SFR rtkek el vannak szmolva vagy nincsenek megfelelen berva.31Timer-es idzts megszaktssalProblma : - A Timer nem fut vagy a megszaktsi peridusid rtke nem egyezik meg a vrttal.Lehetsges okok : - A Timer nincs engedlyezve. - A kapcsold megszakts nincs engedlyezve.- Az interrupt flag nincs trlve ezrt folyamatos megszakts generldik. Ebben az esetben szinte az sszes processzorid elmegy.- Egyb megszakts kezel rutinok vgrehajtsa ksleltetheti a timer megszaktst.- A megszakts kezel rutin vgrehajtsa tbb idt vehet ignybe, mint amennyi id eltelik kt megszakts kztt; a tlcsordulsi gyakorisg tl magas.- A timer-ek egyszerre tbbfle clra hasznlhatak s a belltsok eltrek.32