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

AVR – blikámeAVR – blikáme

 

AVR – blikáme

Google       Google       13. 7. 2006       30 791×

Po třech teoretických dílech se dnes podíváme na to, jak si s naším procesorem „zablikat“. Jistě, je to jako kanónem na vrabce, ale nějak se začít musí, nebo ne?

Reklama
Reklama

Především si musíme říct něco o tom, jak vůbec s porty našeho mikroprocesoru pracovat. K tomu slouží hned několik registrů, které nastavují vlastnosti vstupně/výstupních portů. Nejnázorněji si funkci vysvětlíme na obrázku (vyjmuto z datasheetu).

Porty mohou sloužit jako vstupní i jako výstupní. Jejich funkce se nastavuje registry. Každý registr obsluhující daný port nese jeho číselné označení. Jsou to:

DDRX -> DATA DIRECTION REGISTER
Určuje směr toku dat – vstup/výstup
PORTX
Datový registr – stav pinů portu odpovídá hodnotě zapsané do registru
PINX
Určen pouze pro čtení, odpovídá aktuální hodnotě na pinech

Porty jsou tedy obousměrné, pro každý směr využíváme jiného datového registru. Směr nastavujeme registrem DDRX, přičemž X značí číslo portu (1, 2, 3…). Log. 1 nastavuje port jako výstupní, log. 0 jako vstupní (tedy přesně obráceně, než je tomu u procesorů PIC).

Pokud jste si pečlivě přečetli katalogový list k obvodu, zvláště pak pasáž popisující vlastnosti vstupně/výstupních portů, jistě Vám neuniklo, že tyto porty mají tzv. pull-up odpory (odpory na napájení). Ty se samozřejmě dají vypnout. Hodí se to například, když chceme využít vstupů s velkou vstupní impedancí… Pull-up rezistory lze nastavovat zvlášť pro každý pin, nebo lze všechny zakázat nastavením bitu PUD v registru SFIOR


PORTX=1 DDRX=1 - VYSTUP LOG1
PORTX=0 DDRX=1 - VYSTUP LOG0
PORTX=1 DDRX=0 - VSTUP S VNITRNIM PULLUPEM K VCC
PORTX=0 DDRX=0 - VSTUP

Hurá do toho

Než začneme se samotným programem, řekneme si pár maličkostí, které nám usnadní práci:

Pro změnu stavu pinu na portu můžeme použít instrukcí CBI (vynuluje bit – pin) a SBI (nastaví bit – pin). Tímto způsobem změníme stav bitu (pinu), aniž bychom ovlivnili stav ostatních pinů.


CBI		DDRD,PORTD6        ;vynuluje bit (pin)
SBI		DDRD,PORTD6        ;nastavi bit (pin)

Jinak můžeme samozřejmě stav na portech ovlivňovat i aritmetickými operacemi. Například sčítáním, odčítáním, násobením i dělením. Ale také xorováním a negací… Doporučuji ale dělat složitější operace na nějakém pracovním registru a až výsledek kopírovat do registru daného portu. Vyhnete se tak kolizím, které by mohly nastat v průběhu výpočtu.

Původně jsem zamýšlel dát sem nejjednodušší příklad blikače, ale v knize Práce s mikrokontroléry AVR od Davida Matouška (BEN) jsem zahlédl následující program pro běžící světlo:


	.NOLIST	
	.INCLUDE "m16def.inc"	
	.LIST	
				 
	.CSEG	        ;kódový segment	
	.DEF REG=R16	;pracovní registr
	.EQU DDR=DDRC	;řízení směru
	.EQU PORT=PORTC	;port
	LDI REG,$FF	
	OUT DDR,REG	;aktivuj výstupy
	LDI REG,LOW(RAMEND)
	OUT SPL,REG	;nastav SP na konec SRAM
	LDI REG,HIGH(RAMEND)
	OUT SPH,REG
	CLC	        ;0 do C
	LDI REG,$FF	;FF do REG
SMYCKA:	OUT PORT,REG	;pošli
	RCALL CEKEJ	;počkej 0,5 s
	ROL REG  	;posuň
	RJMP SMYCKA	;a znovu

		        ;čekací rutina (čeká asi 0,5 s)
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

Program si zkuste odsimulovat v AVR studiu, případně vyzkoušejte přímo s procesorem a zkuste sami sobě vysvětlit, jak program funguje. Pokud se Vám to nepovede, nezoufejte, v příštím díle si to řekneme.

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

3 názory  —  3 nové  
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 Blockchain & Bitcoin konference

Blockchain & Bitcoin konference

V pátek 19. 5. 2017 se v pražském konferenčním centru Andel’s konala Blockchain & Bitcoin konference. Řada odborníků a podnikatelů v oboru blockchainu a kryptoměn představila možnosti budoucího směřování tohoto oboru. Speakeři většinou rusky mluvící provenience prezentovali řešení svých firem založená na technologii blockchainu.

Reklama
Reklama
Obrázek ke článku Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Malware KONNI se úspěšně skrýval 3 roky. Odhalil ho bezpečnostní tým Cisco Talos

Bezpečnostní tým Cisco Talos odhalil celkem 4 kampaně dosud neobjeveného malwaru, který dostal jméno KONNI. Ten se dokázal úspěšně maskovat od roku 2014. Zpočátku se malware zaměřoval pouze na krádeže citlivých dat. Za 3 roky se ale několikrát vyvinul, přičemž jeho současná verze umožňuje útočníkovi z infikovaného počítače nejenom krást data, ale i mapovat stisky na klávesnici, pořizovat screenshoty obrazovky či v zařízení spustit libovolný kód. Pro odvedení pozornosti oběti zasílali útočníci v příloze také obrázek, zprávu a výhružkách severokorejského režimu či kontakty na členy mezinárodních organizací.

Obrázek ke článku Pouze jedna z deseti lokálních firem ví o pokutách plynoucích z GDPR

Pouze jedna z deseti lokálních firem ví o pokutách plynoucích z GDPR

Trend Micro, celosvětový lídr v oblasti bezpečnostních řešení a VMware, přední světový dodavatel cloudové infrastruktury a řešení pro podnikovou mobilitu, oznámily výsledky výzkumu mezi českými a slovenskými manažery zodpovědnými za ochranu osobních údajů, který zjišťoval, jak jsou připraveni na nové nařízení o ochraně osobních údajů (GDPR). Většina firem v České republice a na Slovensku nad 100 zaměstnanců je již s novým nařízením GDPR obeznámena. Výzkum provedený ve spolupráci s agenturou Ipsos ukázal, že téměř 8 firem z 10 o nařízení ví, přičemž jeho znalost je o něco vyšší na Slovensku (89 %) než v České republice (69 %).

Obrázek ke článku Vyděračský software Locky se vrací, tváří se jako potvrzení platby, odhalil tým Cisco Talos

Vyděračský software Locky se vrací, tváří se jako potvrzení platby, odhalil tým Cisco Talos

Jeden z nejznámějších ransomwarů, Locky, se vrací. Po většinu roku 2016 patřil mezi nejrozšířenější vyděračské softwary. Ke svému šíření využíval emailové kampaně s infikovanými přílohami. Ransomware Locky byl rozesílán prostřednictvím botnetu (internetový robot zasílající spamy) Necurs. Jeho aktivita na konci roku 2016 téměř upadla a spolu s ní i šíření ransomwaru Locky. Před několika týdny se Necurs opět probudil a začal posílat spamy nabízející výhodný nákup akcií. Dne 21. dubna zaznamenal bezpečnostní tým Cisco Talos první velkou kampaň ransomwaru Locky prostřednictvím botnetu Necurs za posledních několik měsíců.

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ý