2014/06/04

ATMega328Pをアセンブラで動かしてみた

タイトルまんまです。

僕はわりと最近マイコンを触り始めた勢ということもあり、アセンブラを触ったことがありません。

と、いうわけで書いた!


 .include "m328Pdef.inc"

 .def TEMP=R16

 .org 0x0000

 rjmp RESET

 RESET:
 ldi R16,LOW(RAMEND)
 out SPL,R16

 ldi TEMP,0xFF
 out DDRB,TEMP

MAIN:

 LED_ON:
 ldi TEMP,0b00000001
 out PORTB,TEMP

 rcall wait05

 LED_OFF:
 ldi TEMP,0b00000000
 out PORTB,TEMP

 rcall wait05

 rjmp MAIN

wait05:
 ldi R18,5

wait052:
 rcall wait01
 dec R18
 brne wait052
 ret

wait01:
 ldi R19,40

wait012:
 rcall wait1m
 dec R19
 brne wait012
 ret

wait1m:
 ldi R20,250

wait1m2:
 nop
 dec R20
 brne wait1m2
 ret

Lチカ!!!!
楽しい!!!!!!


アセンブラはめんどくさそうと思っていましたが、全くその通りでした。
でも楽しかったので良しとします!

次は条件分岐だ...

0 件のコメント:

コメントを投稿

記事の感想、意見などはこちらからどうぞ。

人気の投稿