LCD přes I2C. Mnoho lidí programuje způsobem, že si stahují hotové řešení z knihoven:
|
|
- Iva Benešová
- před 6 lety
- Počet zobrazení:
Transkript
1 Poznámka o programování LCD přes I2C Mnoho lidí programuje způsobem, že si stahují hotové řešení z knihoven: #include "MyCoolLCD.h" MyCoolLCD lcd(0x37); void setup() { lcd.begin(); Serial.begin(9600); void loop() { if(serial.available()) { byte chr = Serial.read(); lcd.print(chr); V podstatě je to volání programu MyCoolLCD s parametrem. Pokud by pak programátor měl doplnit ošetření klávesy backspace a šipky, musel by prostudovat knihovnu MyCoolLCD. V reálu však programátoři googlí a hledají pokud možno příklady, které dělají, co potřebují. Programují pak úpravami zkopírovaného kódu. Vyzkoušejí, jestli to funguje, zkusí otestovat ještě pár vstupů a prohlásí problém za vyřešený. Programátor pak nikdy neví, co se stane za podmínek, které netestoval: Co když se zakáže přerušení? Bude to fungovat i na mikrokontroleru s pomalejším oscilátorem? Pokud se objeví chyba, pak opět Google a úpravy kódu. V případě dlouhodobě udržovaného projektu je vhodné najít si čas a vše prostudovat do technických detailů. Díky tomu pak programátor může rozumět příčinám chyb. Člověk si ušetří spoustu práce, pokud odmítne převzít kód po programátorovi, který komentuje stylem tady jsem musel trochu zvětšit delay a tady jsem musel znovu vytvořit objekt. To je programování záplatováním, které lajdáci obhajují frází, že není vhodné znovuvynalézat kolo. To platí pouze tehdy, lze-li problém vyřešit změnou parametrů řádně otestovaného řešení, ale ne při vývoji nových funkcí. Analýza I2C displeje Vygooglíme, že displej je od společnosti Hitachi ze série HD44780, stáhneme si jeho technickou dokumentaci (datasheet). Pohledem zjistíme, že I2C převodník z druhé strany je PCF8574, jehož datasheet si také stáhneme. Vyhradíme si dva ničím nerušené dny a pustíme se do čtení těchto magických knih, které z nás udělají experty na tyto Hitachi displeje. Zjistíme, že Displej funguje s napájením 2.7 až 5.5 V, můžeme ho tedy bez obav použít pro Arduino i Raspberry
2 Displej obsahuje 1.24 kb CGROM (character generator ROM), kde jsou uloženy bitmapy znaků (Hitachi vyrábí CGROM s evropským a japonským fontem, je však možné se domluvit i na sériové výrobě displejů s vlastním fontem). Dále displej obsahuje 64 B CGRAM pro definici vlastních znaků. Náš displej (pohledem na matrici) obsahuje font 5 8 bodů. Znak zabírá 8B v paměti, je tedy k dispozici 155 znaků z CGROM a 8 uživatelsky definovaných znaků z CGRAM. Data znaku se posílají sérioparalelně po pěti sloupcích do konvertoru, kam jde též vstup s údaji o kurzoru (který může blikat) a paralelně po 40žilové sběrnici (!) je posílán do posuvného registru, který data sériově posílá přes pin D a paralelně na piny SEG1 až SEG40. Displej dále obsahuje DDRAM (data display RAM) 80 B (20 4). Adresa pozice se posílá po 7žilové sběrnici (2 7 =128>80). Data se do obou RAM posílají přes datový registr (DR), se kterým může komunikovat mikrokontroler paralelně po vodičích DB0 až DB7. Řídící sběrnice má vyvedené piny o RS (register select: 0=instrukce, 1=data). Instrukce se načítají do instrukčního registru (IR) o R/W (read, not write: 0=zápis, 1=čtení). Na I2C převodníku jsme omezeni na zápis, jelikož pin pro přerušení čtení není vyveden. o E (enable: 0=ignorování, 1=zpracování signálu). V průběhu vystavování pinů je třeba dát E na 0, a poté krátkým pulzem (min 450ns) dát signál pro zpracování o napájení a zem pro displej (až 11 V) a čip (až 5.5 V) Na desce displeje nejsou vyvedeny piny CL1, CL2, M, D, COMn a SEGn použitelné pro analýzu Z příznakového registru má čip pouze BF bit (busy flag) indikující probíhající operaci. Tento si nemůžeme přes I2C převodník přečíst :-( Adresa instrukcí (CG i DD segmentu) se zapisuje do AC registru, který přes I2C také nelze číst. Čip počítá pouze s 1 či 2 řádkovým displejem: 1řádkový ma adresy DDRAM 0-39, dvouřádkový Displej 2 20 může být tedy implementován i jako jednořádkový a podle toho se může lišit zadávání souřadnic (fyzicky máme 4řádkový displej) Abstraktní funkce Vytvoříme třídu HD44780 pro implementaci komunikace s LCD. Uděláme ji nezávislou na způsobu připojení (I2C či paralelní), což zajistíme následujícími ryze virtuálními metodami pro práci se sběrnicemi: virtual void control(bool rs, bool rw, bool en)=0; // řídící sběrnice virtual void command(byte com, bool rs, bool rw)=0; // datová sběrnice Krátká instrukce trvá nejdéle 37 mikrosekund, můžeme tedy vytvořit metodu pro synchronní zpracování instrukcí: void instruction(byte com, bool rs=false, bool rw=false) { command(com, rs, rw); delaymicroseconds(37);
3 Řídící signály se vystavují následovně Z toho plyne, že signály RS a R/W musí být vystaveny o dobu t AS před signálem E, jehož délka musí být PW EH. Data musí být platná po dobu t DSW +t H a signály RS a R/W musí po celou dobu zůstat nezměněné. Tyto údaje jsou popsány v datasheetu, jsou minimální a jsou všechny v řádu desítek nanosekund. Můžeme tedy napsat metodu pro generování E pulzu: void en_pulse(bool rs, bool rw) { delaymicroseconds(1); // > t AS control(rs, rw, true); delaymicroseconds(1); // > PW EH, > t DSW +t H, > t AH control(rs, rw, false); Pokud před tímto pulzem vystavíme data, RS a R/W, splníme časové požadavky diagramu.
4 Instrukce displeje Instrukce pro čtení nelze s I2C převodníkem implementovat. Můžeme napsat kód pro dlouhé bezparametrické instrukce clear() a home(): void home() { command(1<<1); delaymicroseconds(1520);
5 Obdobně můžeme napsat kód pro krátké parametrické instrukce: void display_cursor_blink(bool d=true, bool c=false, bool b=false) { byte data = (1<<3) (d<<2) (c<<1) b; Podobnou technikou, kdy z virtuálních metod děláme posloupnost abstraktních kroků, funguje i třída Print: zde jsou implementovány všechny varianty, jaké lze volat u Serial.print, pouze varianta pro tisk znaku je ryze virtuální. Pokud ji implementujeme, zdědíme tak i všechny ostatní metody pro výpis: size_t write(uint8_t chr) { if(!dd_selected) return 0; instruction(chr, true); return 1; Metoda má vrátit 1, pokud se znak podařilo napsat. V našem případě bychom měli znak zapsat pouze tehdy, pracujeme-li s DDRAM. Typ paměti (CGRAM nebo DDRAM) můžeme vybrat instrukcí (viz tabulka výše). Povolíme tedy zápis metodou write, pouze pokud byla zvolena DDRAM (k tomu slouží privátní proměnná dd_selected). I2C převodník a 4bitový mód I2C převodník PCF8574 má 8 datových pinů, nemůžeme je ale použít všechny, protože displej potřebuje ještě řídící signály RS, R/W a E. Čip displeje však instrukcí function_set umožňuje přepnout do 4bitového módu, kde používají pouze 4 datové vodiče, které přenesou byte ve dvou cyklech: v prvním se přenese vyšší a v druhém nižší nibble. Připojení vypadá takto: Obrázek 1: I2C převodník a displej, zdroj:
6 Volný bit P7 je použit k podsvícení displeje, které tak lze také ovládat softwarově. V našem případě (pohledem na vedení vodičů na desce převodníku) však zjistíme, že jsou datové nibble prohozené: P4-P7 jsou datové, P0-P3 řídící sběrnice. Napíšeme si tedy funkci pro přenos nibble po I2C sběrnici: void writei2c(byte nibble, bool rs=false, bool en=false) { data = nibble; // uloženo pro následné poslání řídících signálů if(!addr) return; // I2C adresa z konstruktoru byte packet = nibble<<4; packet = (rs<<0) (en<<2) (light<<3); Wire.beginTransmission(addr); Wire.write(packet); Wire.endTransmission(); Posílaná data si uložíme do bufferu (při zaslání E pulzu musí být nezměněná). light je veřejná proměnná. Pokud ji změníme, displej se rozsvítí/zhasne při následujícím příkazu. Implementujte ji v souladu se zapouzdřením jako property (při změně pošlete instrukci NOP samé nuly). Poté můžeme např. zablikat displejem (jako při budíku). Virtuální metodu control pak můžeme implementovat takto: void control(bool rs, bool rw, bool en) { rw = rw; // unused writei2c(data, rs, en); Tato metoda se volá 2 v en_pulse (vzestupná a sestupná hrana). Proto můžeme virtuální metodu command implementovat takto: void command(byte com, bool rs=false, bool rw=false) { byte hibyte = com >> 4; byte lobyte = com & 0b1111; data = hibyte; en_pulse(rs, rw); // poslání horního nibble s E pulsem data = lobyte; en_pulse(rs, rw); // poslání dolního nibble s E pulsem Ještě je zapotřebí vyřešit inicializaci displeje, který se po restartu zapne do 8bitového režimu, a tedy první instrukci function_set pro přepnutí do 4bitového režimu musíme provést v 8bitovém módu. Dolní 4 bity sice nemáme zapojené, ale nejsou zapotřebí. Poté zavoláme function_set ještě jednou: tentokráte ve 4bitovém módu, kde pomocí dolních 4 bitů nastavíme dvouřádkový displej. Poté už počet řádků nelze měnit až do resetu.
7 Tuto krátkou sekvenci můžeme provést, pokud se správně provedl HW reset, jehož podmínky jsou tyto: Pokud tyto podmínky nejsou dodrženy, displej nebude pracovat správně a je nutno provést softwarový reset popsaný v diagramu č. 23 na stránce 45 v manuálu. V kódu: void set_4bit() { writei2c(0x00); // klidový stav sběrnice delay(50); // ustálení napětí data = 0x03; en_pulse(false, false); // function_set v 8bitovém módu delaymicroseconds(5000); data = 0x03; en_pulse(false, false); // function_set v 8bitovém módu delaymicroseconds(150); data = 0x03; en_pulse(false, false); // function_set v 8bitovém módu delaymicroseconds(37); data = 0x02; en_pulse(false, false); // function_set v 8bitovém módu delaymicroseconds(37); Po nevydařeném HW resetu může být displej v náhodném stavu, metoda begin pro inicializaci by měla vypadat takto: void begin(int cols, int rows) { this->rows = rows; this->cols = cols; set_4bit(); function_set(false, rows>0, false); clear(); display_cursor_blink(true, false, false); entry_mode_set(true, false);
8 HW potřebujeme sloupce pouze pro správnou funkci jezdícího textu, SW se hodí řádky a sloupce k pohodlnému nastavení kurzoru přes souřadnice: void gotoxy(int X, int Y) { if(x<0) X = cols+x; if(y<0) Y = rows+y; byte pos = (byte)(y*cols+rows); set_ddram_addr(pos); Offsety začátků řádků se však mohou lišit u 4řádkových displejů, viz analýza v úvodu. Pokud jsme nerolovali displejem (jezdícím textem), je efektivnější volání gotoxy(0,0) než home(). Poslední věc nutná ke správnému zapojení je správně nastavená adresa I2C sběrnice. O tom podrobněji někdy jindy, zde si vystačíme s knihovnou wire.h a intuitivním předpokladem, že zařízení přenos ignoruje, pokud se adresa neshoduje s jeho. Adresa je daná většinou hardwarově v dokumentaci, na některých převodnících je možné ji změnit pomocí přepínačů. Je-li na sběrnici pouze jedno zařízení, jeho adresu lze pomocí knihovny wire.h detekovat automaticky. Tento kód je vhodné umístit do konstruktoru LCDI2C: Wire.begin(); // inicializace wire.h knihovny for(int i=1; i<128; ++i) { Wire.beginTransmission(i); if(wire.endtransmission()==0) { this->addr = i; break; Naši knihovnu pak můžeme volat např. takto LCDI2C* lcd = new LCDI2C; lcd->begin(20,4); lcd->gotoxy(-4,1); // text do pravého dolního rohu lcd->print("ahoj"); // DDRAM AC je na 0 (levý horní roh) Poznámka o designu LCD přes I2C I2C je HW kompatibilní s datovou sběrnicí, řídící sběrnice potřebuje ale své piny nastavovat a měnit nezávisle a nehodí se proto k sériovému přenosu dat. Vhodnější by bylo zařadit posuvný registr jako cache za datovou a řídící sběrnici a přenášená data mezi nimi multiplexovat, případně řídící sběrnici ponechat paralelní (pouhé 3 vodiče navíc). Kód by pak mohl být jednodušší a bylo by možné využít 8bitový režim a čtecí instrukce displeje.
9 Příloha 1: třída HD44780 class HD44780 : public Print { protected: bool dd_selected; HD44780() : dd_selected(true) { void en_pulse(bool rs, bool rw) { delaymicroseconds(1); control(rs, rw, true); delaymicroseconds(1); control(rs, rw, false); void instruction(byte com, bool rs=false, bool rw=false) { command(com, rs, rw); delaymicroseconds(37); virtual void control(bool rs, bool rw, bool en)=0; virtual void command(byte com, bool rs, bool rw)=0; size_t write(uint8_t chr) { if(!dd_selected) return 0; instruction(chr, true); return 1; // right = moves cursor position after writing char: true=right, false=left // roll = rolls display after writing char to the "right" void entry_mode_set(bool right=true, bool roll=false) { byte data = (1<<2) (right<<1) roll; // d = turn the display on // c = show cursor on display // b = blink cursor on display (409.6 ms) void display_cursor_blink(bool d=true, bool c=false, bool b=false) { byte data = (1<<3) (d<<2) (c<<1) b; // right = moves cursor position: true=right, false=left // roll = rolls display to the "right" void cursor_display_shift(bool right=true, bool roll=false) { byte data = (1<<4) (roll<<3) (right<<2); // bits8 = 8bit mode // lines = multiline display // bigfont = 5x10 instead of 5x8 (if supported) void function_set(bool bits8=true, bool lines=true, bool bigfont=false) { byte data = (1<<5) (bits8<<4) (lines<<3) (bigfont<<2);
10 void set_cgram_addr(byte addr) { byte data = (1<<6) (addr & 0b111111); dd_selected = false; void set_ddram_addr(byte addr) { byte data = (1<<7) (addr & 0b ); dd_selected = true; void write_ram_value(byte data) { instruction(data, true); public: void clear() { command(1<<0); delaymicroseconds(1520); // long executing instruction void home() { command(1<<1); delaymicroseconds(1520); // long executing instruction ;
11 Příloha 2: třída LCDI2C class LCDI2C : public HD44780 { void set_4bit() { writei2c(0x00); delay(50); data = 0x03; en_pulse(false, false); delaymicroseconds(5000); data = 0x03; en_pulse(false, false); delaymicroseconds(150); data = 0x03; en_pulse(false, false); delaymicroseconds(37); data = 0x02; en_pulse(false, false); delaymicroseconds(37); protected: byte rows, cols; byte addr, data; void command(byte com, bool rs=false, bool rw=false) { byte hibyte = com >> 4; byte lobyte = com & 0b1111; data = hibyte; en_pulse(rs, rw); data = lobyte; en_pulse(rs, rw); void control(bool rs, bool rw, bool en) { rw = rw; // unused writei2c(data, rs, en); void writei2c(byte nibble, bool rs=false, bool en=false) { data = nibble; if(!addr) return; if(en) Serial.println(nibble,BIN); byte packet = nibble<<4; packet = (rs<<0) (en<<2) (light<<3); Wire.beginTransmission(addr); Wire.write(packet); Wire.endTransmission(); public: bool light; LCDI2C(byte addr=0, bool light=true) : addr(addr), light(light) { Wire.begin(); if(addr>0) return; // autodetect for(int i=0; i<128; ++i) { Wire.beginTransmission(i); if(wire.endtransmission()==0) { this->addr = i; break; void begin(int cols, int rows) { this->rows = rows; this->cols = cols; set_4bit(); function_set(false, rows>0, false); clear(); display_cursor_blink(true, false, false); entry_mode_set(true, false);
12 void gotoxy(int X, int Y) { if(x<0) X = cols+x; if(y<0) Y = rows+y; byte pos = (byte)(y*cols+rows); set_ddram_addr(pos); ;
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
Znakové. Zapojení vývodů. standard. vývod. popiss napájení GND G napájení +5V =data) Data Bus 0
Znakové LCD displeje - http://doveda.byl.cz/lcd/ Displeje se u nás objevili koncem 80 let. Tehdy se považovali za zázrak techniky. Dnes jsou LCD zobrazovací displeje všude okolo nás. Setkáváme se s nimii
Modul LCD displeje se čtyřmi tlačítky. Milan Horkel
LCDL4P0A Modul LCD displeje se čtyřmi tlačítky Milan Horkel Modul LCDL4P obsahuje dvouřádkový LCD displej s obvyklým Hitachi řadičem a čtveřici tlačítek. Používá se jako univerzální uživatelský interfejs
Ovládání LCD. Ing. Josef Grosman. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií
Ing. Josef Grosman TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/07.0247, který je spolufinancován Evropským
Č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á
9. Rozšiřující desky Evb_Display a Evb_keyboard
9. Rozšiřující desky Evb_Display a Evb_keyboard Čas ke studiu: 2-3 hodiny Cíl Po prostudování tohoto odstavce budete něco vědět o Výklad Zobrazovacích displejích Principu činnosti a programování čtyřřádkového
PRT3 tiskový modulu manuál pro EVO ústředny
PRT3 tiskový modulu manuál pro EVO ústředny Popření odpovědnosti: Firma neodpovídá za jakékoliv škody týkající se majetku či osob, vzniklé v souvislosti se správným nebo nesprávným použitím produktu. I
Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit
Jednoduché stránkování Operační systémy Přednáška 8: Správa paměti II Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné velikosti
Struktura a architektura počítačů (BI-SAP) 10
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii
Desky Evb Display a Evb Keyboard
Vysoká škola chemicko-technologická v Praze Fakulta chemicko-inženýrská Ústav počítačové a řídicí techniky Aplikace mikroprocesorů Desky Evb Display a Evb Keyboard Návod k použití Lukáš Lahoda 2010 Obsah
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í
Praktické úlohy- 2.oblast zaměření
Praktické úlohy- 2.oblast zaměření Realizace praktických úloh zaměřených na dovednosti v oblastech: Měření specializovanými přístroji, jejich obsluha a parametrizace; Diagnostika a specifikace závad, měření
Paměti Flash. Paměti Flash. Základní charakteristiky
Paměti Flash K.D. - přednášky 1 Základní charakteristiky (Flash EEPROM): Přepis dat bez mazání: ne. Mazání: po blocích nebo celý čip. Zápis: po slovech nebo po blocích. Typická životnost: 100 000 1 000
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
IB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
Řízení IO přenosů DMA řadičem
Řízení IO přenosů DMA řadičem Doplňující text pro POT K. D. 2001 DMA řadič Při přímém řízení IO operací procesorem i při použití přerušovacího systému je rychlost přenosu dat mezi IO řadičem a pamětí limitována
Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012
Přednáška Správa paměti II. 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
Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.
Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící
Dělení pamětí Volatilní paměti Nevolatilní paměti. Miroslav Flídr Počítačové systémy LS /11- Západočeská univerzita v Plzni
ělení pamětí Volatilní paměti Nevolatilní paměti Počítačové systémy Vnitřní paměti Miroslav Flídr Počítačové systémy LS 2006-1/11- Západočeská univerzita v Plzni ělení pamětí Volatilní paměti Nevolatilní
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody
Pokročilé programování v jazyce C pro chemiky (C3220) Operátory new a delete, virtuální metody Dynamická alokace paměti Jazyky C a C++ poskytují programu možnost vyžádat si část volné operační paměti pro
Pro zprovoznění komunikace našeho Sigfox modemu se sítí je potřeba udělat následující kroky. Jako první si otevřeme webové stránky
LPWAN Sigfox modem je komunikační modul, který umožňuje připojit Arduino k IOT síti Sigfox. Tento modem obsahuje řídící obvod WiSOL SFM10R1, který pracuje na frekvenci 868 MHz a komunikuje s ostatními
PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec
Technická zpráva PicoBlaze lekce 4: Aplikace pro výuku asembleru procesoru PicoBlaze Jiří Svozil, Jaroslav Stejskal, Leoš Kafka, Jiří Kadlec svozil@utia.cas.cz, kafkal@utia.cas.cz Obsah 1. Úvod... 2 2.
Typy a použití klopných obvodů
Typy a použití klopných obvodů Klopné obvody s hodinovým vstupem mění svůj stav, pokud hodinový vstup má hodnotu =. Přidáním invertoru před hodinový vstup je lze upravit tak, že budou měnit svůj stav tehdy,
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ů.
Uživatelská příručka
Rele Control Elektronické ovládání výstupů Uživatelská příručka ver. 1.36 (09/02/2006) revize 07.10.2006 HW PROGRESS Milan Jaroš OBSAH: 1 Seznámení... 3 1.1 Určení... 3 1.2 Základní údaje... 3 1.3 Složení
SEKVENČNÍ LOGICKÉ OBVODY
Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních
GSM/GPRS modul pro Arduino
1500635983 VÝROBNÍ ČÍSLO GSM/GPRS modul pro Arduino 1. POPIS Díky tomuto produktu lze naprogramovat telefon, který bude schopný volat a přijímat hovory, psát SMS zprávy a připojit se k internetové síti
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.
Konstruktory a destruktory
Konstruktory a destruktory Nedostatek atributy po vytvoření objektu nejsou automaticky inicializovány hodnota atributů je náhodná vytvoření metody pro inicializaci, kterou musí programátor explicitně zavolat,
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
Modul LCD displeje se čtyřmi tlačítky a piezoelementem. Milan Horkem, Jakub Kákona
Modul LCD displeje se čtyřmi tlačítky a piezoelementem Milan Horkem, Jakub Kákona Modul LCDL4P obsahuje dvouřádkový LCD displej s obvyklým Hitachi řadičem a čtveřici tlačítek. Dále je vybaven piezoelementem
PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000. 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1
PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/2000 1 PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/2000 13 stran 1 PESlib Popis knihoven PASCAL a C 03.2000 2. verze dokumentu Zmìny a doplòky proti 1.
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
MIDAM MW 240 modbus 2 x DI, 2 x DO
List č.: 1/8 MIDAM MW 240 modbus 2 x DI, 2 x DO - najednou lze vyčíst maximálně 20 wordů (tj. 40byte) název adresa typ popis poznámka modul LSB 1 LSB R identifikace modulu spodní byte modul má identifikaci
PB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
FASTPort. Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům. aneb. Jak připojit koprocesor
FASTPort Nová sběrnice pro připojení inteligentních karet* k osmibitovým počítačům aneb Jak připojit koprocesor *) inteligentní karta = karta vybavená vlastním procesorem J. Němeček 12. 10. 2013 úvodní
PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT. Příručka uživatele. Střešovická 49, Praha 6, s o f c o s o f c o n.
PCKIT LPT MODUL SBĚRNICE IOBUS PRO PC LPT Příručka uživatele Střešovická 49, 162 00 Praha 6, e-mail: s o f c o n @ s o f c o n. c z tel./fax : (02) 20 61 03 48 / (02) 20 18 04 54, http :// w w w. s o f
Operační paměti počítačů PC
Operační paměti počítačů PC Dynamické paměti RAM operační č paměť je realizována čipy dynamických pamětí RAM DRAM informace uchovávána jako náboj na kondenzátoru nutnost náboj pravidelně obnovovat (refresh)
Adresovatelné RGB LED
České vysoké učení technické v Praze Fakulta elektrotechnická Katedra měření Dokumentace Adresovatelné RGB LED Zpracoval Ondřej Hruška 10. dubna 2017 1 Základní informace Adresovatelné (číslicově řízené)
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií Autor: Tomáš Válek, xvalek02@stud.fit.vutbr.cz Login: xvalek02 Datum: 21.listopadu 2012 Obsah 1 Úvod do rozhraní I 2 C (IIC) 1 2 Popis funkčnosti
Systém řízení sběrnice
Systém řízení sběrnice Sběrnice je komunikační cesta, která spojuje dvě či více zařízení. V určitý okamžik je možné aby pouze jedno z připojených zařízení vložilo na sběrnici data. Vložená data pak mohou
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
Uživatelský manuál. KNXgal
gal Uživatelský manuál verze 1.2 řízení zabezpečovacích ústředen Galaxy ze sběrnice napájeno ze sběrnice indikace komunikace na a s ústřednou Galaxy montáž na DIN lištu (1 modul) nastavitelné adresy na
Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX
KNXgal Uživatelský manuál verze 1.2 řízení zabezpečovacích ústředen Galaxy ze sběrnice KNX napájeno ze sběrnice KNX indikace komunikace na KNX a s ústřednou Galaxy montáž na DIN lištu (1 modul) nastavitelné
Projekt Obrázek strana 135
Projekt Obrázek strana 135 14. Projekt Obrázek 14.1. Základní popis, zadání úkolu Pracujeme na projektu Obrázek, který je ke stažení na http://java.vse.cz/. Po otevření v BlueJ vytvoříme instanci třídy
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.
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á
SDRAM (synchronní DRAM) Cíl přednášky:
SDRAM (synchronní DRAM) Cíl přednášky: Shrnout předcházející techniky řízení pamětí. Prezentovat techniku SDRAM, postihnout její výrazné rysy a odlišnosti od předcházejících typů. Shrnout získané informace.
Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT
Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556
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í:
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
SEMESTRÁLNÍ PROJEKT Y38PRO
SEMESTRÁLNÍ PROJEKT Y38PRO Závěrečná zpráva Jiří Pomije Cíl projektu Propojení regulátoru s PC a vytvoření knihovny funkcí pro práci s regulátorem TLK43. Regulátor TLK43 je mikroprocesorový regulátor s
NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL
NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL Principy komunikace zařízení na MP-Bus s automatem MICROPEL, popis prostředků pro zákaznický program edice 02.2014 verze 1.0 MPC400
Využití OOP v praxi -- Knihovna PHP -- Interval.cz
Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování
Přerušení na PC. Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky. Personální počítače, technická péče cvičení
Fakulta informačních technologií VUT v Brně Ústav informatiky a výpočetní techniky Personální počítače, technická péče cvičení 5 Přerušení na PC Zadání Seznamte se s konstrukcí cvičné zásuvné adaptérové
PŘEVOD DAT Z PARALELNÍCH NA SÉRIOVÁ. 1. Seznamte se s deskou A/D P/S (paralelně/sériového) převodníku stavebnicového systému OPTEL.
PŘEVOD DAT Z PARALELNÍCH NA SÉRIOVÁ 103-4R 1. Seznamte se s deskou A/D P/S (paralelně/sériového) převodníku stavebnicového systému OPTEL. 2. Měřte jednotlivé kroky podle návodu. - propojení desek stavebnice
Operační systémy. Přednáška 8: Správa paměti II
Operační systémy Přednáška 8: Správa paměti II 1 Jednoduché stránkování Hlavní paměť rozdělená na malé úseky stejné velikosti (např. 4kB) nazývané rámce (frames). Program rozdělen na malé úseky stejné
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
Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
OLED alfanumerický displej WINSTAR
OLE alfanumerický displej WINSTAR Popis funkce Registry WS poskytuje dva typy 8bitových registrů, jmenovitě Itruction Register (IR) a ata Register (R). Registr vyberete pomocí RS pinu. Když je RS pin nastaven
Dynamicky vázané metody. Pozdní vazba, virtuální metody
Dynamicky vázané metody Pozdní vazba, virtuální metody Motivace... class TBod protected: float x,y; public: int vrat_pocet_bodu() return 1; ; od třídy TBod odvodíme: class TUsecka: public TBod protected:
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
Nejčastěji pokládané dotazy
Nejčastěji pokládané dotazy www.snailinstruments.com www.hobbyrobot.cz Co je kontrolér PICAXE? Kontrolér PICAXE je mikroprocesor z rodiny PIC, vyráběné firmou Microchip, který byl při výrobě naprogramován
Čtečka otisků prstů 1. POPIS 2. SPECIFIKACE. ECLIPSERA s.r.o. Distributor pro ČR. VÝROBNÍ ČÍSLO
1496818942 VÝROBNÍ ČÍSLO Čtečka otisků prstů 1. POPIS Jedná se o modul, který lze po menších úpravách připojit k Arduinu (viz. kapitola Zapojení). Čtečka otisků prstů disponuje vlastní pamětí, takže si
02. HODINA. 2.1 Typy souborů a objektů. 2.2 Ovládací prvky Label a TextBox
02. HODINA Obsah: 1. Typy souborů a objektů 2. Ovládací prvky Label a TextBox 3. Základní příkazy a vlastnosti ovládacích prvků 4. Práce s objekty (ovládací prvky a jejich vlastnosti) 2.1 Typy souborů
Paměťový podsystém počítače
Paměťový podsystém počítače typy pamětových systémů počítače virtuální paměť stránkování segmentace rychlá vyrovnávací paměť 30.1.2013 O. Novák: CIE6 1 Organizace paměťového systému počítače Paměťová hierarchie...
15. Projekt Kalkulačka
Projekt Kalkulačka strana 143 15. Projekt Kalkulačka 15.1. Základní popis, zadání úkolu Pracujeme na projektu Kalkulačka, který je ke stažení na java.vse.cz. Po otevření v BlueJ vytvoříme instanci třídy
Maticové LCD moduly. Ing. Richard Lažanský
Maticové LCD moduly Ing. Richard Lažanský 1 Úvod LCD maticové displeje jsou všude okolo nás. Setkáváme se s nimi při koupi jízdenky na autobus nebo vlak z automatu, či když parkujeme na placeném parkovišti.
2. lekce Algoritmus, cyklus Miroslav Jílek
2. lekce Algoritmus, cyklus Miroslav Jílek 1/36 Algoritmus 2/36 Algoritmus je konečná posloupnost operací, která dává řešení skupiny problémů 3/36 Algoritmus je konečná posloupnost operací, která dává
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním
Vrstvy periferních rozhraní
Vrstvy periferních rozhraní Úvod Periferní zařízení jsou k počítačům připojována přes rozhraní (interface). Abstraktní model periferního rozhraní sestává z vrstev, jejich hranice nejsou však vždy jasné
Návrh konstrukce odchovny 2. dil
1 Portál pre odborné publikovanie ISSN 1338-0087 Návrh konstrukce odchovny 2. dil Pikner Michal Elektrotechnika 19.01.2011 V minulem dile jsme si popsali návrh konstrukce odchovny. senzamili jsme se s
Maticová klávesnice. Projekt do předmětu Subsystémy PC. Brno, 2002-2003. Tomáš Kreuzwieser, Ondřej Kožín
Maticová klávesnice Projekt do předmětu Subsystémy PC Brno, 2002-2003 Tomáš Kreuzwieser, Ondřej Kožín Obsah Úvod............................................ 1 1. Hardware........................................
Základy programování. Úloha: Eratosthenovo síto. Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP
Základy programování Úloha: Eratosthenovo síto Autor: Josef Hrabal Číslo: HRA0031 Datum: 28.11.2009 Předmět: ZAP Obsah 1 Zadání úkolu: 3 1.1 Zadání:............................... 3 1.2 Neformální zápis:.........................
Arduino Data Logger Shield
1420987444 VÝROBNÍ ČÍSLO Arduino Data Logger Shield 1. POPIS Arduino Data Logger Shield umožní vývojovým kitům Arduino (UNO, Duemilanove, Diecimila, ADK/Mega R3 a vyšší) záznam dat na externí SD kartu
Programování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného 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 Dokončení spojového
Semestrální práce z předmětu Speciální číslicové systémy X31SCS
Semestrální práce z předmětu Speciální číslicové systémy X31SCS Katedra obvodů DSP16411 ZPRACOVAL: Roman Holubec Školní rok: 2006/2007 Úvod DSP16411 patří do rodiny DSP16411 rozšiřuje DSP16410 o vyšší
Dekódování adres a návrh paměťového systému
Dekódování adres a návrh paměťového systému K.D. 2004 Tento text je určen k doplnění přednášek z předmětu POT. Je zaměřen jen na některé body probírané na přednáškách bez snahy o úplné vysvětlení celé
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
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ě
VY_32_INOVACE_08_2_04_PR
Ing. Petr Stránský VY_32_INOVACE_08_2_04_PR Příkazy vstupu - definice Výstupním zařízením může být obrazovka, tiskárna nebo soubor. Jednotlivé údaje se zapisují pomocí příkazu WRITE nebo WRITELN. Příkaz
Robotika Kybernetika, automatizace a měření FEKT VUT v Brně
Robotika Kybernetika, automatizace a měření FEKT VUT v Brně Jméno Michal Paták Ročník 1. Obor UAMT ID 106241 Skupina Název Vizualizace údajů z nabíječe baterií Zadání Vytvořte aplikaci, která bude přehledným
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í Rekapitulace periferii GPIO TIMER UART Analogově-digitální převod ADC periferie PIC18 Nastavení
Multiplexory sériových rozhraní na optický kabel ELO E246, ELO E247, ELO E248, ELO E249, ELO E24A, ELO E24B. Uživatelský manuál
Multiplexory sériových rozhraní na optický kabel ELO E246, ELO E247, ELO E248, ELO E249, ELO E24A, ELO E24B Uživatelský manuál 1.0 Úvod...3 1.1 Použití multiplexoru...3 2.0 Principy činnosti...3 3.0 Instalace...3
PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory
PB161 Programování v C++ Proudy pro standardní zařízení Souborové proudy Paměťové proudy Manipulátory Výhody objektového řešení Nástroje pro IO operace jsou v C++ součástí knihoven Hierarchie objektových
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
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ů
14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
Vestavné systémy BI-VES Přednáška 5
Vestavné systémy BI-VES Přednáška 5 Ing. Miroslav Skrbek, Ph.D. Katedra počítačových systémů Fakulta informačních technologií České vysoké učení technické v Praze Miroslav Skrbek 2010,2011 ZS2010/11 Evropský
SML 33 / SMM 33 / SMN 33
, s.r.o. Dr. M. Horákové 559, 460 06 Liberec 7, Czech Republic tel. +420 485 130 314, fax +420 482 736 896 email : kmb@kmb.cz, internet : www.kmb.cz SML 33 / SMM 33 / SMN 33 Popis komunikačních protokolů
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ů
MI Video rozhraní pro vozidla Renault. Přepínání mezi jednotlivými vstupy a ovládání přehrávání
MI-1250 Video rozhraní pro vozidla Renault Tento adaptér (rozhraní) umožňuje zobrazit RGB signál o vysokém rozlišení, AV signál z externího zdroje (například DVD přehrávače) a video signál z kamery při
AVR ovladač pro obvod STV5730A, obvod pro vkládání textu do videa
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ AVR ovladač pro obvod STV5730A, obvod pro vkládání textu do videa Autoři projektu: Ondřej Kožín Tomáš Kreuzwieser Marek
Zobrazovací jednotky a monitory
Zobrazovací jednotky a monitory Zobrazovací jednotka - karta, která se zasunuje do jednoho z konektorů na sběrnici uvnitř počítače. Dva režimy činnosti: Textový režim - zobrazuje znaky uvedené v tabulce
Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje
Paměti Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje Paměti počítače lze rozdělit do tří základních skupin: registry paměťová místa na čipu procesoru jsou používány
Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard
Základní deska (1) Označována také jako mainboard, motherboard Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje: procesor (mikroprocesor) patici pro numerický koprocesor (resp. osazený
FREESCALE TECHNOLOGY APPLICATION
FREESCALE TECHNOLOGY APPLICATION 2013-2014 3D LED Cube Jméno: Libor Odstrčil Ročník: 4. Obor: IT Univerzita Tomáše Bati ve Zlíně, Fakulta aplikované informatiky 2 1 Konstrukce Obr. 1.: Výsledná LED kostka.
Periferní operace využívající přímý přístup do paměti
Periferní operace využívající přímý přístup do paměti Základní pojmy Programová obsluha periferní operace řízení této činnosti procesorem. Periferní operace využívající přerušení řízení řadičem přerušení,
<surface name="pozadi" file="obrazky/pozadi/pozadi.png"/> ****************************************************************************
zdroje/zdroje.xml
PB161 Programování v jazyce C++ Přednáška 9
PB161 Programování v jazyce C++ Přednáška 9 Právo friend Přetěžování operátorů Nikola Beneš 16. listopadu 2015 PB161 přednáška 9: friend, přetěžování operátorů 16. listopadu 2015 1 / 30 Reklama PB173 Tematicky