AVR Assembler handledning 3 (2 / 9 steg)
Steg 2: Varför behöver vi kommentarer och filen m328Pdef.inc?
Jag tror att vi bör börja med visar varför include-filen och kommentarer är bra. Ingen av dem är faktiskt nödvändigt och du kan skriva, montera och ladda upp koden på samma sätt utan dem och det kommer att köras helt väl (även om du kan få några klagomål från assembler-- men inga fel utan en include-fil)
Här är koden vi kommer att skriva i dag, förutom att jag har tagit bort kommentarerna och include-filen:
.Device ATmega328P
.org 0x0000
JMP en
.org 0x0020
JMP e
a:
LDI r16, 0x05
ut 0x25, r16
LDI r16, 0x01
STS 0x6e, r16
SEI
CLR r16
ut 0x26, r16
SBI 0x0a, 0x04
SBI 0x0b, 0x04
b:
SBI 0x0b, 0x04
rcall c
CBI 0x0b, 0x04
rcall c
rjmp b
c:
CLR r17
d:
CPI r17, 0x1e
brne d
ret
e:
Inc r17
CPI r17, 0x3d
brne PC + 2
CLR r17
Reti
ganska enkel rätt? Haha. Om du monterade och laddat upp filen kommer du lampan att blinka med en hastighet av 1 blink per sekund med ett ögonblick varar 1/2 sekund och pausen mellan blinkar varaktig 1/2 sekund.
Titta på denna kod är dock knappast upplysande. Om du skulle skriva kod som den här du och ville ändra det eller återanvända det i framtiden skulle du ha en hård tid.
Så låt oss lägga till kommentarer och inkluderar fil tillbaka i så att vi kan göra någon mening av det.