Ústav radioelektroniky

Rozměr: px
Začít zobrazení ze stránky:

Download "Ústav radioelektroniky"

Transkript

1 Ústav radioelektroniky Vysoké učení technické v Brně Programování mikrokontrolérů Mikroprocesorová technika, přednáška č. 5 Ing. Frýza Tomáš, Ph.D. 23. října 2007

2 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

3 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

4 Typy adresování Adresování zpřístupňuje programovou (Flash) a datovou pamět (SRAM, GPIO, I/O registry). Terminologie Přímé adresování - adresa je součástí instrukce. Přímo lze adresovat GPIO registry, I/O registry, datovou i programovou pamět, Nepřímé adresování - adresa není součástí instrukce. Adresa je uložena v některém z ukazatelů (X, Y nebo Z). Využívá se k opakovanému přístupu k jedné nebo k posloupnosti několika pamět ových buněk. Mikroprocesorové systémy umožňují celou řadu způsobů adresování operandů. Základní způsoby jsou 1) Registrové adresování: zdrojem informace (operand) je registr(y), MOV Rd,Rr

5 Typy adresování, pokračování Obrázek: Adresování dvou (ADD Rd,Rr) a jednoho (DEC Rd) registru Základní způsoby adresování, pokračování 2) Přímé adresování: operandy jsou přímo určeny konkrétní adresou, CALL k, 3) Nepřímé adresování: adresa operandu je uložena v tzv. ukazateli, např. registrový pár X, Y nebo Z (X - r26:r27; Y - r28:r29; Z - r30:r31), IJMP, ST X,Rr.

6 Typy adresování, dokončení Obrázek: Bezprostřední adresování 8bitové konstanty (LDI Rd,K) Základní způsoby adresování, dokončení 4) Bezprostřední adresování: hodnota operandu je přímo obsažena v instrukci, LDI Rd,K DSP obsahují další typické způsoby adresování operandů. Různé způsoby adresování zvyšují možnosti mikroprocesorů.

7 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

8 Větvení programu Obrázek: Pozice programového čítače Podle von Neumannovy koncepce procesoru jsou instrukce vykonávány sekvenčně, tj. jak jsou uloženy v paměti. Adresu instrukce, která se bude vykonávat specifikuje programový čítač (PC program counter). Při startu systému je hodnota PC vynulována. Dále je zpravidla pouze inkrementována. Při podmínkách, nepodmíněných skocích, volání podprogramu, obsluze přerušení dochází ke skokové změně hodnoty PC, tj. k větvení programu.

9 Programový čítač u AVR Obrázek: Struktura programového čítače Program Counter (PC) je u ATmega16 13bitový (PC12-PC0), tj. může adresovat celkem 2 13 = 8k slov (instrukcí). PC je ukazatel na místo v programové paměti, tj. obsahuje adresu vykonávané instrukce. K hodnotám PC nelze přímo přistupovat (číst, zapisovat), protože tento čítač nelze adresovat!! Změnu hodnoty provádíme pouze nepřímo vykonanými instrukcemi.

10 Podmíněné skoky v programu Obrázek: Podmínka Podmíněný skok je reakcí na výsledek podmínky. Výsledek podmínky je vždy true (1) nebo false (0). JSA umožňuje využití jen jednoduchých podmínek. Dva typy instrukcí podmíněných skoků 1) Přeskoč následující instrukci (anglicky: Skip if...), CPSE Rd,Rr přeskoč, je-li Rd = Rr (ComPare, Skip if Equal), SBIC P,b přeskoč, je-li bit v I/O registru P = 0 (Skip if Bit is Cleared), SBIS P,b přeskoč, je-li bit b v I/O registru P = 1 (Skip if Bit is Set),...

11 Podmíněné skoky v programu, pokračování 2) Skoč na návěští (anglicky: Branch if...); houfně se k tomu využívají příznakové bity, BREQ k skoč na návěští k, je-li Z = 1 (BRench if EQual), BRNE k skoč na návěští k, je-li Z = 0 (BRench if Not Equal), BRVS k skoč na návěští k, je-li V = 1 (BRench if V is Set), V-overflow, BRVC k skoč na návěští k, je-li V = 0 (BRench if V is Cleared), BRIE k - skoč na návěští k, je-li I = 1 (BRench if I is Enable), I-interrupt, BRID k - skoč na návěští k, je-li I = 0 (BRench if I is Disable),...

12 Nepodmíněné skoky v programu Instrukce pro nepodmíněné skoky přímo změní hodnotu v programovém čítači (PC) a tím se realizuje skok v programu. (Není uvažována žádna podmínka). Trojí typ instrukcí pro nepodmíněný skok u AVR RJMP k relativní skok na návěští k (Relative JuMP). Pozn.: Může skočit na adresu v rozsahu 2K k 2K, IJMP nepřímý skok na adresu v registrovém páru Z (Indirect JuMP). Registrový pár Z, tj. r30:r31 funguje jako ukazatel (zdroj adresy), JMP k přímý skok na návěští k (direct JuMP). Pozn.: Může skočit na adresu v rozsahu 0 k 4M. Rozdíly mezi strojovým kódem uvedených instrukcí RJMP: 1100 kkkk kkkk kkkk (12bitová adresa), IJMP: , JMP: k kkkk 110k kkkk kkkk kkkk kkkk (22bitová adresa).

13 Význam a volání podprogramu Podprogram je část kódu, která se často opakuje; do strojového jazyka se přeloží jen jednou. Spouští se zapsáním adresy první instrukce do programového čítače. Trojí typ instrukcí pro volání podprogramu u AVR RCALL k relativní volání podprogramu k (Relative subroutine CALL). Pozn.: Může skočit na adresu v rozsahu 2K k 2K, ICALL nepřímé volání podprogramu; adresa vždy uložena v ukazateli Z (Indirect CALL), CALL k přímé volání podprogramu k (direct subroutine CALL). Pozn.: Může skočit na adresu v rozsahu 0 k 4M. Na rozdíl od (ne)podmíněného skoku dojde po ukončení podprogramu k návrat na instrukci následující po skoku do podprogramu.

14 Funkce zásobníku k uložení návratové adresy Obrázek: Vnořené volání podprogramů Návratová adresa musí být uložena před skokem do podprogramu do tzv. zásobníku (anglicky: stack). Návratová adresa je adresa instrukce následující po instrukci volající podprogram. Návrat z podprogramu (vyzvednutí návratové adresy ze zásobníku a její zapsání do PC) zajišt uje instrukce RET (subroutine RETurn).

15 Ukazatel na zásobník Zásobník je část paměti SRAM (může též sloužit k zálohování obsahu GPIO registrů r0-r31). Mikrokontroléry, které nemají interní pamět RAM mají hardwarový zásobník s omezenou velikostí. Zapisovat/číst lze ze zásobníku pouze z jedné pozice. Tu udává tzv. ukazatel na zásobník (anglicky: SP stack pointer). Ukazatel je 16bitová hodnota uložená v registrovém páru SPH:SPL. (Patří mezi I/O registry.) Obrázek: Struktura ukazatele na zásobník

16 Ukazatel na zásobník, pokračování Obrázek: Pozice ukazatele na zásobník Hodnota ukazatele na zásobník musí být inicializována (tzv. definice zásobníku). Definice se provádí jedenkrát a to nejčastěji hned na začátku programu. Ukazatel se naplní adresou poslední pamět ové buňky pamět ového segmentu určeného pro zásobník (zásobník se z důvodu eliminace nechtěného přepsání dat umíst uje na konec paměti RAM) ldi r16,low(ramend) out spl,r16 ldi r16,high(ramend) out sph,r16 (Ramend je konstanta, obsahující adresu poslední buňky paměti SRAM.)

17 Proces zápisu do zásobníku Zásobník funguje jako LIFO systém (Last In First Out poslední zapsán, první čten). Fáze zápisu 16bitové adresy do 8bitového zásobníku 1) Uložení nižšího bytu adresy na pozici adresovanou SP, 2) SP = SP 1 (SP tak obsahuje adresu volného bytu, kam je možné dále zapisovat), 3) Uložení vyššího bytu adresy na pozici adresovanou SP, 4) SP = SP 1 (po ukončení procesu tedy SP obsahuje adresu volného bytu v zásobníku). Příklad Jaká data obsahuje zásobník po volání dvou vnořených podprogramů? Necht byly volány z adres 0x0021 a 0x0028 instrukcí RCALL.

18 Proces zápisu do zásobníku Řešení Podprogramy volány z adres 0x0021 a 0x bitovou instrukcí RCALL, proto jsou návratové adresy 0x0022 a 0x0029. U ATmega16 je ramend = 0x045F.

19 Proces čtení ze zásobníku Fáze čtení adresy ze zásobníku 1) SP = SP + 1 (ukazatel obsahuje adresu posledního bytu uloženého v zásobníku), 2) Adresovaný vyšší byte návratové adresy je přesunut do PC (nutnost maskování 3 nejvýznamnějších bitů, protože PC je pouze 13bitový), 3) SP = SP + 1 (ukazatel adresuje předposlední uložené slovo), 4) Adresovaný nižší byte návratové adresy je přesunut do PC. Ukázka: Příklad návratu ze dvou vnořených podprogramů. Uložené adresy ve stacku zůstanou, ale při následném volání podprogramu se přepíšou novými daty. Příklad Jaké data obsahuje ukazatel na zásobník a programový čítač po návratu ze dvou vnořených podprogramů?

20 Proces čtení ze zásobníku Řešení Hodnoty návratových adres jsou postupně načteny za zásobníku a uloženy do programového čítače.

21 Záloha registrů do zásobníku; instrukce PUSH, POP Kromě zálohy návratové adresy při volání podprogramu, nebo přerušení, lze zásobník využít také jako dočasné odkladiště obsahu registrů GPIO r0-r31. Použití např. při volání podprogramu - záloha potřebných reg.; na konci podprogramu hodnoty znovu načíst ze zásobníku. Fáze uložení obsahu 8bitového registru do zásobníku - PUSH Rr, kde r = 0, 1,..., 31 1) Uložení obsahu registru Rr na adresu definovanou SP, 2) SP = SP 1. Fáze načtení 8bitové hodnoty ze zásobníku do registru - POP Rd, kde d = 0, 1,..., 31 1) SP = SP + 1, 2) Načtení slova z adresy SP do registru Rd. Instrukce pro zálohu registrů mají všechny mikrokontroléry (mohou mít jinou syntaxi, či omezený počet využitelných reg.).

22 Rozdíl mezi podprogramem a makrem Příklad Jaké jsou základní rozdíly mezi podprogramem a makrem?

23 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

24 Obsluha přerušení Běh programu (hodnota PC) je také ovlivnitelný pomocí tzv. přerušení (anglicky: interrupt). V případě, že mikroprocesor obdrží žádost o obsluhu povoleného přerušení, musí přerušit vykonávanou činnost (hlavní program) a spustit příslušný obslužný program. Každý procesor obsahuje sadu možných přerušení interních i externích; zdroje přerušení závisí na hardwarovém vybavení. Obsluha každého přerušení je ovládána tzv. vektorem přerušení v programové paměti; jedná se o adresu od které se začne vykonávat konkrétní obsluha. Každé přerušení má svůj povolovací bit; navíc existuje jeden globální povolovací bit (u AVR ve stavovém registru SREG). Jednotlivé přerušení mají různou prioritu; nižší adresa vyšší priorita.

25 Vektory přerušení mikrokontroléru ATmega16 Č. Adresa Zdroj přerušení Popis přerušení 1 0x0000 RESET Externí reset, připojení napájení 2 0x0002 INT0 Externí požadavek na přerušení 0 3 0x0004 INT1 Externí požadavek na přerušení 1 4 0x0006 TIMER2 COMP Čítač/časovač 2 - shoda komparace 5 0x0008 TIMER2 OVF Čítač/časovač 2 - přetečení 6 0x000A TIMER1 CAPT Čítač/časovač 1 - zachycení 7 0x000C TIMER1 COMPA Čítač/časovač 1 - shoda s komparátorem A 8 0x000E TIMER1 COMPB Čítač/časovač 1 - shoda s komparátorem B 9 0x0010 TIMER1 OVF Čítač/časovač 1 - přetečení 10 0x0012 TIMER0 OVF Čítač/časovač 0 - přetečení 11 0x0014 SPI, STC Dokončení sériového přenosu SPI 12 0x0016 USART, RXC USART - kompletní příjem dat 13 0x0018 USART, UDRE USART - prázdný datový registr 14 0x001A USART, TXC USART - kompletní vyslání dat 15 0x001C ADC ADC - převod dokončen 16 0x001E EE RDY EEPROM - komunikace připravena 17 0x0020 ANA COMP Změna výstupu analogového komparátoru 18 0x0022 TWI Událost na I2C sběrnici 19 0x0024 INT2 Externí požadavek na přerušení x0026 TIMER0 COMP Čítač/časovač 0 - shoda komparace 21 0x0028 SPM RDY Uložení do programové paměti připraveno

26 Vektory přerušení mikrokontroléru ATtiny11 Č. Adresa Zdroj přerušení Popis přerušení 1 0x000 RESET Externí reset, připojení napájení 2 0x001 INT0 Externí požadavek na přerušení 0 3 0x002 I/O piny Změna stavu I/O pinu 4 0x003 TIMER0 OVF Čítač/časovač 0 - přetečení 5 0x004 ANA COMP Změna výstupu analogového komparátoru U ATmega16 je v paměti 32bitový prostor mezi jednotlivými vektory přerušení. U ATtiny11 jen 16 bitů. ATtiny11 neobsahuje datovou pamět, proto není možné definovat softwarový zásobník pro uložení návratových adres. Obsahuje ale hardwarový zásobník, schopný uchování 3 adres (ukazatel na zásobník je 1kB Flash).

27 Obsluha přerušení Jednotlivé fáze obsluhy přerušení 1) Dokončí se výkon právě vykonávané instrukce, 2) Zakáže se obsluha případných následujících přerušení, 3) Do zásobníku se uloží adresa následující instrukce v programové paměti; tj. zásobník musí být definován (viz. podprogramy), 4) Podle zdroje přerušení se do PC načte adresa obslužného programu přerušení (PC=0x0002 pro INT0, apod.), 5) Vykoná se obsluha přerušení, tj. konkrétní posloupnost instrukcí; do oblasti vektorů přerušení se běžně umíst ují pouze skoky na obslužnou funkci (mezi vektory je jen 32 bitů), 6) Obsluha přerušení se ukončí instrukcí RETI (RETurn Interrupt); analogie s ukončením podprogramu, 7) Povoĺı se obsluha dalších přerušení, 8) Do PC se načte návratová adresa ze zásobníku, 9) Pokračuje se ve výkonu hlavního programu (na místě než přišel požadavek na přerušení).

28 Příklad obsluhy přerušení. Externí přerušení Přerušení se vykoná (obslouží) v případě že 1) Je povoleno konkrétní přerušení, 2) Je povoleno globální přerušení (bit I=1 v registru SREG). Příklad maskování (povolení) externího přerušení u AVR I/O registr GICR (General Interrupt Control Register) obsahuje povolovací bity INT1, INT0, INT2 pro externí přerušení 1, 0 a 2, Pro povolení je nutné nastavit příslušný(é) bit(y) na 1, Povolit globální přerušení v registru SREG instrukcí SEI (SEt Interrupt). Konkrétní nastavení (náběžná hrana, sestupná,...) lze definovat v registru MCUCR (MCU Control Register). Požadavek na přerušení je pro CPU signalizován příznakovým bitem v registru GIFR (General Interrupt Flag Register).

29 Přerušení od čítače/časovače Přerušení lze generovat také při přetečení interního čítače/časovače (např. 8bitový čítač/časovač 0). (Funkce: Inkrementace stavu každou periodu hodinového signálu.) Povolení generování přerušení při přetečení č/č 0 lze nastavit v I/O registru TIMSK (Timer/Counter Interrupt Mask Register) bitem TOIE0. Rychlost čítání čítače lze nastavit pomocí předděličky hodinového signálu (čím větší hodnota předděličky, tím pomalejší čítání), řízené bity CS02, CS01 a CS00 v I/O registru TCCR0 (Timer/Counter Control Register). Globální povolení všech přerušení se zpravidla provádí jako poslední instrukce při nastavování funkce mikrokontroléru. Přetečení č/č 0 je signalizován příznakovým bitem TOV0 v registru TIFR (Timer/Counter Interrupt Flag Register).

30 Možnosti nastavení přerušení Tabulka: Generování externího přerušení (MCUCR) ISCn1:ISCn0 0b00 0b01 0b10 0b11 Popis Nízká úroveň (log. 0) na pinu INTn generuje požadavek Jakákoliv změna logické úrovně na pinu INTn generuje požadavek Sestupná hrana na pinu INTn generuje požadavek Vzestupná hrana na pinu INTn generuje požadavek Tabulka: Nastavení předděličky č/č 0 (TCCR0) CS02:CS00 Popis 0b000 Hodinový signál odpojen. Č/c 0 nepracuje 0b001 f clk 0b010 f clk /8 0b011 f clk /64 0b100 f clk /256 0b101 f clk /1024 Příklad Za jak dlouho dojde k přetečení 8bitového č/č 0, je-li CS02:CS00=010 a f clk = 1 MHz?

31 Obsluha přerušení v JSA Při použití přerušení (i podprogramů) je nutné definovat zásobník, tj. naplnit registrový pár SPH:SPL. Jedná se o I/O registry (viz. přednáška o Instrukční sadě), proto se použije kombinace instrukcí LDI a OUT. Běžná praxe u číslicových systémů: hlavní část programu se zacykĺı pomocí nekonečné smyčky. Z ní se skáče na obslužné programu pouze při příchodu požadavku na přerušení. Vektory přerušení použité v ukázce 0x reset, 0x externí přerušení 0, 0x001c - byl dokončen AD převod.

32 Obsluha přerušení v JSA....org 0x0000 ; vektor přerušení pro reset rjmp start ; skok na návěští start.org 0x0002 ; vektor přerušení pro externího zdroje INT0 rjmp tlacitko ; skok na návěští tlacitko.org 0x001c ; vektor přerušení pro AD převod rjmp ad_prevod ; skok na návěští ad_prevod.org 0x002a ; adresa začátku hlavního programu start: ldi temp, high(ramend) ; definice zásobníku... ; kód hlavního programu sei ; povolení globálního přerušení loop: rjmp loop ; nekonečná smyčka tlacitko:... ; kód obsluhy externího přerušení reti ; návrat z obsluhy přerušení ad_prevod:... ; kód obsluhy přerušení pro AD převod reti ; návrat z obsluhy přerušení

33 Obsluha přerušení v jazyce C Pro využití přerušení v jazyce C je nutné vložit hlavičkový soubor interrupt.h. Není nutné definovat zásobník - respektive udělá to překladač. Rovněř není nutné znát konkrétní adresy vektorů přerušení. Obsluha přerušení představuje funkci ISR (anglicky: interrupt service routine) se vstupním parametrem, který identifikuje zdroj přerušení INT0 vect - externí přerušení, ADC vect - přerušení od AD převodníku. (Všechny informace a ukázky využívají překladače GCC s knihovnou avr-libc.)

34 Parametry funkce obsluhy přerušení ISR(.) Č. Adresa Parametr v C (GCC) 1 0x x0002 INT0 vect 3 0x0004 INT1 vect 4 0x0006 TIMER2 COMP vect 5 0x0008 TIMER2 OVF vect 6 0x000A TIMER1 CAPT vect 7 0x000C TIMER0 COMPA vect 8 0x000E TIMER0 COMPB vect 9 0x0010 TIMER1 OVF vect 10 0x0012 TIMER0 OVF vect 11 0x0014 SPI STC vect 12 0x0016 USART RXC vect 13 0x0018 USATRT UDRE vect 14 0x001A USART TXC vect 15 0x001C ADC vect 16 0x001E EE RDY vect 17 0x0020 ANA COMP vect 18 0x0022 TWI vect 19 0x0024 INT2 vect 20 0x0026 TIMER0 COMP vect 21 0x0028 SPM RDY vect

35 Obsluha přerušení v jazyce C #include <avr\io.h> #include <avr\interrupt.h> // hlavičkový soubor pro použitý mikrokontrolér // hlavičkový soubor pro obsluhu přerušení ISR( INT0_vect ) // obsluha externího přerušeni INT0 {... // kód obsluhy přerušení } ISR( ADC_vect ) // obsluha přerušení AD převodníku {... // kód obsluhy přerušení } int main( void ) {... // kód hlavní funkce sei() ; // povolení globálního přerušení while( 1 ) ; // nekonečná smyčka }

36 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

37 Proces překladu do strojového jazyka Zdrojový kód v C DDRB = 0xff ; temp = 0x03 ; PORTB = temp ; while( 1 ) PORTB-- ; Přeložený kód v JSA ldi r28,0x5f ldi r29,0x04 out 0x3e,r29 out 0x3d,r28 ser r24 out 0x17,r24 ldi r24,0x03 sts 0x0060,r24 out 0x18,r24 in r24,0x18 subi r24,0x01 rjmp pc-0x0003 Obrázek: Překlad zdrojového kódu z jazyka C STS k,rr - Přímé uložení hodnoty registru do datové paměti SRAM (0 r 31, 0 k 65535).

38 Proces překladu do strojového jazyka Adresa Stroj. kód Instrukce Popis funkce 0x0047 E5CF ldi r28,0x5f Load immediate 0x0048 E0D4 ldi r29,0x04 Load immediate 0x0049 BFDE out 0x3e,r29 Out to I/O location 0x004A BFCD out 0x3d,r28 Out to I/O location 0x004B EF8F ser r24 Set Register 0x004C BB87 out 0x17,r24 Out to I/O location 0x004D E083 ldi r24,0x03 Load immediate 0x004E sts 0x0060,r24 Store direct to data space 0x0050 BB88 out 0x18,r24 Out to I/O location 0x0051 B388 in r24,0x18 In from I/O location 0x subi r24,0x01 Subtract immediate 0x0053 CFFC rjmp PC-0x0003 Relative jump Tabulka: Zápis ve formátu Intel HEX... : D4E0DEBFCDBF8FEF87BB83E ED :0800A00088BB88B38150FCCF3E

39 Formát Intel HEX Tabulka: Zápis ve formátu Intel HEX... : D4E0 DEBF CDBF 8FEF 87BB 83E ED :08 00A BB 88B FCCF 3E Tabulka: Význam jednotlivých bytů formátu HEX : Začátek řádku 10 Počet datových bytů v jednom řádku (0x10=16) 0090 Adresa prvního datového bytu (0x48 2=0x90) 00 Typ kódu (u AVR odpovídá indentifikátoru 64kB pamět. str.) Strojový kód instrukcí (LSB byte uložen dříve) ED Kontrolní součet

40 Elementární zásady jazyka C Příkaz končí středníkem. Těla funkcí, posloupnosti příkazů u podmínek, cyklů, apod. se združují do složených závorek. Řetězce se uvozují uvozovkami. Komentáře se píší za dvojité lomítko //, nebo do bloku uvozeném /*... */. Rezervovaná slova nelze použít k jinému účelu než je určeno: for, return, switch, case, if, else, char, int, float, unsigned, void,... Deklarace funkce hodnota název funkce( parametr, parametr,... ) { ; }

41 Deklarace proměnných Proměnná je identifikována názvem a typem char temp, unsigned int ii Před použitím je nutné proměnnou deklarovat. Podle dostupnosti se jedná o Lokální - alokována ve stack (zásobník) nebo heap (hromada) při spuštění funkce, Globální - alokována při překladu, dostupná pro všechny funkce. Tabulka: Některé typy a velikosti proměnných Typ Velikost [b] Rozsah char až 127 unsigned char 8 0 až 255 signed char až 127 int až unsigned int 16 0 až float 32 ±1, až ±3,

42 Aritmetické a bitové operandy Tabulka: Aritmetické operace Operace Operand Násobení * Dělení / Dělení modulo % Sčítání + Odečítání - Inkrementace ++ Dekrementace -- Zkrácený zápis a+=3 ; // a=a+3 b-=2 ; // b=b-2 c*=5 ; // c=c*5 d/=a ; // d=d/a Tabulka: Bitové operace Operace Operand Jednotkový doplněk Bitový posuv doleva Bitový posuv doprava Logický součin AND & Exkluzivní součet EX-OR Logický součet OR Zkrácený zápis a =3 ; b&=2 ; c =5 ; d =2 ;

43 Podmínka Syntaxe podmínky if if( podmínka ) { ; } else { ; } Syntaxe podmínky switch Tabulka: Relační operandy Operace Operand Je roven == Je různý od!= Menší než < Menší nebo roven <= Větší než > Větší nebo roven >= switch( proměnná ) { case hodnota1: case hodnota2: ; default: ; }

44 Cyklus Syntaxe cyklu while while( podmínka ) { ; ; } Syntaxe cyklu for for( par0; par1; par2 ) { ; ; } Nekonečná smyčka while while( 1 ) { ; ; } while( 1 ) ; Nekonečná smyčka for for( ;; ) { ; ; }

45 Specifika překladače GCC a knihovny avr-libc Testování hodnoty bitu v I/O registru if( bit is set( registr, bit )) { ; } if( bit is clear( registr, bit )) { ; } Cyklus s testováním bitu v I/O registru loop until bit is set( registr, bit ) { ; } loop until bit is clear( registr, bit ) { ; }

46 Kombinace jazyka symbolických adres a C Programování ve vyšším jazyce je pohodlnější, rychlejší, kód je snáze přenositelný mezi platformami; zabírá více místa v paměti, jeho výkon je pomalejší. Běžná praxe je tvorba aplikace v jazyce C, pouze exponované části programu, kde chceme mít přehled o počtu instrukcí, rychlosti výkonu, či konkrétní funkci se tvoří v JSA. Proto lze zdrojové kódy kombinovat asm( "sei" ) ; asm( "ldi r16,0x20 \n inc r16 \n" ) ; Předávání parametrů mezi funkcí v JSA a hlavní aplikací v C pomocí předem určených registrů První vstupní parametr: r25:r24, Druhý vstupní parametr: r23:r22,... Devátý vstupní parametr: r9:r8, Návratová hodnota funkce: r25:r24.

47 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

48 Zdroje informací Váňa, V. Mikrokontroléry ATMEL AVR; popis procesorů a instrukční soubor. Ben technická literatura, Praha, 2003, ISBN Matoušek, D. Práces mikrokontroléry ATMEL AVR; ATmega16. Ben technická literatura, Praha, 2006, ISBN Barnett, R., O Cull, L., Cox, S. Embedded C Programming and the Atmel AVR, 2e. Thomson Delmar Learning, New York, 2007, ISBN

49 Zdroje informací Atmel Corporation. AVR Assembler User Guide, (říjen 2007). DOC1022.PDF Atmel Corporation. ATmega16, (říjen 2007). asp?part_id=2010 Atmel Corporation. ATtiny11, (říjen 2007). asp?part_id=2031 Fleury, P. Peter Fleury s Home Page, (říjen 2007).

50 Obsah přednášky Typy adresování Registrové, přímé, nepřímé, bezprostřední Větvení programu Programový čítač Volání podprogramu, zásobník Obsluha přerušení Ukázka programu v JSA a v jazyce C pro ATmega16 Programování mikrokontrolérů pomocí vyšších jazyků Překlad aplikace z jazyka C Programování v jazyce C Kombinace jazyka symbolických adres a C Zdroje informací Otázky a příklady k procvičení

51 Otázky a příklady k procvičení 1. Jaká data bude obsahovat zásobník a ukazatel na něj, došlo-li k volání dvou vnořených podprogramů z adres 0x0029 a 0x0045 pomocí instrukcí CALL, byl-li zásobník definován na adrese 0x045f? 2. Jakou hodnotu bude nabývat programový čítač na začátku obsluhy přerušení od AD převodníku (ATmega16) a proč je nutné definovat zásobník u přerušení? 3. Nakreslete vývojový diagram aplikace 4bitového binárního čítače řízeného dvojicí tlačítek (externí přerušení). První tlačítko inkrementuje stav čítače, druhé jeho stav nuluje. 4. Napište cyklus v jazyce C, který proběhne právě 8.

Ústav radioelektroniky

Ústav radioelektroniky Ústav radioelektroniky Vysoké učení technické v Brně Programování mikrokontrolérů Mikroprocesorová technika, přednáška č. 4 Ing. Frýza Tomáš, Ph.D. 14. října 2008 Obsah přednášky Typy adresování Registrové,

Více

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

Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D. Ústav radioelektroniky Vysoké učení technické v Brně Programování mikrokontrolérů Mikroprocesorová technika a embedded systémy Přednáška 3 doc. Ing. Tomáš Frýza, Ph.D. říjen 2012 Obsah přednášky Typy adresování

Více

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

8. Laboratoř: Aritmetika a řídicí struktury programu 8. Laboratoř: Aritmetika a řídicí struktury programu Programy v JSA aritmetika, posuvy, využití příznaků Navrhněte a simulujte v AVR studiu prográmky pro 24 bitovou (32 bitovou) aritmetiku: sčítání, odčítání,

Více

IMTEE Přednáška č. 11

IMTEE Přednáška č. 11 AVR Libc pokračování interrupt.h práce s přerušením povolení / zakázání přerušení o makro sei() = instrukce sei o makro cli() = instrukce cli obslužné funkce vždy tvar ISR(JMENO_VEKTORU) // obslužný kod

Více

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

Struktura a architektura počítačů (BI-SAP) 7 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 7 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

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

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

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

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

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.

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

Více

Jednočipové mikropočítače

Jednočipové mikropočítače 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

Více

Ústav radioelektroniky

Ústav radioelektroniky Ústav radioelektroniky Vysoké učení technické v Brně Komunikace zařízení po sběrnici Mikroprocesorová technika, přednáška č. 3 Ing. Frýza Tomáš, Ph.D. 10. října 2007 Obsah přednášky Základní pojmy a terminologie

Více

RISC a CISC architektura

RISC a CISC architektura RISC a CISC architektura = dva rozdílné přístupy ke konstrukci CPU CISC (Complex Instruction Set Computer) vývojově starší přístup: pomoci konstrukci překladače z VPP co nejpodobnějšími instrukcemi s příkazy

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Jazyk symbolických adres

Jazyk symbolických adres Jazyk symbolických adres 1 Proč programovat v JSA Pro některé procesory resp. MCU jsou překladače JSA dostupnější. Některé překladače vyšších jazyků neumí využít určité speciální vlastnosti procesoru.

Více

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

Struktura a architektura počítačů (BI-SAP) 9 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 9 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Mikroprocesorová technika a embedded systémy

Mikroprocesorová technika a embedded systémy Mikroprocesorová technika a embedded systémy Počítačová cvičení doc. Ing. Tomáš Frýza, Ph.D. doc. Ing. Jiří Šebesta, Ph.D. Ing. Zbyněk Fedra, Ph.D. Ing. Petr Zelinka ÚSTAV RADIOELEKTRONIKY Fakulta elektrotechniky

Více

Procesor z pohledu programátora

Procesor z pohledu programátora Procesor z pohledu programátora Terminologie Procesor (CPU) = řadič + ALU. Mikroprocesor = procesor vyrobený monolitickou technologií na čipu. Mikropočítač = počítač postavený na bázi mikroprocesoru. Mikrokontrolér

Více

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

Kubatova 19.4.2007 Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR. 2007-Kubátová Y36SAP-strojový kód 1 Y36SAP 8 Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR 2007-Kubátová Y36SAP-strojový kód 1 Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura

Více

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

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů). Strojový kód k d a asembler procesoru MIPS Použit ití simulátoru SPIM K.D. - cvičení ÚPA 1 MIPS - prostředí 32 ks 32bitových registrů ( adresa registru = 5 bitů). Registr $0 je zero čte se jako 0x0, zápis

Více

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Úvod do mobilní robotiky AIL028

Úvod do mobilní robotiky AIL028 md at robotika.cz http://robotika.cz/guide/umor07/cs 11. října 2007 1 Definice Historie Charakteristiky 2 MCU (microcontroller unit) ATmega8 Programování Blikání LEDkou 3 Kdo s kým Seriový port (UART)

Více

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.

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. Model procesoru Jedná se o blokové schéma složené z registrů, paměti RAM, programového čítače, instrukčního registru, sčítačky a řídicí jednotky, které jsou propojeny sběrnicemi. Tento model má dva stavy:

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Adresovací módy paměti programu a dat

Adresovací módy paměti programu a dat Adresovací módy paměti programu a dat AVR architektura obsahuje několik adresovacích módů pro přístup k paměti programu (FLASH) a k datové paměti (SRAM, pracovní registry a I/O registry) Na následujících

Více

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

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051 051 Seznámení s mikropočítačem Architektura mikropočítače Instrukce Paměť Čítače Porovnání s AT89C2051 Seznámení s mikropočítačem řady 8051 Mikroprocesor řady 8051 pochází z roku 1980 a je vytvořené firmou

Více

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií 1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední

Více

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

Principy komunikace s adaptéry periferních zařízení (PZ) Principy komunikace s adaptéry periferních zařízení (PZ) Několik možností kategorizace principů komunikace s externími adaptéry, např.: 1. Podle způsobu adresace registrů, které jsou součástí adaptérů.

Více

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

LED_007.c Strana: 1/5 C:\Michal\AVR\Výukové programy\archiv\ Poslední změna: 4.10.2011 8:01:48 LED_007.c Strana: 1/5 Nyní již umíme používat příkazy k větvení programu (podmínky) "if" a "switch". Umíme také rozložit program na jednoduché funkce a používat cyklus "for". Co se týče cyklů, zbývá nám

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

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

MSP 430F1611. Jiří Kašpar. Charakteristika MSP 430F1611 Charakteristika Mikroprocesor MSP430F1611 je 16 bitový, RISC struktura s von-neumannovou architekturou. Na mikroprocesor má neuvěřitelně velkou RAM paměť 10KB, 48KB + 256B FLASH paměť. Takže

Více

Opakování programování

Opakování programování Opakování programování HW návaznost - procesor sběrnice, instrukční sada, optimalizace rychlosti, datové typy, operace (matematické, logické, podmínky, skoky, podprogram ) - paměti a periferie - adresování

Více

Mikroprocesorová technika

Mikroprocesorová technika Mikroprocesorová technika Laboratorní cvičení Ing. Tomáš Frýza, Ph.D. Ing. Zbyněk Fedra, Ph.D. Ing. Jiří Šebesta, Ph.D. ÚSTAV RADIOELEKTRONIKY Fakulta elektrotechniky a komunikačních technologií VUT v

Více

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

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce Universita Pardubice Fakulta elektrotechniky a informatiky Mikroprocesorová technika Semestrální práce Jméno: Chmelař Pavel Datum: 14. 5. 2008 Úkol: Příklad č. 1 V paměti dat je uložen blok 8 b čísel se

Více

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

Programování MCU ve vyšších programovacích jazycích Programování MCU ve vyšších programovacích jazycích Úvod vyšší programovací jazyk = High Level Language (HLL) Dříve nemyslitelné, důvody: nedostatek RAM, ROM, malý výkon CPU dnes poměrně běžné, používané

Více

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 2.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 07 Ver.1.10 J. Zděnek,

Více

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

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

Mikrokontroléry. Doplňující text pro POS K. D. 2001 Mikrokontroléry Doplňující text pro POS K. D. 2001 Úvod Mikrokontroléry, jinak též označované jako jednočipové mikropočítače, obsahují v jediném pouzdře všechny podstatné části mikropočítače: Řadič a aritmetickou

Více

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 Informační systémy 2 Obsah: Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC ROM RAM Paměti typu CACHE IS2-4 1 Dnešní info: Informační systémy 2 03 Informační systémy

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího

Více

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

Přerušovací systém s prioritním řetězem Přerušovací systém s prioritním řetězem Doplňující text pro přednášky z POT Úvod Přerušovací systém mikropočítače může být koncipován několika způsoby. Jednou z možností je přerušovací systém s prioritním

Více

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

1. MIKROPROCESOR ATMEGA A/D PŘEVODNÍK MÓDY PŘEVODNÍKU Single Conversion Mode Auto Triggering Start... 1. MIKROPROCESOR ATMEGA 8535... 2 1.1 A/D PŘEVODNÍK... 2 1.2 MÓDY PŘEVODNÍKU... 3 1.2.1 Single Conversion Mode... 3 1.2.2 Auto Triggering Start... 4 1.2.3 Free Running Mode... 4 1.3 VÝBĚR MĚŘENÉHO KANÁLU...

Více

Architektury počítačů a procesorů

Architektury počítačů a procesorů Kapitola 3 Architektury počítačů a procesorů 3.1 Von Neumannova (a harvardská) architektura Von Neumann 1. počítač se skládá z funkčních jednotek - paměť, řadič, aritmetická jednotka, vstupní a výstupní

Více

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

ČEMU ROZUMÍ MIKROPROCESOR?

ČEMU ROZUMÍ MIKROPROCESOR? ČEMU ROZUMÍ MIKROPROCESOR? Čemu rozumí mikroprocesor? Číslo DUM v digitálním archivu školy VY_32_INOVACE_10_01_01 Materiál poskytuje pohled na mikroprocesor, jako na číslicový obvod. Seznamuje se základními

Více

Úvod do mobilní robotiky NAIL028

Úvod do mobilní robotiky NAIL028 md at robotika.cz http://robotika.cz/guide/umor08/cs 6. října 2008 1 2 Kdo s kým Seriový port (UART) I2C CAN BUS Podpora jednočipu Jednočip... prostě jenom dráty, čti byte/bit, piš byte/bit moduly : podpora

Více

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

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor: Západočeská univerzita v Plzni Písemná zkouška z předmětu: Zkoušející: Katedra informatiky a výpočetní techniky Počítačová technika KIV/POT Dr. Ing. Karel Dudáček Akademický rok: 2004/05 Datum: Příjmení:

Více

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

Assembler - 2.část. poslední změna této stránky: Zpět 1 z 9 19.2.2007 7:51 Assembler - 2.část poslední změna této stránky: 9.2.2007 1. Příznaky (flagy) Zpět Flagy (česky podivně "příznaky", proto používám výhradně anglický název) jsou výlučnou záležitostí

Více

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: 1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.

Více

Bloková struktura mikrokontrolérů Mikroprocesorová technika a embedded systémy

Bloková struktura mikrokontrolérů Mikroprocesorová technika a embedded systémy Ústav radioelektroniky Vysoké učení technické v Brně Bloková struktura mikrokontrolérů Mikroprocesorová technika a embedded systémy Přednáška 1 doc. Ing. Tomáš Frýza, Ph.D. Obsah přednášky Popis a použití

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

ISU Cvičení 7. Marta Čudová

ISU Cvičení 7. Marta Čudová ISU Cvičení 7 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Osnova

Více

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

Více

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

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

setup() { I = 0; } loop() { I = I + 1; } PŘERUŠENÍ Procesor pracuje tak, že načítá z paměti jednotlivé instrukce a ty následně zpracovává. Instrukce se zpracovávají v pořadí v jakém jsou uloženy v paměti. Vezměme jednoduchý program, který v nekonečném

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

ISU Cvičení 3. Marta Čudová

ISU Cvičení 3. Marta Čudová ISU Cvičení 3 Marta Čudová Supercomputing Technologies Research Group Brno University of Technology, Faculty of Information Technology Božetěchova 1/2, 612 66 Brno - Královo Pole icudova@fit.vutbr.cz Program

Více

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

Profilová část maturitní zkoušky 2015/2016 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2015/2016 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

Základy digitální techniky

Základy digitální techniky Základy digitální techniky Binarna aritmetika. Tabulky Karno. Operace logické a aritmetické; Binarna aritmetika. č. soust zákl. Abeceda zápis čísla binarní B=2 a={0,1} 1100 oktalová B=8 a={0,1,2,3,4,5,6,7}

Více

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áš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áška Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012 Příprava studijního programu Informatika je podporována projektem financovaným z Evropského

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah

Více

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení

LOGICKÉ ŘÍZENÍ. Matematický základ logického řízení Měřicí a řídicí technika bakalářské studium - přednášky LS 28/9 LOGICKÉ ŘÍZENÍ matematický základ logického řízení kombinační logické řízení sekvenční logické řízení programovatelné logické automaty Matematický

Více

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakovaní Funkce v C Tvorba knihoven Konfigurační bity #pragma Makra v C #define Debugging v MPLAB Hardware

Více

Programovací jazyk C++ Hodina 1

Programovací jazyk C++ Hodina 1 Programovací jazyk C++ Hodina 1 Používané překladače Bloodshed Dev C++ http://www.bloodshed.net/devcpp.html CodeBlocks http://www.codeblocks.org pokud nemáte již nainstalovaný překladač, stáhněte si instalátor

Více

Ústav radioelektroniky. 18. prosince 2007

Ústav radioelektroniky. 18. prosince 2007 Ústav radioelektroniky Vysoké učení technické v Brně Programování signálových procesorů Mikroprocesorová technika, přednáška č. 13 Ing. Frýza Tomáš, Ph.D. 18. prosince 2007 Obsah přednášky Architektury

Více

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Stručný úvod do programování v jazyce C 1.díl České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 06 Ver.1.10 J. Zděnek,

Více

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

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 ZÁKLADY PROGRAMOVÁNÍ Mgr. Vladislav BEDNÁŘ 2013 1.3 2/14 Co je vhodné vědět, než si vybereme programovací jazyk a začneme programovat roboty. 1 / 14 0:40 1.3. Vliv hardware počítače na programování Vliv

Více

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

Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3 Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 4.C Skupina: 3 Klimatizace Zpráva číslo: 3 Dne: 08.01.2007 Soupis použitých přístrojů: přípravek s μc 8051 přípravek s LCD přípravek

Více

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

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru Cíl přednášky: Vysvětlit principy práce s registry v architekturách RISC a CISC, upozornit na rozdíly. Vysvětlit možnosti využívání sad registrů. Zabývat se principy využívanými v procesorech Intel. Zabývat

Více

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek 1/41 Základní příkazy Všechny příkazy se píšou malými písmeny! Za většinou příkazů musí být středník (;)! 2/41 Základní příkazy

Více

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

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Tomáš Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague Zjednodušené schéma systému z základ hardware pro mainframe tvoří: operační pamět - MAIN / REAL STORAGE jeden

Více

Popis instrukční sady procesoru ADOP

Popis instrukční sady procesoru ADOP instrukční sady procesoru ADOP ČVUT FEL, 2008 K. Koubek, P. Bulena Obsah instrukční sady...5 Univerzální registry...5 Registr příznaků FR...5 Standardní význam příznaků...6 Přehled instrukcí...7 ADD Add...8

Více

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a Aplikace Embedded systémů v Mechatronice Aplikace Embedded systémů v Mechatronice Obsah přednášky: Opakování Datasheet GPIO piny TRISx/ANSELx registr LATx registr PORTx registr Ukázky použití Hardware

Více

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

PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz Technická zpráva PicoBlaze lekce 1: assembler, C překladač a simulační prostředí Jiří Svozil, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz Obsah 1. Úvod... 2 2. Xilinx PicoBlaze... 2 2.1 Architektura procesoru...

Více

Testování jednotky ALU a aplikace metody FMEA

Testování jednotky ALU a aplikace metody FMEA Testování jednotky ALU a aplikace metody FMEA Bc. Jiří Sobotka, Vysoké Učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav telekomunikací, Purkyňova 118, 612 00 Brno, Česká

Více

6 Příkazy řízení toku

6 Příkazy řízení toku 6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní

Více

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

Jednočipové mikropočítače (mikrokontroléry) Počítačové systémy Jednočipové mikropočítače (mikrokontroléry) Miroslav Flídr Počítačové systémy LS 2006-1/17- Západočeská univerzita v Plzni Co je mikrokontrolér integrovaný obvod, který je často součástí

Více

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů ) Vysoká škola báňská Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů ) Führer Ondřej, FUH002 1. AVR procesory obecně

Více

Architektura počítače

Architektura počítače Architektura počítače Výpočetní systém HIERARCHICKÁ STRUKTURA Úroveň aplikačních programů Úroveň obecných funkčních programů Úroveň vyšších programovacích jazyků a prostředí Úroveň základních programovacích

Více

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

Základní uspořádání pamětí MCU Základní uspořádání pamětí MCU Harwardská architektura. Oddělený adresní prostor kódové a datové. Používané u malých MCU a signálových procesorů. Von Neumannova architektura (Princetonská). Kódová i jsou

Více

Jazyk C# a platforma.net

Jazyk C# a platforma.net Jazyk C# a platforma.net Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Syntaxe jazyka C# - 1. část BI-DNP Evropský sociální fond

Více

x86 assembler and inline assembler in GCC

x86 assembler and inline assembler in GCC x86 assembler and inline assembler in GCC Michal Sojka sojkam1@fel.cvut.cz ČVUT, FEL License: CC-BY-SA 4.0 Useful instructions mov moves data between registers and memory mov $1,%eax # move 1 to register

Více

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

Profilová část maturitní zkoušky 2014/2015 Střední průmyslová škola, Přerov, Havlíčkova 2 751 52 Přerov Profilová část maturitní zkoušky 2014/2015 TEMATICKÉ OKRUHY A HODNOTÍCÍ KRITÉRIA Studijní obor: 26-41-M/01 Elektrotechnika Zaměření: technika

Více

Komunikace modulu s procesorem SPI protokol

Komunikace modulu s procesorem SPI protokol Komunikace modulu s procesorem SPI protokol Propojení dvouřádkového LCD zobrazovače se sběrnicí SPI k procesotru (dále již jen MCU microcontroller unit) a rozložení pinů na HSES LCD modulu. Komunikace

Více

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

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1. 7 Předmluva 13 Použité konvence 14 KAPITOLA 1 Základní číselné soustavy a pojmy 15 1.1 Číselné soustavy a převody 15 1.2 Datové typy 18 KAPITOLA 2 Seznámení s mikroprocesory řady x86 21 2.1 Počítač obecně

Více

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

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

Více

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura počítače - pokračování České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015 Systémová struktura počítače pokrač. Systém přerušení A8B14ADP

Více

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

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 6 Práce s analogově digitálním převodníkem Jan Dolinay Petr Dostálek Zlín 2013 Tento studijní materiál

Více

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

ZPRO v C Ing. Vít Hanousek. verze 0.3 verze 0.3 Hello World Nejjednoduší program ukazující vypsání textu. #include using namespace std; int main(void) { cout

Více

Procesory z řady 8051

Procesory z řady 8051 Procesory z řady 8051 A/D a D/A převodníky, komparátory Nízký příkon napájení 3,3V Malá pouzdra pro plošnou montáž Programová Flash OTP-EPROM Redukované nebo rozšířené I/O vývody Jádro 80C51 Kapacita programu

Více

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

Popis instrukční sady - procesory PIC Aritmetické a logické operace Popis instrukční sady - procesory PIC Aritmetické a logické operace ADDLW - ADD Literal and W ADDLW k (W+k) W Sečte obsah registru W s konstantou k, výsledek uloží do registru Ovlivňuje: C, DC, Z ADDWF

Více

Operační systémy. Cvičení 3: Programování v C pod Unixem

Operační systémy. Cvičení 3: Programování v C pod Unixem Operační systémy Cvičení 3: Programování v C pod Unixem 1 Obsah cvičení Editace zdrojového kódu Překlad zdrojového kódu Základní datové typy, struktura, ukazatel, pole Načtení vstupních dat Poznámka: uvedené

Více

MIKROPROCESOROVÁ TECHNIKA

MIKROPROCESOROVÁ TECHNIKA MODERNIZACE VÝUKOVÝCH MATERIÁLŮ A DIDAKTICKÝCH METOD - CZ.1.07/2.2.00/15.0463 MIKROPROCESOROVÁ TECHNIKA LEKCE 1 Ing. Daniel Zuth, Ph.D. 2012 ÚVODNÍ HODINA DO PŘEDMĚTU MIKROPROCESOROVÁ TECHNIKA OBSAH Úvod

Více

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY Systém přerušení České vysoké učení technické Fakulta elektrotechnická A1B14MIS Mikroprocesory pro výkonové systémy 6 Ver.1.2 J. Zděnek, 213 1 pic18f Family Interrupt

Více