Gustav |
Nové stránky BETA
Hlavní nabídka
Technika & Bastlení
Média
Reklama Google

PDF Tisk Email
Koutek AVR -
Napsal uĹživatel radioklub.cz   
Středa, 22 Červen 2011 20:57

Kompatibilní zapojení: LED panel s ATmega8

.
.

Untitled
/*
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)	


 
Poslední aktualizace
 5 January 2016, 07:01 
Webkamera
Webkamera na Blatenském vrchu
Change language
Sociální sít?
Náhodné foto
Podporují nás