Jednočipové mikropočítače

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

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

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.

Architektury počítačů a procesorů

Mikrokontroléry. Doplňující text pro POS K. D. 2001

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

Program "Světla" pro mikropočítač PMI-80

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

Procesor z pohledu programátora

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

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

RISC a CISC architektura

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

Principy komunikace s adaptéry periferních zařízení (PZ)

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

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

Princip funkce počítače


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

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

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

Úvod do mobilní robotiky AIL028

IMTEE Přednáška č. 11

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Ústav radioelektroniky

Pohled do nitra mikroprocesoru Josef Horálek

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

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

Ústav radioelektroniky

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6

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

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

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

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í

Profilová část maturitní zkoušky 2015/2016

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

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

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Profilová část maturitní zkoušky 2014/2015

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

PROCESOR. Typy procesorů

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

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

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

Procesory z řady 8051

ČEMU ROZUMÍ MIKROPROCESOR?

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

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

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

Návrh konstrukce odchovny 2. dil

Popis instrukční sady - procesory PIC Aritmetické a logické operace

Technické prostředky počítačové techniky

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Témata profilové maturitní zkoušky

Jízda po čáře pro reklamní robot

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

Programování PICAXE18M2 v Assembleru

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.

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

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

Rozšiřující desce s dalšími paralelními porty Rozšiřující desce s motorkem Elektrickém zapojení Principu činnosti Způsobu programování

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

Řízení IO přenosů DMA řadičem

Úvod do mobilní robotiky NAIL028

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Návrh ovládání zdroje ATX

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

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

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

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

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

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.

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

Paměti a jejich organizace

Popis instrukční sady procesoru ADOP

Témata profilové maturitní zkoušky

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

MIKROKONTROLERY PIC16F84

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

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

Pokročilé architektury počítačů

Architektura procesoru ARM

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

Architektury CISC a RISC, uplatnění v personálních počítačích

Architektury VLIW M. Skrbek a I. Šimeček

Architektura počítače

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

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

Algoritmizace a programování

ODBORNÝ VÝCVIK VE 3. TISÍCILETÍ. MEIII Paměti konstant

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

Cvičení 2. Obsah a cíle cvičení. Obsah. A5MPL Programování mikropočítačů Digitální vstupy a výstupy - LED a tlačítka.


Testování jednotky ALU a aplikace metody FMEA

Historie osmibitových mikroprocesoru a mikroradicu ZILOG.

Architektura počítačů Logické obvody

Transkript:

Jednočipové mikropočítače

Atmel AVR 90S8515 činnost procesoru si budeme demonstrovat na jednočipovém mikropočítači AVR 90S8515 firmy Atmel jednočipové mikropočítače mikropočítače, obsahující na jednom čipu kromě jádra procesoru (řadič a ALU) i paměti a různé podpůrné obvody pro řízení periférií např. čítače/časovače, A/D a D/A převodníky, komunikační rozhraní, V/V porty (brány) jsou různě specializované (pro různé aplikace)

Atmel AVR 90S8515 kde se jednočipové mikropočítače používají jako řídicí mikropočítače v tzv. vestavěných systémech (embeded systems) spotřební elektronika (TV, hifi např. dálkové ovladače, mobilní svět, )

Obecná charakteristika procesorů AVR Atmel 8 bitové jednočipové mikropočítače datové cesty a ALU mají šířku 8 bitů obecně: jednočipové mikropočítače jsou bitově orientované, tj. mají instrukce pro práci s jednotlivými bity dat Poznámka: procesory řady AVR (např. ATmega8, AT90S8515, atd.) mají stejné jádro (instrukce,liší se velikostí pamětí a vybaveností perifériemi)

Atmel AVR 90S8515 paměti procesoru AVR 90S8515 8 kb paměti programu Flash EEPROM s organizací 4K 16-bitových slov 512B interní paměti dat RAM 512B interní paměti dat EEPROM 2 čítače, sériové rozhraní, 4 vstupně výstupní brány možnost připojit až 64 kb externí paměti dat RAM

Instrukce ještě jednou: elementární operace pro procesor zakódovaný dvojkově zakódování se nazývá instrukční kód instrukce se skládá ze dvou částí: operačního kódu (znaku) - OZ co se provádí, operace, např. sčítej, porovnej operandu (operandů) - OP s čím se operace provádí, např. číslo, odkaz na hodnotu v registru

Příklad zakódování instrukce jednočipový mikropočítač firmy Atmel AT90S8515 pevný formát instrukcí 1 instrukce je dlouhá 16 bitů (OZ + OP) instrukce ADD Rd, Rr provádí součet hodnot v registrech procesoru Rd := Rd + Rr, tj. do k registru číslo Rd přičte obsah registru Rr a výsledek uloží opět do registru Rd

Příklad zakódování instrukce Rd a Rr je jeden z 32 univerzálních registrů procesoru R0 R31 (vybírá je programátor) např. ADD R0,R15 operační znak

Registry speciální paměťové buňky v procesoru důvod existence: rychlý přístup k jejich obsahu uchovávají mezivýsledky a výsledky aritmetických operací, některé instrukce pracují pouze s daty v registrech uchovávají stav procesoru, speciální informace

Architektura procesoru AVR

Registry střadač (acumulator A) speciální registr, se kterým pracují aritmetické instrukce; ukládají se do něj operandy a výsledky má jej většina procesorů procesory AVR nemají 1 střadač, ale sadu 32 univerzálních 8 bitových registrů pro aritmetické operace 6 může být využito jako tři 16-bitové registry X, Y, Z (pro nepřímou adresaci)

Univerzální registry procesoru AVR nižší slabika vyšší slabika Registr X Registr Y Registr Z

Registry programový čítač (Program Counter) 16 bitový programový čítač PC obsahuje adresu právě vykonávané instrukce tj. adresu do paměti programu po zapnutí nebo resetu procesoru má hodnotu 0 po zapnutí se začíná vykonávat program od adresy 0

Registry příznakový registr (status nebo také flag) v tomto registru je uložen stav procesoru (včetně výsledků aritmetických a logických operací) probereme se zatím jen některé (pro nás zajímavé) příznaky (bity)

Příznakový registr I global interrupt enable globální povolení přerušení (1 = povoleno) přerušení se povoluje/zakazuje instrukcemi SEI (set interrupt) a CLI (clear interrupt) Z zero je-li nastaven, výsledek předchozí operace byl nulový používá se v při testování/porovnávání

Příznakový registr S sign znaménkový bit, výsledek aritmetické operace (0 kladný, 1 záporný) N negative nastaven, je-li výsledek aritmetické operace záporný C carry přenos z nejvyššího řádu při aritmetických operacích

Zásobník datová struktura LIFO (last in first out) odebírá se naposledy uložená hodnota operace: PUSH (uložení hodnoty na vrchol zásobníku) POP (odebrání hodnoty z vrcholu zásobníku) POP PUSH

zásobník se využívá v programech pro odložení mezivýsledků, automaticky se využívá při volání procedur a funkcí instrukce CALL adr automaticky se uloží na vrchol zásobníku návratová adresa, provede se skok na adresu adr instrukce RET návratová adresa se odebere ze zásobníku, na ní se provede návrat

Ukazatel na vrchol zásobníku SP (stack pointer) pro zásobník je vyhrazena část paměti dat RAM procesor nemá samostatný zásobník SP obsahuje adresu vrcholu zásobníku ukazuje do paměti na vrchol zásobníku zásobník roste směrem dolů (snížení hodnoty SP při uložení dat na zásobník)

Ukazatel na vrchol zásobníku SP (stack pointer) SP je 16-bitový, skládá se ze dvou samostatně přístupných 8 bitových částí SPH (high vyšších 8 bitů), SPL (low nižších 8 bitů)

Ukazatel na vrchol zásobníku SP SP musí být nastaven v programu před prvním voláním procedury (nejlépe na začátku programu) nad hodnotu 60h, protože dolníčást paměti s adresami 0 až 60h je využita pro periférie zpravidla se nastavuje na konec paměti RAM: ldi out ldi out R16,low(RAMEND) SPL,R16 R16,high(RAMEND) SPH, R16

Další registry procesor má další speciální registry, které jsou určeny pro řízení periférií, tzv. vstupně-výstupní (I/O input/output) registry každý má svoji adresu pro snadnější orientaci a programování jsou definovány zkratky registrů, např. PORTA pro bránu A,

Organizace paměti

Příklad 1 napíšeme program v assembleru, který bude počítat počet stisknutí tlačítka 0 na výukovém přípravku STK500 po 10. stisknutí tlačítka program rozsvítí diodu na přípravku a vynuluje počítadlo stisků po dalších 10. stisknutích tlačítka dioda zhasne atd.

Co budeme ještě potřebovat? porty neboli brány paralelní porty (brány) jednočipového mikropočítače AVR slouží pro vstup/výstup digitálních dat, tj. 0 a 1 procesor 8515 obsahuje 4 vstupně-výstupní 8-mi bitové porty A až D PORTx je výstupní port (PORTA až PORTD) PINx je vstupní port (PINA až PIND)

Brány porty neboli brány zápisem 0 nebo 1 do příslušný bit brány nastavíme na 0 nebo 1 vývod procesoru směr přenosu (vstup/výstup) se řídí obsahem registru DDR (Data Direction Register) DDRA až DDRD zápis 1 na příslušný bit znamená, že výstup je konfigurován jako výstupní dovolené zatížení 1 bitu (pinu) 20 ma

Brány

Přípravek přípravek obsahuje 8 svítivých diod LED a 8 tlačítek propojovacím kabelem je možné připojit diody a tlačítka na libovolný port zvolíme: LED připojíme na PORTB a tlačítka na PORTD zapojení LED a tlačítek: zápisem 1 na port dioda zhasne, při stisknutém tlačítku čteme log. 0

Algoritmus ZAČÁTEK r = 0 je tlač. povoleno? ne ano zvyš r r = 10 ne ano změň stav diody r = 0 je tlač. stisknuto? ne ano

Jaké instrukce jsou použity v příkladu rjmp a (relative jump) relativní skok o +/-počet adres a ldi R,konst (load immediate) nastaví obsah registru R16-R31 konstantou konst. out P,R (output) zkopíruje obsah registru R na výstupní port P

Jaké instrukce jsou použity v příkladu ser R (set register) nastaví všechny bity registru R na 1 clr R (clear register) nastaví všechny bity registru R na 0 rcall a (relative call) volání podprogramu ret (return) návrat z podprogramu

Jaké instrukce jsou použity sbis P,b v příkladu přeskočí následující instrukci, je-li b-tý bit ve V/V registru P nastaven (Skip if Bit in I/O Register is Set) sbic P,b přeskočí následující instrukci, je-li b-tý bit ve V/V registru P vynulovaný (Skip if Bit in I/O Register is Cleared)

Jaké instrukce jsou použity cbi P,b (clear bit) v příkladu vynuluje bit b na portu P sbi P,b (set bit) nastaví bit b na portu P cpi R,k (compare immediate) porovná hodnotu v registru R s konstantou k pokud se rovnají, nastaví příznak Z stavového registru na 1

Jaké instrukce jsou použity v příkladu brne adr (branch if not equal) skočí na adresu adr, pokud není nastaven příznak na hodnotu 1 (tj. např. jestliže se obsahy dvou registru nerovnají), jinak pokračuje na následující instrukci inc R (increment) zvýší obsah registru R o 1

Eliminace zákmitu tlačítek při čtení stavu tlačítek je nutné ošetřit zákmit signálu při změně stavu tlačítka

Eliminace zákmitu tlačítek pokud čekáme např. v cyklu na změnu log. stavu tlačítka bez dalšího ošetření, může dojít při jednom stisku k mylnému několikanásobnému vyhodnocení program obsluhy skončí dříve, než odezní přechodový děj, a další test vyhodnotí zákmity jako opětovné stisknutí je možnéřešit speciálními vstupními obvody s hysterezí, což přípravek nemá

Eliminace zákmitu tlačítek správný postup spočívá ve vložení čekací smyčky, jakmile zjistíme změnu stavu, a následné opětovné kontrole stavu tlačítka předpokládejme, že stisk tlačítka znamená na vstupu log. 0: 1. čekej dokud je stav tlačítka roven log. 1 2. Počkej 0,1 s (čas záleží na délce přechodového jevu) 3. Je-li stav tlačítka log. 0, pokračuj, jinak se vrať na krok 1

Eliminace zákmitu tlačítek čekací smyčku budeme realizovat procedurou, kterou voláme instrukcí rcall před voláním se na vrchol zásobníku uloží návratová adresa procedura je ukončena instrukcí ret, která zajistí návrat za místo volání dle adresy na vrcholu zásobníku a odebere tuto adresu z vrcholu zásobníku čekací smyčka je vnořený trojitý cyklus

Příklad 1 zdrojový kód je uložen jako příklad1.asm s podrobným komentářem

Příklad 1b počítání stisků tlačítka mohu provádět i opačně, tj. na počátku nastavím hodnotu čítače na 10 a čítač snižuji o 1 pomocí instrukce dec R (decrement); testuji výsledek na hodnotu 0 výhoda: instrukce dec nastaví automaticky příznak Z na hodnotu 1, pokud je po provedení hodnota registru rovna 0 v programu odpadá instrukce cpi pro porovnání

Příklad 1c tentýž příklad zapsaný v jazyce C využívá logické operace jazyka C & - and - or ^ - xor

Příklad 2 Doplňte příklad 1 tak, aby program nezávisle blikal další diodou na přípravku s periodou 1s (0,5s svítí). Využijeme časovače a přerušení od časovače při dosažení určité hodnoty!

Čítače a časovače Čítač speciální registr, který kromě operací čtení/zápisu hodnoty může zvýšit (snížit) svoji hodnotu o 1 při změně vnějšího signálu může zvýšit = čítání lze povolit/zakázat čítače v jednočipových mikropočítačích zpravidla hodnotu zvyšují

Čítače a časovače Časovač speciální registr, který kromě operací čtení/zápisu hodnoty může zvýšit (snížit) svoji hodnotu o 1 při změně vnitřního hodinového signálu mikropočítače v jednočipových mikropočítačích bývá čítač/časovač v jediném bloku, programátor vybírá mezi funkcíčítače a časovače

Čítače a časovače 90S8515 má 2 časovače/čítače s předděličkou kmitočtu TIMER0 jednoduchý osmibitový čítač/časovač TIMER1 šestnáctibitový čítač/časovač 2 x komparační registr

Čítače a časovače

Čítače a časovače Komparační registr čítač bez komparačního registru čítá od 0 do maximální hodnoty, např. 16 bitový čítač od 0 do 65535 a pak opět od 0 čítač s komparačním registrem komparační registr obsahuje určitou hodnotu zapsanou programátorem čítaččítá od 0 do této hodnoty a pak opět od 0 (zkrácení periody čítání)

Čítače a časovače Komparační registr

Přerušení přerušení (interrupt) asynchronní událost vyvolaná např. časovačem při dosažení komparované hodnoty (interrupt on compare) zdrojů přerušení může být více (čítač, změna vnějšího signálu, příchod dat po komunikačním rozhraní, u PC např. stisk klávesy) jádru procesoru (řadiči) je tato událost oznámena speciálním signálem interrupt (resp. více signály)

Přerušení řadič procesoru na konci instrukčního cyklu testuje, zda nenastalo přerušení pokud ano, procesor přeruší vykonávání aktuálního programu a vykoná tzv. obslužnou rutinu přerušení (přerušovací rutinu); po jejím dokončení se opět vrátí k vykonávání původního programu před vstupem do přerušovací rutiny se na vrchol zásobníku uloží návratová adresa a navíc stavový registr procesoru (např. u procesorů Intel, Motorola, nikoliv u procesoru AT90S8515)

Přerušení přerušení lze maskovat (tj. zakázat) globálně je přerušení povoleno nastavením příznaku I (interrupt flag) ve stavovém registru u AT90S8515 je po startu shozen, tj. přerušení zakázáno příznak se nastavuje instrukcí sei (set interrupt), nuluje instrukcí cli (clear interrupt) individuálně se povolují přerušení od různých zdrojů např. v registru TIMSK Timer Interrupt Mask Register se nastavením bitů povolují přerušení od různých událostí časovače

Přerušení některé procesory mají speciální signál NMI (Non-maskable interrupt) nemaskovatelné přerušení, tj. přerušení, které nelze zakázat AT90S8515 nemá NMI procesory Intel NMI mají, v prvním PC bylo aktivováno hlídačem chyby paměti přeruš. rutina vypsala hlášení a zastavila chod PC Poznámka: na NMI může být zapojen třeba požární hlásič

Přerušení u AT90S8515 se při vstupu do přerušovací rutiny automaticky nuluje příznak I tj. zakazuje se přerušení, aby běh přerušovací rutiny nebyl přerušen příznak nastaví opět instrukce RETI Poznámka: některé procesory ponechávají příznak I po vstupu do rutiny nastaven; záleží na programátorovi, zda ponechá povolené přerušení a dovolí přerušovací rutinu přerušit

Přerušení uvádí se, že systém přerušení procesoru je vektorový systém, tj. má velikost a směr velikost = priorita (přednost) je definováno pořadí (priority) zdrojů přerušení pokud dojde k přerušení od více zdrojů v jediném okamžiku, např. od časovače a komunikační linky, procesor nejprve obslouží to s vyšší prioritou směr jsou dány adresy v paměti programu, kde je přerušovací rutina umístěna

Přerušení procesoru 8515 jádro obsluhuje 12 zdrojů přerušení (+ reset) priorita je pevně dána vektory přerušení (tj. adresy přerušovacích rutin) jsou pevně umístěny za sebou na počátku paměti programu na danou adresu umístí programátor instrukci rjmp (relative jump - relativní skok) na obslužnou rutinu rutina musí být ukončena instrukcí RETI (interrupt return)

Zdroje přerušení nejvyšší priorita nejnižší priorita

Jak to budeme dělat? využijeme čítač/časovač TIMER1 použijme přerušení při porovnání (Compare Match A) přerušovací rutina změní svit diody

TIMER1

Vypočítáme porovnávací hodnotu požadujeme přerušení v intervalech po 0,5s hodinový signál procesoru na přípravku má kmitočet 3,68 MHz vypočítáme periodu hodinového signálu Th = 1/(3,68 Mhz) = 2,72 10-7 s využijeme předděličku 1024 a vypočítáme periodu čítání časovače T = 2,72 10-7 s x 1024 = 2,78 10-4 s

Vypočítáme porovnávací hodnotu požadujeme přerušení v intervalech po 0,5s Otázka: Do kolika musíčasovač dočítat, aby odměřil 0,5s? číslo = 0,5 s/ 2,78 10-4 s = 1798 = 0x0706

Co nastavíme komparační registr OCR1A pro časovač na hodnotu 0706h OCR1A = Output Compare Registerčasovače TIMER1 A časovač má 2 komparační registry, ještě OCR1B řídící registr čítače TCCR1B TCCR1B = Timer/Counter1 Control Register B vybereme dělící poměr hodinového signálu 1024 a nastavíme mód čítače CTC (Clear Timer on Compare), tj. po dosažení hodnoty se čítač vynuluje

Co nastavíme registr masky přerušení časovače TIMSK TIMSK = Timer Interrupt Mask Register povolíme, aby obvody časovače 1 generovaly pro jádro procesoru přerušení při události Compare, tj. čítač dosáhl hodnoty zapsané v reg. OCR1A povolíme globálně přerušení instrukcí sei sei set interrupt bit

Řídicí registr čítače TCCR1B Clear Timer on Compare Clock Select (výběr frekvence) log. 1 = nulování po dosažení porovnávací hodnoty

Výběr frekvence TCCR1B nastavím na hodnotu 00001101b = 13d = 0Dh

Registr masky přerušeníčítače TIMSK Timer/Counter1 Output CompareA Match Interrupt Enable log. 1 = přerušení je povoleno TCCR1B nastavím na hodnotu 01000000b = 64d = 40h

Vektor přerušení při vyvolání přerušovací rutiny skáče procesor na adresu 4 pozor, na adresu 5 skáče při jiném přerušení na adresu 4 umístíme instrukci skoku rjmp na návěští přerušovací rutiny

Přerušovací rutina změní stav výstupního portu, tj. stav diody bude ukončena instrukcí reti interrupt return (návrat z přerušovací rutiny) odebírá obyčejně ze zásobníku kromě návratové adresy i stavový registr procesoru, který obnovuje (u AT90S8515 jen odebírá ze zásobníku návratovou adresu) u AT90S8515 nastavuje příznak I ve stavovém registru, tj. opět povoluje přerušení

Příklad 2 a 2c dvě verze programu v assembleru v jazyce C