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

AVR – blikáme IIAVR – blikáme II

 

AVR – blikáme II

Google       Google       14. 7. 2006       25 520×

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 Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres přiveze v září do Prahy špičky světové kryptoanarchie

Hackerský kongres HCPP16 pořádá od 30. září do 2. října nezisková organizace Paralelní Polis již potřetí, a to ve stejnojmenném bitcoinovém prostoru v pražských Holešovicích. Letos přiveze na třídenní konferenci přes 40 většinou zahraničních speakerů – lídrů z oblastí technologií, decentralizované ekonomiky, politických umění a aktivismu. Náměty jejich přednášek budou také hacking, kryptoměny, věda, svoboda nebo kryptoanarchie.

Reklama
Reklama
Obrázek ke článku ICT PRO školení zaměřené nejenom na ICT

ICT PRO školení zaměřené nejenom na ICT

Dovolte, abychom se představili. Jsme zaměstnanci společnosti ICT Pro, profesionálové v oblasti poskytování komplexních ICT služeb. Neboli služeb spojených s informačními a komunikačními technologiemi, které dnes - ve 21. století - tvoří  nedílnou součást běžného provozu všech moderních firem.

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 © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý