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 039×

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

Reklama
Reklama
Obrázek ke článku Mobilní datový provoz vzroste sedmkrát.

Mobilní datový provoz vzroste sedmkrát.

Už v roce 2021 bude mít více obyvatel zeměkoule mobilní telefon (5,5 miliardy) než bankovní účet (5,4 miliardy), tekoucí vodu (5,3 miliardy) nebo pevnou telefonní linku (2,9 miliardy). Vyplývá to z analytické studie Cisco Visual Networking Index (VNI) Global Mobile Data Traffic Forecast (2016 to 2021). Analytici také předpovídají, že se tento výrazný růst, spolu s rozmachem chytrých telefonů a připojení do internetu věcí promítne i do celkového objemu přenesených mobilních dat. Studie říká, že do roku 2021 vzroste sedminásobně, k čemuž přispěje i zvyšování přenosové rychlosti sítí a nárůst sledování videa na mobilních zařízeních.

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ý