Ústav radioelektroniky
|
|
- František Toman
- před 7 lety
- Počet zobrazení:
Transkript
1 Ú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
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í
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í
4 Typy adresování Adresování zpřístupňuje programovou (Flash) a datovou pamět (registry, I/O registry, SRAM). Terminologie Přímé adresování - adresa je součástí instrukce. Přímo lze adresovat pracovní registry, řídicí (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). Např.: mov Rd,Rr
5 Typy adresování, pokračování OP kód r Rd Rr Obecné pracovní registry R0 R1 0x OP kód Rd OP Obecné pracovní registry R0 R1 0x00 R25 R26 (XL) R27 (XH) R28 (YL) R29 (YH) R30 (ZL) R31 (ZH) 0x1F R25 R26 (XL) R27 (XH) R28 (YL) R29 (YH) R30 (ZL) R31 (ZH) 0x1F 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. Např.: 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). Např.: ijmp, st X,Rr.
6 Typy adresování, dokončení OP K Rd K Obecné pracovní registry R0 R1 0x00 R25 R26 (XL) R27 (XH) R28 (YL) R29 (YH) R30 (ZL) R31 (ZH) 0x1F 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. Např.: ldi Rd,K Vícebitové procesory (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í
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 a!=0 ano podmínka ne Obrázek: Podmínka Podmíněný skok je reakcí na výsledek podmínky. Výsledek podmínky je vždy true nebo false. 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 b v I/O registru P nulový (skip if bit is cleared), sbis P,b přeskoč, je-li bit b v I/O registru P nastaven (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 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 (Konstanta ramend obsahuje 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 č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. 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ů?
19 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ů 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.).
20 Rozdíl mezi podprogramem a makrem Příklad Jaké jsou základní rozdíly mezi podprogramem a makrem?
21 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í
22 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 (viz. další slajd).
23 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 - dokončení A/D převodu 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
24 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 mezi jednotlivými vektory přerušení volných 32 bitů. U ATtiny11 jen 16 bitů pro samotnou obsluhu to nestačí. Pozn.: 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).
25 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 (zásobník musí být definován), 4) Podle zdroje přerušení se do PC načte adresa obslužného programu přerušení (např.: PC=0x0002 pro INT0), 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 uložená návratová adresa ze zásobníku, 9) Pokračuje se ve výkonu hlavního programu.
26 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 povolení externího přerušení u AVR Řídicí 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).
27 Možnosti nastavení externího 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
28 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).
29 Možnosti nastavení přerušení čítače/časovače 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 =1MHz?
30 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.
31 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í
32 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.)
33 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
34 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 }
35 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í
36 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 Pozn.: sts k,rr - Přímé uložení hodnoty registru do datové paměti SRAM (0 r 31, 0 k ).
37 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
38 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
39 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,... ) { ; }
40 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,
41 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 ;
42 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: ; }
43 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( ;; ) { ; ; }
44 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 ) { ; }
45 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řeklad: sei ldi r16,0x20 inc r16
46 Kombinace jazyka symbolických adres a C 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. Prototyp extern int add compl( int,int ) ; c = add compl( a,b ) ; r25:r24 r23:r22 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í
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).
Ústav radioelektroniky
Ú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 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 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íce8. 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íceIMTEE 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íceStruktura 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 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íceStrojový 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íceIMTEE 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íceJednoč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 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íceRISC 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íceProcesor 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íceJazyk 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ícePrincip 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ícefor (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
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íceStrojový 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íceStruktura 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íceMikroprocesorová 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íceKubatova 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Ú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íceAdresovací 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ícePrincipy 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íceUniversita 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íceJako 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íceLogické 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íceSezná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ícePohled 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íceMSP 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íceLED_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íce1. 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íceSbě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íceProgramová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íceMikroprocesorová 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íceOpaková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íceMIKROPROCESORY 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Ú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íceArchitektury 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íceAkademický 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íceVáž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ícePř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íceSprá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íce1. 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íceObsah. 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íceMikrokontrolé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Č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
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ícePascal. 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íce1. 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íceMichal 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íceMIKROPROCESORY 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íceProgramovací 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íceBloková 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íceAlgoritmizace 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íceZá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íceAssembler - 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íceProgramovací 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íceAplikace 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íceISU 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íceProfilová čá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íceZá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íceAlgoritmizace 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íceISU 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íceKlimatizace. 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ícePř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íceJednoč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íceStruktura 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ícesetup() { 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íceZá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ícex86 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íceZá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íceDalší 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íceZÁ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Ú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íceTestová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íce8. 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íceSběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC
Informatika 2 Technické prostředky počítačové techniky - 2 Přednáší: doc. Ing. Jan Skrbek, Dr. - KIN Přednášky: středa 14 20 15 55 Spojení: e-mail: jan.skrbek@tul.cz 16 10 17 45 tel.: 48 535 2442 Obsah:
VíceZPRO 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íceArchitekura 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íce9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include <stdio.h>
9.3.2010 Program převod z desítkové na dvojkovou soustavu: /* Prevod desitkove na binarni */ #include int main(void) { int dcislo, kolikbcislic = 0, mezivysledek = 0, i; int vysledek[1000]; printf("zadejte
VíceJazyk 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íceEVROPSKÝ 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íceProgramová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ícePopis 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íceProfilová čá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ícePicoBlaze 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ícePř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íceLOGICKÉ ŘÍ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Čí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íceAlgoritmizace 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íceFaculty 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íce3. Počítačové systémy
3. Počítačové systémy 3.1. Spolupráce s počítačem a řešení úloh 1. přímý přístup uživatele - neekonomické. Interakce při odlaďování programů (spusť., zastav.,krok, diagnostika) 2. dávkové zpracování (batch
VíceArchitektura 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íceProcesory 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íceKomunikace 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íceMIKROPROCESOROVÁ 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íceAplikace 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/*Dekodovani DFC signalu*/ // Projekt MMIA 2013 // Martin Dujicek, Milan Rejnus
/*Dekodovani DFC signalu*/ // Projekt MMIA 2013 // Martin Dujicek, Milan Rejnus #include #include #include "lcd_h.h" #include "lcd_c.c" #include "twi_c.c" #include "twi_h.h"
VíceUživatelský manuál. KNX232e / KNX232e1k
Uživatelský manuál verze dokumentu 1.2 (pro firmware od verze 2.1) KNX232e / KNX232e1k KNX232e slouží pro ovládání a vyčítání stavů ze sběrnice KNX sériová linka s ASCII protokolem signalizace komunikace
Více