diff --git a/articles/2011/avr-led-panel-priklad-casovac.md b/articles/2011/avr-led-panel-priklad-casovac.md new file mode 100644 index 0000000000000000000000000000000000000000..63448a504d09fc870acab226cc76c6b926fcc1c4 --- /dev/null +++ b/articles/2011/avr-led-panel-priklad-casovac.md @@ -0,0 +1,75 @@ ++++ + +title = "AVR - LED panel - PĹ™Ăklad - ÄŚasovaÄŤ" +perex_e = " + +KompatibilnĂ zapojenĂ: LED panel s ATmega8 + +Ke staĹľenĂ: LED_Casovac.c == LED_Casovac.pdf == LED_Casovac.htm +. +. +" +tags = ["ÄŚlánek"] ++++ + + + +KompatibilnĂ zapojenĂ: LED panel s ATmega8 + +Ke staĹľenĂ: LED_Casovac.c == LED_Casovac.pdf == LED_Casovac.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;amp;amp;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;amp;amp;amp;gt;</style> + +``` +/* +Popis: +VybranĂ© ledky budou blikat cca 2x za vteĹ™inu + +Ledky kterĂ© majĂ takto blikat jsou vybrány konstantou "LED" a ÄŤas svĂcenĂ je dán +dÄ›liÄŤkou ÄŤasovaÄŤe a šĂĹ™kou jeho registru. +V tomto pĹ™Ăkladu bude pouĹľit ÄŤĂtaÄŤ/ÄŤasovaÄŤ "0" kterĂ˝ má šĂĹ™ku registru 8 bitĹŻ +to znamená Ĺľe poÄŤĂtá do 255. +ÄŚĂtaÄŤ bude mĂt zapnutou dÄ›liÄŤku hodinovĂ©ho signálu s dÄ›litelem 1024. +VĂ˝sledná frekvence tedy bude 1 000 000/1024/255 = 3,8 Hz - pĹ™i kaĹľdĂ©m pĹ™eteÄŤenĂ +budeme negovat stav ledek, takĹľe se rozsvĂtĂ a zhasnou pĹ™ibliĹľnÄ› 2x za sekundu. +PĹ™eteÄŤenĂ ÄŤĂtaÄŤe je signalizováno nultĂ˝m bitem registru "TIFR" + +*/ + +#include <avr/io.h> //VloĹľ knihovnu vstupĹŻ a vĂ˝stupĹŻ (PORT, DDR, PIN) + +#define LED 0xff; //Ledky, kterĂ© se majĂ blikat (všechny) + +/**********************HLAVNĂŤ FUNKCE*************************/ + +int main (void) //hlavnĂ funkce +{ + +DDRB = 0xff; //(0xff = 0b11111111) -> Piny 0 - 7 portu "B" budou vĂ˝stupnĂ +PORTB = LED; //rozsviĹĄ vybranĂ© ledky + +TCCR0 = 5; //spusĹĄ ÄŤasovaÄŤ "0" s pĹ™eddÄ›liÄŤkou 1024 + +while (1) // NekoneÄŤná smyÄŤka (dokud 1 = pořád) + { + if((TIFR & 0b00000001)==0)//pokud je nultĂ˝ bit "0" - ještÄ› nepĹ™etekl + { + ; //nedÄ›lej nic (prázdnĂ˝ pĹ™Ăkaz) + } + else //pokud nenĂ nultĂ˝ bit "0" - ÄŤasovaÄŤ ÄŤasovaÄŤ uĹľ pĹ™etekl + { + PORTB = ~PORTB; //vyměŠna portu "B" všechny nuly za jedniÄŤky a naopak + TIFR=TIFR | 0b00000001; //Nuluj pĹ™Ăznak pĹ™eteÄŤenĂ v registru TIFR + //(zapsánĂm "1" -ponÄ›kud nelogickĂ©, ale je to tak) + } + + } //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