Skip to content
Snippets Groups Projects
Commit e5263cdd authored by Michal Rybka's avatar Michal Rybka
Browse files

Přidán článek AVR - LED panel - Příklad - Tlačítko

(Autoexportován z Joomly)
parent feeef7fb
No related branches found
No related tags found
No related merge requests found
+++
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;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;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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment