コマンドは6バイト構成になっていますので、前回作成した1バイト通信プログラムをコールして、コマンド出力プログラムを作成します。
コマンドラインのアドレスはHLレジスタに格納します。
[asm]
cmd_out: ;command out
push hl
push bc
ld b,0x06 ;command line word count
cmd_out1:
ld d,(hl) ;command line area
call spi_8bit
inc hl
djnz cmd_out1
pop bc
pop hl
ret
[/asm]
コマンド出力したとは、コマンドの返り値をチェックします。
1バイト0xffを出力しながら、戻り値を確認します。
次のプログラムは1バイトの戻り値用です。
ただし、受信データ0xffがず~っと続くと無限ループに^^;
call resp_r1
cp 0xff
jr z,r1_resp
ret
resp:
ld d,0xff
call spi_8bit
ld a,e
ret
[/asm]
ここまでで ソフトウェアリセットができましたので、次回から
イニシャライズルーチンを作成したいと思います。