diff --git a/articles/2011/avr-led-panel-priklad-tlacitko.md b/articles/2011/avr-led-panel-priklad-tlacitko.md new file mode 100644 index 0000000000000000000000000000000000000000..be8eb48773a5f7426baf0d4262a8cf8a5151e5b7 --- /dev/null +++ b/articles/2011/avr-led-panel-priklad-tlacitko.md @@ -0,0 +1,84 @@ ++++ + +title = "AVR - LED panel - PĹ™Ăklad - TlaÄŤĂtko" +perex_e = " + +KompatibilnĂ zapojenĂ: LED panel s ATmega8 + +Ke staĹľenĂ: LED_Tlacitko.c == LED_Tlacitko.pdf == LED_Tlacitko.htm +. +. +" +tags = ["ÄŚlánek"] ++++ + + + +KompatibilnĂ zapojenĂ: LED panel s ATmega8 + +Ke staĹľenĂ: LED_Tlacitko.c == LED_Tlacitko.pdf == LED_Tlacitko.htm +. +. + +* * * + +<title>Untitled</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="generator" content="SynEdit HTML exporter"> <style type="text/css">&amp;lt;!-- body { color: #000000; background-color: #FFFFFF; } .cpp1-assembler { } .cpp1-brackets { } .cpp1-comment { color: #008000; font-style: italic; } .cpp1-float { color: #000080; } .cpp1-hexadecimal { color: #000080; } .cpp1-character { } .cpp1-identifier { } .cpp1-illegalchar { } .cpp1-number { color: #000080; } .cpp1-octal { color: #0000FF; } .cpp1-preprocessor { } .cpp1-reservedword { font-weight: bold; } .cpp1-space { color: #008080; } .cpp1-string { color: #800000; } .cpp1-symbol { } --&amp;gt;</style> + +``` +/* +Popis: +PĹ™i stisku tlaÄŤĂtka se rozsvĂtĂ vybranĂ© ledky. Po uvolnÄ›nĂ tohoto tlaÄŤĂtka ledky +opÄ›t zhasnou. + +Ledky kterĂ© se majĂ rozsvÄ›cet jsou vybrány konstantou "LED". + +TlaÄŤĂtka jsou pĹ™ipojena k portu "D" K tlaÄŤĂtkĹŻm jsou pĹ™ipojeny "pull up" rezistory +na 5 V, takĹľe pokud nenĂ stisknutĂ© tlaÄŤĂtko, je na danĂ©m pinu 5 V (log. 1). +PĹ™i stisku tlaÄŤĂtka se danĂ˝ pin uzemnĂ a je na nÄ›m tedy 0 V (log 0). +TlaÄŤĂtka jsou pĹ™ipojena k pinĹŻm PD2 a PD3. + +Stavy na portu "D" jsou tedy následujĂcĂ: +0b00001100 - žádnĂ© tlaÄŤĂtko nenĂ stisknutĂ© +0b00000100 - stisknutĂ© tlaÄŤĂtko "1" +0b00001000 - stisknutĂ© tlaÄŤĂtko "2" +0b00000000 - stisknutá obÄ› tlaÄŤĂtka +*/ + +#include <avr/io.h> //VloĹľ knihovnu vstupĹŻ a vĂ˝stupĹŻ (PORT, DDR, PIN) + +#define LED 0b10101010; //Ledky, kterĂ© se majĂ rozsvĂtit pĹ™i stisku tlaÄŤĂtka + //(kaĹľdá druhá) + +/**********************HLAVNĂŤ FUNKCE*************************/ + +int main (void) //hlavnĂ funkce +{ +unsigned char prom; //nadefinujeme si promÄ›nnou typu unsigned char se jmĂ©nem "prom" + //to znamená, Ĺľe v pamÄ›ti RAM vznikne mĂsto (8 bitĹŻ) kam mĹŻĹľeme + //ukládat data +DDRB = 0xff; //(0xff = 0b11111111) -> Piny 0 - 7 portu "B" budou vĂ˝stupnĂ +DDRD = 0; //Port "D" bude vstupnĂ (tlaÄŤĂtko je pĹ™ipojeno k portu "D") + +while (1) // NekoneÄŤná smyÄŤka (dokud 1 = pořád) + { + prom=PIND; //do promÄ›nnĂ© "prom" uloĹľĂme stav na portu "D" + //(tam kde je 5 V bude "1" a kde je 0 V bude "0") + prom=prom&0b00000100; //vymaskujeme pouze tlaÄŤĂtko "1" + //(pokud bylo na PD2 5 V bude vĂ˝sledek 0b00000100 + //jinak bude vĂ˝sledek "0" + + if(prom==0) //pokud se promÄ›nná "prom" rovná nule - tlaÄŤĂtko je stisknutĂ© + { + PORTB = LED; //RozsviĹĄ vybranĂ© ledky + } + else //jinak (pokud se promÄ›nná "prom" nerovná nule - tlaÄŤĂtko nenĂ stisknutĂ© + { + PORTB = 0; //zhasni všechny ledky + } + + } //Konec cyklu "while (1)" - program skoÄŤĂ zpÄ›t na jeho začátek + +}//konec funkce main() - sem se program nikdy nedostane + //(závorka tu však musĂ bĂ˝t jinak by pĹ™ekladaÄŤ nahlásil chybu) + +``` \ No newline at end of file