IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

Podobné dokumenty
Jednočipové mikropočítače

Strojový kód. Instrukce počítače

IMTEE Přednáška č. 11

Metody připojování periferií BI-MPP Přednáška 2

Struktura a architektura počítačů (BI-SAP) 9

Přerušovací systém s prioritním řetězem

Přerušení POT POT. Přerušovací systém. Přerušovací systém. skok do obslužného programu. vykonávaný program. asynchronní událost. obslužný.

PK Design. EVMS-mega128 v1.0. Výukové příklady. Výuková deska s mikrokontrolerem ATmega128. Verze dokumentu 1.0 ( )

Obsluha periferních operací, přerušení a jeho obsluha, vybavení systémových sběrnic

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Programovací techniky pro práci v reálném čase

Ústav radioelektroniky

Algoritmizace a programování

Základní zapojení MCU do el. obvodu. Zdroje taktovacího kmitočtu. IMTEE Přednáška č. 7. reset, oscilátor, blokování napájení

Obvody a architektura počítačů. Jednoprocesorové počítače

8. Laboratoř: Aritmetika a řídicí struktury programu

Ústav radioelektroniky

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Struktura a architektura počítačů (BI-SAP) 7

Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

RISC a CISC architektura

3. Počítačové systémy

Výpočet v módu jádro. - přerušení (od zařízení asynchronně) - výjimky - softvérové přerušení. v důsledku událostí


Petr Krajča. 26. říjen, 2012

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systémová struktura počítače

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Dekódování signálu z kvadraturního enkodéru 1

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Periferní operace využívající přerušení

MIKROPOČÍTAČOVÉ SYSTÉMY

ISU Cvičení 7. Marta Čudová

PB153 Operační systémy a jejich rozhraní

Použití programovatelného čítače 8253

Historie osmibitových mikroprocesoru a mikroradicu ZILOG.

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D.

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start...

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Přednášející: Zdeněk Kotásek. Ústav počítačových systémů, místnost č. 25

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Periferní operace využívající přerušení

ČEMU ROZUMÍ MIKROPROCESOR?

Úvod do mobilní robotiky AIL028

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: :01:48

PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ

setup() { I = 0; } loop() { I = I + 1; }

MIKROKONTROLÉRY Atmel AVR Atmega128


Mikroprocesorová technika a embedded systémy

ŘÍZENÍ ELEKTRICKÝCH POHONŮ. Systémová struktura počítače Řízení běhu programu. České vysoké učení technické Fakulta elektrotechnická

Vstup-výstup Input-Output Přehled a obsluha

Maturitní témata - PRT 4M

Metody připojování periferií

1. PRINCIP FUNKCE MIKROPROCESORU MIKROPROCESOR ATMEGA STAVOVÝ REGISTR PAMĚŤ DAT REGISTRY A PAMĚŤOVÁ MÍSTA

Základní uspořádání pamětí MCU

ZOS OPAKOVÁNÍ. L. Pešička

Zkouška z předmětu Počítačové systémy

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Mikroprocesorová technika

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

A0M38SPP - Signálové procesory v praxi - přednáška 10 2

Periferní operace využívající přerušení

5. STRUKTURA PLC PROGRAMU

Adresovací módy paměti programu a dat

Komunikace procesoru s okolím

zení Koncepce připojení V/V zařízení POT POT ... V/V zařízení jsou připojena na sběrnici pomocí řadičů. Řadiče Připojení periferních zařízení

Assembler - 2.část. poslední změna této stránky: Zpět

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Speciální obvody a jejich programování v C 2. díl

Vánoční hvězda 2. Publikované: , Kategória: Blikače a optika.

Úvod do mobilní robotiky NAIL028

Přerušovací systém 12.přednáška

Počítače Didaktik. Jan Lorenz. Semestrální projekt z X31SCS

Operační paměti počítačů PC

V PRAZE Fakulta elektrotechnická Katedra teorie obvodů. Úvod do mikrokontrolérů ATMEL AVR Konkrétn. ATmega. Martin Pokorný 31SCS 2004

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Procesor z pohledu programátora

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz

Programování MCU ve vyšších programovacích jazycích

7. Monolitické počítače, vlastnosti a použití.

MSP 430F1611. Jiří Kašpar. Charakteristika

Operační systémy. Přednáška 1: Úvod

Snížení příkonu MCU. Vybavení pro MCU. Snížení příkonu MCU. Možnosti snížení příkonu

Počítač jako prostředek řízení. Struktura a organizace počítače

Architektury počítačů a procesorů

Administrace počítačových sítí. WEB a LPT

Von Neumannovo schéma

Rozhraní mikrořadiče, SPI, IIC bus,..

PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.

Mikrořadiče společnosti Atmel

Podprogram DELAY.INC. - konstanty časových prodlev. RB3 equ 11b DEL1MS: DEL800: DEL400: DEL200 DEL100 DELAY: ret DEL1MS

Programovací techniky a úskalí při vývoji SW v automotive oblasti

Jednočipové mikropočítače (mikrokontroléry)

/*Dekodovani DFC signalu*/ // Projekt MMIA 2013 // Martin Dujicek, Milan Rejnus

Přednáška A3B38MMP. Bloky mikropočítače vestavné aplikace, dohlížecí obvody. 2015, kat. měření, ČVUT - FEL, Praha J. Fischer

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3

MPASM a IDE pro vývoj aplikací MCU (Microchip)


Transkript:

Přerušení Důvod obsluha asynchronních událostí (CPU mnohem rychlejší než pomalé periferie má klávesnice nějaké znaky? ) Zdroje přerušení interrupt source o HW periferie (UART, Disk, časovače apod.) o SW (někdy MS-DOS, multiprocesorové systémy) Realizace CPU při vzniku přerušení skočí na předem danou adresu (podprogram) o Vznik přerušení ( klávesnice má znak ke zpracování ) o CPU dokončení právě vykonávané instrukce o CPU vykonání podprogramu pro obsluhu přerušení ( vyzvedne znak z klávesnice a uloží jej do paměti ) asynchonnost o návrat na původní místo v programu a jeho pokračování lze globálně povolit/zakázat (všechny zdroje) o obvykle jeden bit ((global) interrupt enable EA) Tabulka vektorů přerušení interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.) (AT90S2313) všechny vektory blízko sebe (nelze podprogram) Na místa odskokových adres jmp na podprogram pro obsluhu přerušení jmp RESET ; Reset jmp Vektor1 jmp Vektor2 jmp VektorN ; hlavni program RESET: 1

; atd. ; podprogram pro obsluhu přerušeni od vektoru1 Vektor1: ; atd. program přerušení nevyužívá (EA off) lze vypustit Typy přerušení maskovatelná (maskable interrupt) o lze vymaskovat (zakázat/povolit) o v interrupt mask register kromě EA každý bit jedno přerušení (0/1 on/off INT) nemaskovatelná (non-maskable interrupt) o nelze zakázat pro řešení krit. stavů a chyb (zejména HW chyby paměti apod) Podprogram pro obsluhu přerušení Interrupt service routine, interrupt handler vykoná činnost pro dané přerušení požadavky na kód o volán asynchronně nutné důsledné uschování/obnova používaných registrů o musí být zakončen instrukcí pro návrat z přerušení (reti, rti, iret) = ret + obnova stavu logiky přerušení (na různých up různé) TIM_OVF1: Priorita přerušení push SREG push r0 pop r0 pop SREG reti = co dělat, když: o vznik více přerušení současně o přerušení právě probíhajícího přerušení dána: o pevně (např. nižší vektory = vyšší priorita) o programovatelně dle typu up Přerušení na AVR dle typu až 34 zdrojů přerušení Nastavení přerušení 2

registru SREG bit I = Globální povolení (či zákaz) přerušení o I = 1 přerušení povolena (instrukce SEI) o I = 0 přerušení zakázána (instrukce CLI) ATmega mají možnost tzv. bootloaderu nutnost přesměrovat tabulku vektorů přerušení registr GICR (nebudeme probírat, podrobnosti viz. datasheet) Každá periferie přerušení ve svých registrech o Příklad: čítače/časovače registr TIMSK TOIEx T/C overflow (přerušení přetečení) OCIEx T/C přerušení v režimu compare (nebudeme probírat) Mechanismus přerušení o Žádost o přerušení o Pokud povoleno globálně + vektor PC = PC + x (x dle následující instrukce) o PC STACK o Adresa vektoru PC o Zakáže se globálně přerušení (I = 0)! o Vektor v PC = vykonání podprogramu, konec = RETI o Povolí se globálně přerušení (I = 1)! o Obnova PC ze STACK = pokračování programu priorita přerušení 3

o je určena pořadím nejvyšší má RESET. Tabulka vektorů přerušení u ATmega32 o Sejde-li se naráz více přerušení, je vykonáno to s největší prioritou. Další přerušení se vykonají postupně po vykonání předešlých dle priority. o Aktuálně vykonávané přerušení nemůže být přerušeno již žádným jiným, a to ani přerušením s vyšší prioritou! (Velký rozdíl oproti 8051!). Důvod CLI po vstupu do přerušovací rutiny. o Pokud po vstupu do rutiny SEI a dojde-li během vykonávání aktuálního přerušení k požadavku na další přerušení přerušení aktuálního přerušení bez ohledu na prioritu Příklad programu Přerušení od T1 každou 1s při f clk = 4MHz ; 16b T/C pretece za 16,384 ms ; s delickou /64 je perioda 1,048576 -> nutno odecist 3036 period osc.include "m32def.inc" ; definice konstant.equ pin = PORTD0.EQU DDRport = DDRD.EQU OUTport = PORTD.EQU INport = PIND.EQU PRESET = 3036 4

; definice aliasu.def temp = r16.def temp1 = r17.def T1L = r18.def T1H = r19.def stav = r0 ;pomocny ;pomocny.cseg.org $000 rjmp main ; RESET.ORG OVF1addr rjmp T1_ovf ; preteceni T1 ; hlavni program main: ; nastaveni T1 ldi temp, (1 << CS11) (1 << CS10) out TCCR1B,temp ; vstupni preddelic nastaven na clk/64 ; prednastaveni casovace, dodrzet poradi pristupu! ldi T1H,HIGH(PRESET) out TCNT1H,T1H ldi T1L,LOW(PRESET) out TCNT1L,T1L ; perioda nastavena na 1s ; nastaveni portu "pin" na vystup ldi temp,(1<<pin) out DDRport,temp ; nastaveni stacku ldi temp,high(ramend) out SPH,temp ; min $60,roste k nizsim adresam ldi temp,low(ramend) out SPL,temp ; min $60,roste k nizsim adresam ; nastaveni preruseni ldi temp, 1 << TOIE1 ;nastaveni masky preruseni casovace out TIMSK, temp sei ; globalni povoleni preruseni end: rjmp end ; infinity loop T1_ovf: ; ulozeni push temp in temp,sreg push temp ; = push SREG ; prednastaveni T1 out TCNT1H, T1H out TCNT1L, T1L ; bliknuti pinu in temp, INport ldi temp1, 1 << pin eor temp, temp1 out OUTport, temp ; obnova registru pop temp out SREG, temp pop temp reti 5