První pokus v simulátoru AVR

Z MAM wiki

Přejít na: navigace, hledání

Pro první pokus určitě použijte simulátor zabudovaný v programu AVR Studio. Jste-li ve škole v laboratoři 362, je software již připraven. Jinak si AVR Studio nejprve nainstalujte.

V AVR Studiu založte nový projekt, napište pár instrukcí v assembleru dle instrukčního souboru a program přeložte a zkuste krokovat. Vše je velmi obrázkové a názorné, takže asi pochopíte, jak se podívat do registrů a ověřit, že instrukce dělají to, co jste čekali.

Můžete použít třeba tento program:


; 
; example LED-show program for ATmega168
;
; 2-color LED with 300 Ohm resistor in series is supposed to be
; connected between pins 15 (PB1, LED_X) and 16 (PB2, LED_Y).
;
; Color1 shines when LED_X is high and LED_Y is low
; Color2 shines when LED_Y is high and LED_X is low

	.EQU DDRB = $04
	.EQU PORTB = $05

	.EQU LED_X = 1
	.EQU LED_Y = 2

; Pins connected to LED are outputs:

	SBI	DDRB, LED_X
	SBI	DDRB, LED_Y

SHOW:	
	RCALL	COLOR1
	RCALL	WAIT
	
	RCALL	DARK
	RCALL	WAIT
	
	RCALL	COLOR1
	RCALL	WAIT
	
	RCALL	DARK
	RCALL	WAIT
	
	RCALL	COLOR2
	RCALL	WAIT

	RCALL	DARK
	RCALL	WAIT
	
	RCALL	COLOR2
	RCALL	WAIT

	RCALL	DARK
	RCALL	WAIT

	RCALL	COL3W
	
	RCALL	DARK
	RCALL	WAIT

	RCALL	COL3W
	
	RCALL	DARK
	RCALL	WAIT
	
	RJMP SHOW
;;;
;;;
;;; P R O C E D U R E S
;;;
;;;
	
SMALLWAIT:
	INC	R1
	BRNE	SMALLWAIT
	RET

WAIT:
	LDI	R16, 4
WAIT1:	INC	R1
	BRNE	WAIT1
	INC	R2
	BRNE	WAIT1
	DEC	R16
	BRNE	WAIT1
	RET
	
COLOR1:
       	SBI	PORTB, LED_X
	CBI	PORTB, LED_Y
	RET

COLOR2:
       	SBI	PORTB, LED_Y
	CBI	PORTB, LED_X
	RET

COL3W:
	LDI	R16, 2
COL3X: 	RCALL	COLOR1
	RCALL	SMALLWAIT
	RCALL	COLOR2
	RCALL	SMALLWAIT
	INC	R2
	BRNE	COL3X
	DEC	R16
	BRNE	COL3X

DARK:
       	CBI	PORTB, LED_X
	CBI	PORTB, LED_Y
	RET

Vývody ATmega168, ke kterým by LED s odporem v séri šla připojit:

... ... ... ... ... ... ... ... ... PB2 PB1
)
RESET ... ... ... ... ... ... ... ... ... ... ... ...
Osobní nástroje