;******************************************************************************************
;  ＡＶＲサンプル (ATTiny2313用)
;   Project      :  超音波センサー式障害物センサー
;   Program Name : 
;   Programer    :
;   Create date  :  Version 1.0    H19.06.01
;   History      :
;******************************************************************************************
;  (1)Description 
;
;******************************************************************************************
.include "tn2313def.inc"
.cseg
	LDI	R16,RAMEND
	OUT	SPL,R16		;
	LDI	R16,0xFF	; PORTB(0-7)を全て出力にする
	OUT	DDRB,R16	; PORTB(0-7)を全て出力にする
	LDI	R16,0x02	; PORTD(1)を出力にする
	OUT	DDRD,R16	; PORTD(1)を出力にする
;
	LDI	R16,0x00	; PORTBを初期化
	OUT	PORTB,R16	; PORTBを初期化
	LDI	R16,0x00	; PORTDを初期化
	OUT	PORTD,R16	; PORTDを初期化
; 0.初期設定
	LDI	R21,0x01	; PORTB変数を1に初期化
	OUT	PORTB,R21	; PORTBを1に初期化
;
MAIN:
; ===========================================
;    1.Move LED
; ===========================================
;    (1)Check PORTD(0)
	SBIS	PIND,0
	RJMP	MAIN_S
;    (2)Move LED
	RCALL	MVLD
; ===========================================
;    2.Output 40KHz
; ===========================================
MAIN_S:
;    (1)10Hz
	LDI	R18,50
MAIN_0:
;    (2)500Hz
	LDI	R17,80
MAIN_1:
	LDI	R16,0x02	; 
	OUT	PORTD,R16	; 
	RCALL	WAT		;
;
	LDI	R16,0x00	; 
	OUT	PORTD,R16	; 
	RCALL	WAT		;
;
	DEC	R17
	BRNE	MAIN_1
	DEC	R18
	BRNE	MAIN_0
;
	RJMP	MAIN

;******************************************************************************************
;   Function Name : WAT
;   Title         : タイマー関数(超音波センサー用)
;   Input         : None
;   Output        : None
;******************************************************************************************
WAT:
	PUSH	R16
	LDI		R16,11
WAT_A:
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DEC		R16
	BRNE	WAT_A
	POP		R16
	RET

;******************************************************************************************
;   Function Name : MVLD
;   Title         : ルーレットを動かす
;   Input         : R21
;   Output        : R21
;******************************************************************************************
MVLD:
; 2.ルーレットを動かす
	OUT	PORTB,R21	; PORTBに代入
	SBRC	R21,7		;
	RJMP	MVLD1		;
	LSL	R21		; 表示をシフト
	RET			;　	
MVLD1:				;
	LDI	R21,0x01	; PORTB変数を1に初期化
	RET			;


