AVR – blikáme II
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

AVR – blikáme IIAVR – blikáme II

 

AVR – blikáme II

Google       Google       14. 7. 2006       26 173×

Dnes budeme pokračovat vysvětlením příkladu z minulého dílu. Uvedeme si také možnosti, jak program dostat do procesoru. Uvidíte, že k cíli vede mnoho cest a že ne vždy nejdražší rovná se nejlepší…

Reklama
Reklama

Vysvětlení programu


	.NOLIST	
	.INCLUDE "m16def.inc"	
	.LIST					 

Tak tuto pasáž jsme si již vysvětlovali. Vloží do programu soubor m16def.inc.

	 
	.CSEG	        ;kódový segment	
	.DEF REG=R16	;pracovní regsitr
	.EQU DDR=DDRC	;řízení směru
	.EQU PORT=PORTC	;port

Tato část je Vám také určitě jasná, nejprve řekneme direktivou .CSEG, že následující část dat (programu) se bude nacházet v programové paměti. Dále si pojmenujeme registr R16 jako REG, registr DDRC (určení směru dat portu C) jako DDR a PORTC (data portu) jako PORT.


	LDI REG,$FF	
	OUT DDR,REG	;aktivuj výstupy

Zde nejprve naplníme registr R16 (REG) samými jedničkami a poté registr překopírujeme do registru DDRC (DDR). Tím nastavíme všechny piny portu C jako výstupní.


	LDI REG,LOW(RAMEND)
	OUT SPL,REG	;nastav SP na konec SRAM
	LDI REG,HIGH(RAMEND)
	OUT SPH,REG

Tak tohle už znáte. Takto se nastavuje zásobník (na konec RAM).


       CLC	        ;0 do C

Smaže CARRY, to nám zajistí 0 (rozsvícení LED) na tom výstupu, kam se bit z carry přesune.


       LDI REG,$FF	;FF do REG

Nastaví všechny bity na portu C. Tím zhasne všechny LED.


SMYCKA:	OUT PORT,REG	;pošli
	RCALL CEKEJ	;počkej 0,5 s
	ROL REG  	;posuň
	RJMP SMYCKA	;a znovu

Tato smyčka stále běhá dokola, ale vždy až po uplynutí 0,5 s (díky zpoždění volaném „CEKEJ“). Po každém čekání se hodnota v registru orotuje doleva. Nejvyšší platný bit se tedy dostane do CARRY a CARRY se přesune na nejnižší platný bit. Poprvé tedy 0. Na začátku smyčky se hodnota z registru přesune na registr portu, tedy změní se jeho stav (a stav LED).


CEKEJ:	LDI R17,40	
	LDI R18,0	
	LDI R19,0	
CEKEJA:	DEC R19	
	BRNE CEKEJA	;smyčka 1
	DEC R18	
	BRNE CEKEJA	;smyčka 2
	DEC R17	
	BRNE CEKEJA	;smyčka 3
	RET	        ;návrat

Zpožďování jsme si již vysvětlovali. Ale pro jistotu ještě jednou. Nejprve se cyklicky snižuje o jednu registr R19, až znovu dosáhne nuly. Pak se sníží o jednu registr R18 a znovu se v cyklu snižuje R19. Podobně je tomu i s registrem R17. Tedy: Zpoždění 255 × 255 × 40

Jak to dostat do procesoru

Předně musím upozornit, že programátorů pro procesory ATMEL AVR je opravdu mnoho. Jsou programátory:

Paralení
Těmi mi se zabývat nebudeme
JTAG
Slouží také pro ladění, povíme si o nich něco později
ISP
Ten budeme používat

Já osobně využívám ISP programátor připojený na paralelní port počítače postavený podle STK200:

Možností je i zakoupení programátoru firmy Atmel například v GM. Tato možnost Vám přinese profesionálně vyrobený programátor, ale také relativně vysoké náklady. Velkou podporu nabízí také servery www.hw.cz a www.mcu.cz. Druhý jmenovaný obsahuje také fórum, kam se můžete obrátit, když Vám něco nechce pracovat tak, jak má.

Také server www.robotika.cz přináši zajímavé informace spolu s návodem na stavbu možná nejjednoduššího programátoru, co jsem viděl. Spolu s tím uvádí příklad na jednoduché aplikace procesoru ATMEGA8 (programy jsou psány v C a kompilovány v GCC). Dále jsou u článků uvedeny další zdroje, ze kterých můžete čerpat.

Software

Držím se zásady „Co je free, je pro mě“. A podle toho vybírám i software pro programování jednočipů. Musím říct, že v této oblasti asi nemá konkurenci PonyProg. Umí programovat nejen procesory AVR, ale také spoustu jiných obvodů a myslím, že stavbou programátoru pro tento prográmek rozhodně neprohloupíte.

Konfigurační bity

Nezapomeňte, že je před programováním třeba nastavit konfigurační bity (oscilátor aj.) Konkrétní nastavení závisí na konkrétním užití procesoru. Praktickou ukázku si předvedeme příště. Jestliže byste však chtěli minule uvedený program vyzkoušet naživo, v datasheetu procesoru najdete všechny potřebné informace v přehledných tabulkách.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Ondřej KarasAutor se věnuje vývoji řídících a komunikačních systémů a tvorbě podpůrných aplikací.
Web    

Nové články

Obrázek ke článku Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

Reklama autora

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý