Atmel programozás avr studio-ban

VFX info at vfx.hu
Sun Jan 8 21:30:43 CET 2006


Hali!

electroboy wrote:
> 
> Sziasztok!
> 
> Sajnos rákényszerülök, hogy legalább "alapfokon" megtanuljam asm-ben
> progizni a megákat. Tudna nekem küldeni valaki egy asm fájlt, amiben
> van port olvasás és írás, mondjuk egy végtelen ciklusba zárva. Teljesen
> kezdõ vagyok asm ügyileg, pic-et programoztam asm-ben, utoljára 4 éve.
> Esetleg egy jó linket tudna valaki ajánlani? Egyenlõre csak port
> kezelésre lenne szükségem. Láb billegetés, meg hasonlók. Nem tudom
> mennyire lényeges, AVR studio-ban szeretném írni a progit.


Itt csak asm file-okat talasz AVRre:
http://avr.vfx.hu/

Azt ugyan nem irtad melyik mega, de nagy altalanossagban az adatalp
korrekten leirja a portkezelest.
Bemasolom ide:

DDxn   PORTxn      PUD         I/O     Pull-up      Comment
                (in MCUCR)
0        0           X        Input       No         Tri-state (Hi-Z)
0        1           0        Input       Yes        Pxn will source
current if ext. pulled low.
0        1           1        Input       No         Tri-state (Hi-Z)
1        0           X        Output      No         Output Low (Sink)
1        1           X        Output      No         Output High
(Source)

Egy porthoz tarozik:
DDRx - az poret iranyat hatarozza meg
PORTx - a port allapota ha kimenetnek allitottad, vagy pull up ki-be
kapcsolo ha bemenetnek allitottad
PINx - a port fizikai allapota, nem biztos, hogy azonos PORTx-vel


		sbi	DIRD,0			;PD0 kimenet
		cbi	PORTD,0			; es alacsony szintu

		cbi	DIRD,0			;PD0 bemenet
		cbi	PORTD,0			; es nincs pull-up
		olvasni a portrol pl. in R16,PIND utasitassal tudsz


		cbi	DIRD,0			;PD0 bemenet
		sbi	PORTD,0			; es pull-up van
		olvasni a portrol pl. in R16,PIND utasitassal tudsz


ciklusba szervezve pl.:

		ldi	XL,low(ciklusszam 0..0xFFFF -ig barmi)
		ldi	Xh,high(ciklusszam)
		ldi	R17,1
vissza:
		in	R16,PORTD		;olvasunk a prtrol
		eor	R16,R17
		out	PORTD,R16		;visszairjuk!!!! ,de irom lentebb...

		sbiw	XL,1			;csokken a ciklus szamlalo
		brne	vissza			;ha van meg, ugras vissza			

A ciklusban csaltunk, mert nem a labon levo erteket invertaljuk, hanem
az altalunk elvart erteket
		in	R16,PIND helyett az in 	R16,PORTD-t hasznaltuk

Ennek akkor van jelentosege, ha valami beterheli a labat es pl. nem
tudja magasra huzni. Vagy tul nagy a port lab kapacitiv terhelese es ido
kell, mig beall az uj ertek. Pl. 40cm hosszu nyakon telifoldelve az
egesz nya. ekkor kelhet 3-4 orajelciklus is mig beall az uj ertek a
porton. 

Nos ez igy bizonyara zavaros, de az adatlap sokkal jobban elmagyarazza,
az instruction manualt is javaslom. Nem sok utasitasa van, es konnyu
megtanulni. Foleg, hogy az ember alig hasznal 20-40 fajta utasitasnal
tobbet.

UDV. VFX.
http://www.vfx.hu




More information about the Elektro mailing list