AVR Assembler Tutorial 1 (3 / 5 steg)
Steg 3: Hej världen
Målet med denna första handledning är att bygga standard första programmet skriver man då lära sig något nytt språk eller att utforska någon ny elektronik plattform. "Hello World!." I vårt fall vill vi bara skriva ett assembler program, montera den och ladda upp den till vår mikrokontroller. Programmet kommer att orsaka en LED att slå på. Orsakar en LED "blinka" som de gör för den normala Arduino hello world-programmet är faktiskt ett mycket mer komplicerat program i assembler så vi kommer inte att göra det ännu. Vi kommer att skriva den enklaste "bare bones" kod med minimal onödiga fluff.
Anslut först en LED från PB5 (se pinut diagrammet) som också kallas Digital ut 13 på en arduino, till ett 220 ohm motstånd, sedan till GND. dvs.
Pb5---> LED---> R (220 ohm)---> GND
Nu att skriva programmet. Öppna upp din favorit texteditor och skapa en fil som heter "hello.asm"
; hello.asm
; vänder på en LED som är ansluten till PB5 (digital ut 13)
.include ". / m328Pdef.inc"
LDI r16, 0b00100000
ut DDRB, r16
ut PortB, r16
Start:
rjmp Start
Ovanstående är koden. Vi kommer att gå igenom det rad-för-rad i en minut, men första låter se till att vi kan få det att fungera på din enhet.
När du har skapat filen, sedan montera i en terminal du det enligt följande:
Avra hello.asm
Detta kommer att montera din kod och skapa en fil som heter hello.hex som vi kan ladda upp den så här:
avrdude -p m328p - c stk500v1 -b 57600 - P/dev/ttyUSB0 - U flash:w:hello.hex
Om du använder ett set av brödunderläggen arduino måste du trycka på reset-knappen på bakbord arduino precis innan du kör kommandot ovan. Observera att du kan också behöva lägga till en sudo framför eller köra det som root. Också notera att på vissa arduino's (som Arduino UNO) du kommer antagligen behöva ändra bit rate -b 115200 och port -P/dev/ttyACM0 (om du får ett felmeddelande från avrdude om en ogiltig enhet signatur bara lägga till en -F på kommandot)
Om allt har fungerat som det ska kommer du nu har en lysdiod som lyser upp... "Hello World!"