AVR Assembler handledning 5 (2 / 8 steg)
Steg 2: Testprogram
Låt oss först skriva ett snabbt testprogram se till att inställningarna gör vad vi vill göra.
;************************************
; Skrivet av: 1o_o7
; datum: < 2014|11|03 >
; version: 1.0
; filen sparas som: analyzer.asm
; för AVR: atmega328p
; klockfrekvens: 16MHz
;************************************
; Programmera funcion:---
; analyserar de bitarna lagras i ett register
;---------------------------------------
.nolist
.include ". / m328Pdef.inc"
.lista
.def temp = r16
.org 0x0000
rjmp Init
Init:
ser temp
ut DDRB, temp
ut DDRC, temp
Färgtemp
ut PortB, temp
ut PortC, temp
viktigaste:
LDI r20, 0b11111111; Registrera för att analysera
; LDI r20, 0b10101010
; LDI r20, 0b01010101
rcall analysera
rjmp huvudsakliga
analysera:
Färgtemp
ut portb, temp
ut portc, temp
sbrc r20, 7
SBI portb, 1
sbrc r20, 6
SBI portb, 2
sbrc r20, 5
SBI portb, 3
sbrc r20, 4
SBI portb, 4
sbrc r20, 3
SBI portc, 1
sbrc r20, 2
SBI portc, 2
sbrc r20, 1
SBI portc, 3
sbrc r20, 0
SBI portc, 4
ret
Som ni ser, vi helt enkelt testar lysdioderna här: att alla fungerar och att de är korrekt anslutna. Jag laddade 3 olika mönster av bitar i registret r20 och sedan ut dem till lysdioder att se till att lysdioderna korrekt representerar den byte som finns i detta register.
Nu kan vi använda denna kod för att analysera den byte som lagras i något register som vi vill ha.
Vi kommer att använda detta för att förstå hur de X, Y och Z pekarna fungerar men först kan göra ett par fler tester...