アセンブラに触ってみたかったので
やってみようと思います
使う物
AVR ISP V2.0
ATmega88-20PU
ソフト
Atmel Studio6.2
インストールの仕方は省きます
必要ならコメントお願いします
プロジェクト
新規プロジェクト作成し
ATmega88Pを選択
AVR.asm
;********************
;ヘッダ
;********************
;Lチカ
;AVR.asm
;2015/04/02
;starswirl_k
;********************
;インクルードファイル
;********************
.include "m88def.inc"
;********************
;汎用レジスタ定義
;********************
;R16から使った方が良いらしい
.def R_L_SET = R16
.def R_L_ON = R17
.def R_L_OFF = R18
.def COUNT = R19
.org 0x0000 ;プログラムコードの始まるロケーションを宣言
rjmp MAIN ;リセット時にここからスタート
;********************
;定数定義
;********************
;---PORT---
;---入出力ビット---
;---ユーザフラグ---
;********************
;割り込みベクタ
;********************
;********************
;割り込みルーチン
;********************
;********************
;サブルーチン
;********************
TIME_MAKE:
;時間稼ぎ
LDI COUNT,0x00;カウンターセット
LOOP: NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
INC COUNT
CPI COUNT,0xF0;COUNT<11ならLOOPにジャンプ
BRLO LOOP
RET
;********************
;メインルーチン
;********************
MAIN:
LDI R_L_ON,0b00000001 ;LED ON
OUT PORTD,R_L_ON
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
LDI R_L_OFF,0b00000000 ;LED OFF
OUT PORTD,R_L_OFF
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
RCALL TIME_MAKE ;時間稼ぎ
NOPでごり押ししすぎぃ!!
結構早めに光ります
タイマーとかでやり方かえれるっぽい?のでそのうち更新します