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

AVR – blikáme IIAVR – blikáme II

 

AVR – blikáme II

Google       Google       14. 7. 2006       30 685×

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ší…

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 Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Reklama autora

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý