1 0000000: 0030 6120 0032 6155 0031 0033 602f 002f .0a .2aU.1.3`/./
2 0000010: 0030 6120 0032 61aa 0031 0033 602f 002f .0a .2a..1.3`/./
3 0000020: 1000
なんともやるきの感じられないバイナリですが。
PCF8574のI/OにつながったLED8個を交互に点滅させるというもの。
書き込みはまあ、とても簡単。
一回の点滅のコードはこのような感じ。
SYS 0x030 ; Wire begin
LD V1,0x20 ; V1 <- 0x20 // address of pcf8574
SYS 0x032 ; begin transmission
LD V1,0x55 ; 0b 0101 0101 blink pattern
SYS 0x031 ; i2c write
SYS 0x033 ; end transmission
LD V0,0x2F ; delay Time
SYS 0x02F ; delay
いま気づいたけど毎回beginしてますね。 ほんとうは1回やれば十分です…。
PCF8574というICはちょっと特殊というか、i2cデバイス内アドレスが1つしかないので開始アドレスとか指定することなく読み書きできちゃうので、ほんとうはテストには向かないんですが。
使うの簡単で良いのですけれどもね。最近aitendoで扱い始めたみたいで少し気になります。
さて、あまりにも上のバイナリがひどいので直しました。
1 0000000: 0030 6055 2010 201c 60aa 2010 201c 1002 .0`U . .`. . ...
2 0000010: 6120 0032 8100 0031 0033 00ee a1f4 0057 a .2...1.3.....W
3 0000020: 00ee
SYS 0x030
loop: LD V0,0x55
CALL blink
CALL delay
LD V0,0xAA
CALL blink
CALL dalay
JP loop
blink:LD V1,0x20
SYS 0x32
LD V1,V0
SYS 0x31
SYS 0x33
RET
delay:LD Ires,0x1f4
SYS 0x57
RET
大分プログラムっぽくなりました。
内容は一緒ですけどもね。