Mechatronika és mikroszámítógépek

Hasonló dokumentumok
Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája

1. Bevezetés. 2. A mikroszámítógépek felépítése

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Az vevő- és vezérlőáramkör programja

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Mikrovezérlők Alkalmazástechnikája

8051-es mikrovezérlő. mikrovezérlő 1980-ból napjainkban

Mechatronika és mikroszámítógépek. 2016/2017 I. félév. Analóg-digitális átalakítás ADC, DAC

MSP430 programozás Energia környezetben. Az I/O portok kezelése

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája

Mikrorendszerek tervezése

Jelfeldolgozás a közlekedésben. 2017/2018 II. félév. Analóg-digitális átalakítás ADC, DAC

A Számítógépek felépítése, mőködési módjai

DDS alapú szinusz jelgenerátor fejlesztése

Jelfeldolgozás a közlekedésben

16F628A megszakítás kezelése

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése

Az AVR ATmega128 mikrokontroller

Mikrovezérlők Alkalmazástechnikája

Az AVR programozás alapjai. Előadja: Both Tamás

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Érzékelők és beavatkozók I.

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 3. rész

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája

Mechatronika és mikroszámítógépek

Mechatronika és mikroszámítógépek

Dr. Schuster György szeptember 27.

Az interrupt Benesóczky Zoltán 2004

Programozási segédlet DS89C450 Fejlesztőpanelhez

Digitális technika (VIMIAA01) Laboratórium 9

Bevezetés az assembly nyelvbe

Digitális technika (VIMIAA01) Laboratórium 9

Az MSP430 energiatakarékos használata

Számítógép felépítése

Labor 2 Mikrovezérlők

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

Mikrokontrollerek. Tihanyi Attila május 8

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

A MiniRISC processzor

A mikroszámítógép felépítése.

ARM Cortex magú mikrovezérlők

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Beágyazott és Ambiens Rendszerek

PIC tanfolyam 2013 tavasz 2. előadás

Nagy Gergely április 4.

Architektúra, megszakítási rendszerek

Labor gyakorlat Mikrovezérlők

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Digitális technika (VIMIAA01) Laboratórium 11

Mechatronika, robottechnika és mikroszámítógépek, I. ZH, NÉV: október 20. 8:15-10:00, ST122 NEPTUN KÓD:...

Dr. Oniga István DIGITÁLIS TECHNIKA 9

Hobbi Elektronika. A digitális elektronika alapjai: Sorrendi logikai áramkörök 2. rész

Mikrovezérlők programozása

Digitális technika (VIMIAA01) Laboratórium 11

Mikrovezérlők Alkalmazástechnikája

MCS-51-es MIKROKONTROLLER ÖSSZEFOGLALÓ KÉSZÍTETTE: DR. KÓNYA LÁSZLÓ Tartalomjegyzék

Az MSP430 mikrovezérlők digitális I/O programozása

Bevezetés a számítástechnikába

Aritmetikai utasítások I.

Bevezetés az assembly nyelvbe

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

Számítógépek felépítése, alapfogalmak

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

ARM Cortex magú mikrovezérlők

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

Programozás alapjai. 10. előadás

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Mérési jegyzőkönyv. az ötödik méréshez

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

1: Idõ(tartam), frekvencia (gyakoriság) mérés

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Labor gyakorlat Mikrovezérlők

DSP architektúrák dspic30f család memória kezelése

Egyszerű RISC CPU tervezése

2. Elméleti összefoglaló

A Texas Instruments MSP430 mikrovezérlőcsalád

Digitális ki-bemenetek kezelése, bitszintű műveletek

7.hét: A sorrendi hálózatok elemei II.

Érzékelők és beavatkozók I.

Számítógép Architektúrák

A Számítógépek hardver elemei

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

8. Laboratóriumi gyakorlat INKREMENTÁLIS ADÓ

Silabs STK3700, Simplicity Studio laborgyakorlat

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

ARM (Advanced RISC Machine)

Assembly. Iványi Péter

Interrupt. ile ile 1 / 81

Átírás:

Mechatronika és mikroszámítógépek 2018/2019 I. félév Órajelek, időzítők, megszakítások (4. lab)

Órajel Internal Oscillator Control Register (OSCICN 0xB2) Bit Symbol Leírás 7 MSCLKE Missing Clock enable bit 0/1: Detektor tiltva, engedélyezve 6-5 fenntartva Read = 00b, Write = don t care External Oscillator C ontrol Register (OSCXCN 0xB1) Bit Symbol Leírás 7 XTLVLD Crystal Oscillator Valid Flag 0/1: Használton kívül, vagy nem stabil/fut és stabil 4 IFRDY 3 CLKSL Internal Oscillator Frequency Ready Flag 0/1: Belső oszcillátor nem fut/fut az IFCN1- IFCN0 flagek szerint beállított frekvencián System Clock Source Select Bit 0/1: Belső/Külső oszcillátor használata rendszer órajelként 6-4 XOSCMD2-0 External Oscillator Mode Bits 00x: Kikapcsolva 010: Rendszer órajel külső CMOS-ból 011: Rendszer órajel külső CMOS-ból /2 10x: RC/C /2 110: Kristály oszcillátor (22.1184 MHz) 111: Kristály oszcillátor/2 2 IOSCEN 1-0 IFCN1-IFCN0 Internal Oscillator Enable Bit 0/1: Belső oszcillátor tiltva/engedélyezve Internal Oscillator Frequency Control Bit Tipikus órajelek: 00: 2MHz 01: 4MHz 10: 8MHz 11: 16MHz 3 fenntartva 2-0 XFCN2-0 Read = undefined, Write = don t care External Oscillator Frequency Control Bit Ha nagyobb 6.7 Mhz->111 2018.09.26. Órajelek, időzítők, megszakítások 2

Külső kristály használata Oscillator_Init: mov OSCXCN, #0x67 ; Wait min. 1ms for init mov R0, #03 Osc_Wait1: clr A Osc_Wait0: djnz ACC, Osc_Wait0 djnz R0, Osc_Wait1 ; Várakozás XTLVLD-re Osc_Wait2: mov A, OSCXCN jnb ACC.7, Osc_Wait2 mov OSCICN, #0x0B ret OSCXCN XTLVLD 0 XOSCMD2-0 110 kristály oszc. használata ---- 0 XFCN2-0 111 >6.7 MHz OSCICN MSCLKE 0 nincs detector 0 IFRDY 0 nem használ IFCN Flag-et CLKSL 1 Külső oszcillátor használata rendszerórajelként IOSCEN 0 kristály oszcillátor IFCN1-IFCN0 11 tip. 16MHz 2018.09.26. Órajelek, időzítők, megszakítások 3

Órajel Órajel regiszterek, összefoglalás: Pl: OSCICN: belső órajel frekvenciájának beállítása OSCXCN: külső kristály oszcillátor beállítása 4 MHz belső: mov OSCICN,#0x15 vagy #0x00010101 22,1184 MHz külső: mov OSCXCN,#0x67 de várni kell, ciklus!!!!!!!! #0b01100111 11,0592 MHz külső: mov OSCXCN,#0x77 de várni kell, ciklus!!!!!!!! #0b01110111 2018.09.26. Órajelek, időzítők, megszakítások 4

Timer 0-1 - counter 16 bites Timer THx: felső 8 bit (x: 0 vagy 1) TLx: alsó 8 bit (x: 0 vagy 1) Timer: Timer x overflow flag-et állítja TCON 5./7. bitje (TF0/TF1) JK tárolós megvalósítás, pl. 2018.09.26. Órajelek, időzítők, megszakítások 5

Timer 0-1 - counter Beállítás: Timer Mode Register (TMOD 0x89) Bit Symbol 7 GATE1 6 C/T1 5-4 T1M1- T1M0 3 GATE0 2 C/T0 1-0 T0M1- T0M0 Leírás Timer 1 Gate Control 0: Timer 1 engedélyezve, ha TR1 (TCON.6)=1, INT1 állapotától függetlenül 1: Timer 1 csak akkor engedélyezett, ha TR1=1 ÉS INT1 = 1 Counter/Timer 1 Select 0: Timer funkció: Timer 1 léptetése órajel (és T1M, CKCON.4 ) függvényében 1: Számláló funkció: a külső megszakítás 1-0 váltása esetén lép Timer 1 Mode Select Timer 0 Gate Control 0: Timer 0 engedélyezve, ha TR0 (TCON.4)=1, INT0 állapotától függetlenül 1: Timer 0 csak akkor engedélyezett, ha TR0=1 ÉS INT0 = 1 Counter/Timer 0 Select 0: Timer funkció :Timer 0 léptetése órajel (és T0M, CKCON.3 ) függvényében 1: Számláló funkció: a külső megszakítás 1-0 váltása esetén lép Timer 0 Mode Select THx és TLx Registers, 16 bit Timer 0-1 Mode Select M1 M0 Mode Leírás 0 0 0 13 bit Counter/Timer (TL-alsó 5bit,TH-8bit) 0 1 1 16 bit Counter/Timer 1 0 2 1 1 3 8 bit Counter/Timer with Auto reload (TL számlálása, TH-ból újratöltés) Timer 1: Inactive Timer 0: Two 8 bit Counter/Timers Clock Control Register (CKCON 0x8E) BIT Symbol Leírás 4 T1M 3 T0M 0: Rendszer órajel /12 használata 1: Rendszer órajel használata 2018.09.26. Órajelek, időzítők, megszakítások 6

Timer 0-1 Működés: Timer Control Register (TCON 0x88) bit addressable pdf 184. oldal Bit Symbol Leírás 7 TF1 6 TR1 5 TF0 4 TR0 3 IE1 2 IT1 1 IE0 0 IT0 Timer 1 Overflow Flag 0/1: Nincs/Van túlcsordulás Hardver által állított FLAG a Timer 1 túlcsordulása esetén. (szoftveresen is törölhető, és interrupt-tal is) Timer 1 Run Control 0/1: Timer 1 tiltva/engedélyezve Timer 0 Overflow Flag 0/1: Nincs/Van túlcsordulás Hardver által állított FLAG a Timer 0 túlcsordulása esetén. (szoftveresen is törölhető, és interrupt-tal is) Timer 0 Run Control 0/1: Timer 0 tiltva/engedélyezve External Interrupt 1 Hardver által állított FLAG a amikor a megfelelő típusú esemény bekövetkezik/fennáll az /INT1-en (szoftveresen is törölhető, és interrupt-tal is) Interrupt 1 Type Select 0/1: /INT1 szintvezérelt/élvezérelt External Interrupt 0 Hardver által állított FLAG a amikor a megfelelő típusú esemény bekövetkezik/fennáll az /INT0-en (szoftveresen is törölhető, és interrupt-tal is) Interrupt 0 Type Select 0/1: /INT0 szintvezérelt/élvezérelt 2018.09.26. Órajelek, időzítők, megszakítások 7

Timer beállítás, példa 1 másodperc (100 x 10 ms) beállítása, külső kristály oszcillátor, Timer 0 használata 22,1184 MHz TMOD, pdf: 183. oldal mov TMOD,#0b00000001 #0x01 TCON, pdf: 184. oldal, minden bitnek van neve, ismertek setb TR0 engedélyezi Timer 0 futását, amíg nem állítjuk be, nem fog futni a Timer CKCON, pdf 182. oldal, /12 beállítás: anl CKCON,#0xF7 3. bit 0!, többi 1, órajel a vezérléshez: 1843200 1sec alatt 2018.09.26. Órajelek, időzítők, megszakítások 8

Timer beállítás, példa THx, TLx: probléma: 16 bit: max. 65535 (#0xFFFF) ha 100 x 10 ms: 18432 t kell számolni 10 ms alatt, 65535-18432 =47103 = B7FF, ekkor fog túlcsordulni, 47103=#0xB7FF mov TH0,#0xB7 mov TL0,#0xFF A timer-t célszerű megszakításként használni! Ahhoz, hogy a timer0 megszakítás legyen, további beállítások szükségesek, lásd később. 2018.09.26. Órajelek, időzítők, megszakítások 9

Megszakítás, Interrupt A megszakítás egy olyan esemény, vagy feltétel teljesülése, amely felfüggeszti a program futását, a vezérlést átadja egy speciális szubrutinnak (ISR-Interrupt Service Routine) Az egy időben teljesülő megszakítások hierarchiáját az interrupt service priority dönti el. 2018.09.26. Órajelek, időzítők, megszakítások 10

Az Interrupt folyamata 1. A CPU befejezi az aktuális utasítást 2. A CPU elmenti a Program Counter-t (PC) a stack-be pusholással 3. A PC-be a megfelelő ISR vektor kerül 4. Az ISR végrehajtásra kerül 5. Az Interrupt a RETI utasításig tart 2018.09.26. Órajelek, időzítők, megszakítások 11

Megszakítások a C8051F020 eszközön, prioritás Interrupt Source Interrupt Vector Priority Order Enable Flag Reset 0000 Top Always Enabled External Interrupt 0 (/INT0) 0003 0 EX0 (IE.0) Timer 0 Overflow 000B 1 ET0 (IE.1) External Interrupt 1 (/INT1) 0013 2 EX1 (IE.2) Timer 1 Overflow 001B 3 ET1 (IE.3) UART0 0023 4 ES0 (IE.4) Timer 2 Overflow 002B 5 ET2 (IE.5) Serial Peripheral Interface 0033 6 ESPI0 (EIE1.0) SMBus Interface 003B 7 ESMB0 (EIE1.1) ADC0 Window Comparator 0043 8 EWADC0 (EIE1.2) Programmable Counter Array 004B 9 EPCA0 (EIE1.3) Comparator 0 Falling Edge 0053 10 ECP0F (EIE1.4) Comparator 0 Rising Edge 005B 11 ECP0R (EIE1.5) Comparator 1 Falling Edge 0063 12 ECP1F (EIE1.6) Comparator 1 Rising Edge 006B 13 ECP1R (EIE1.7) Timer 3 Overflow 0073 14 ET3 (EIE2.0) ADC0 End of Conversion 007B 15 EADC0 (EIE2.1) Timer 4 Overflow 0083 16 ET4 (EIE2.2) ADC1 End of Conversion 008B 17 EADC1 (EIE2.3) External Interrupt 6 0093 18 EX6 (EIE2.4) External Interrupt 7 009B 19 EX7 (EIE2.5) UART1 00A3 20 ES1 (EIE2.6) External Crystal OSC Ready 00AB 21 EXVLD (EIE2.7) 2018.09.26. Órajelek, időzítők, megszakítások 12

Megszakítások beállítása Timer Control Register (TCON 0x88) bit addressable Bit Symbol Leírás 7 TF1 6 TR1 5 TF0 4 TR0 3 IE1 2 IT1 1 IE0 0 IT0 Timer 1 Overflow Flag 0/1: Nincs/Van túlcsordulás Hardver által állított FLAG a Timer 1 túlcsordulása esetén. (szoftveresen is törölhető, és interrupt-tal is) Timer 1 Run Control 0/1: Timer 1 tiltva/engedélyezve Timer 0 Overflow Flag 0/1: Nincs/Van túlcsordulás Hardver által állított FLAG a Timer 0 túlcsordulása esetén. (szoftveresen is törölhető, és interrupt-tal is) Timer 0 Run Control 0/1: Timer 0 tiltva/engedélyezve External Interrupt 1 Hardver által állított FLAG a amikor a megfelelő típusú esemény bekövetkezik/fennáll az /INT1-en (szoftveresen is törölhető, és interrupt-tal is) Interrupt 1 Type Select 0/1: /INT1 szintvezérelt/élvezérelt External Interrupt 0 Hardver által állított FLAG a amikor a megfelelő típusú esemény bekövetkezik/fennáll az /INT0-en (szoftveresen is törölhető, és interrupt-tal is) Interrupt 0 Type Select 0/1: /INT0 szintvezérelt/élvezérelt 2018.09.26. Órajelek, időzítők, megszakítások 13

Megszakítások programozása.org direktíva: hová fordítsa az ez utáni utasításokat a kódszegmensbe IT vektorok: olyan memóriaterület, ahová a felhasználó nem fér hozzá acall interrupt, reti External Interrupt 0 (/INT0).org 0x3 ;ROM 3-as byte-tól Timer 0 Overflow (T0).org 0xB ;ROM 11-es byte-tól External Interrupt 1 (/INT1).org 0x13 ;ROM 13-as byte-tól Timer 1 Overflow (T1).org 0x1B ;ROM 27-es byte-tól 2018.09.26. Órajelek, időzítők, megszakítások 14

Megszakítások beállítása Interrupt Enable Register (IE 0xA8) bit addressable Bit Symbol Leírás 7 EA Enable All Interrupts 0/1: Minden interrupt tiltása (kivéve reset)/engedélyezése a megfelelő beállításoknak megfelelően 6 IEGF0 General Purpose Flag 0 Általános célú flag 5 ET2 4 ES0 3 ET1 2 EX1 1 ET0 0 EX0 Enable Timer 2 Interrupt 0/1: Timer 2 Interrupt tiltása/engedélyezése TF2 (T2CON.7) Enable UART0 Interrupt 0/1: UART0 Interrupt tiltása/engedélyezése Enable Timer 1 Interrupt 0/1: Timer 1 Interrupt tiltása/engedélyezése TF1 (TCON.7) Enable External Interrupt 1 0/1: External interrupt 1 tiltása/engedélyezése (/INT1) Enable Timer 0 Interrupt 0/1: Timer 0 Interrupt tiltása/engedélyezése TF0 (TCON.5). Enable External Interrupt 0 0/1: External interrupt 0 tiltása/engedélyezése (/INT0) 2018.09.26. Órajelek, időzítők, megszakítások 15

Megszakítások beállítása Timer0 A Timer0-nál ismertetett beállításokon túl: setb EA engedélyezi a megszakításokat, EA ismert setb ET0 engedélyezi, hogy Timer0 megszakítás legyen 2018.09.26. Órajelek, időzítők, megszakítások 16

Folyamatábra órai program A TF0 bitet a program automatikusan, az időzítő lejártakor állítja be 1-be! A TF==1 hatására fellép a timer0 megszakítás, aminek hatására lefut a jobb oldali algoritmus! A program elmenti azt, ahonnan a megszakítás kilép, és ahová a lefutás után visszalép! 2018.09.26. Órajelek, időzítők, megszakítások 17

A következő órára Házi feladat: Oldjunk meg egy tetszőleges programot az alábbi példák közül! 2014. november 3. PZH/A csak az első két alpont!, 2015. október 19. 1/B, 2015. október 22. 2/B, A HF programok megtalálhatók a Gyakorló példák/asm ZH példák között! Gyakorló példák a honlapon! Oldjuk meg valamennyi eddigi példát delay helyett Timer vezérléssel! (Eddigi HF-eket is!) Végtelen ciklus kell, ahonnan a program kilép, és ahová visszalép! Segítség: Tankönyv 5. és 11. fejezetek 2018.09.26. Órajelek, időzítők, megszakítások 18

Órajelek, időzítők, megszakítások Vége a negyedik labornak. 19