
IJFW - IchigoJamのBASICプログラムをメモリカード(MMCまたは互換カード)に保存したり読み出したりできるプログラム。メモリカードにファームウェアのファイルを置くだけで、電源ON時に自動的に書き換える機能も搭載(一応こちらがメイン)。LPC1114FN28専用。
参考URL http://www.cyberchabudai.org/index.php/entry?tag=IJFW
I2CSlave2/I2CSlave2.cpp@0:43cce7b453d0, 2016-04-28 (annotated)
- Committer:
- oks486
- Date:
- Thu Apr 28 11:23:24 2016 +0000
- Revision:
- 0:43cce7b453d0
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oks486 | 0:43cce7b453d0 | 1 | #include "I2CSlave2.h" |
oks486 | 0:43cce7b453d0 | 2 | |
oks486 | 0:43cce7b453d0 | 3 | I2CSlave2::I2CSlave2(PinName sda, PinName scl) : I2CSlave(sda, scl) { |
oks486 | 0:43cce7b453d0 | 4 | } |
oks486 | 0:43cce7b453d0 | 5 | |
oks486 | 0:43cce7b453d0 | 6 | void I2CSlave2::address(int address, int mask) { |
oks486 | 0:43cce7b453d0 | 7 | int addr = (address & 0xFF) | 1; |
oks486 | 0:43cce7b453d0 | 8 | i2c_slave_address(&_i2c, 0, addr, 0); |
oks486 | 0:43cce7b453d0 | 9 | LPC_I2C->MASK0 = mask; |
oks486 | 0:43cce7b453d0 | 10 | } |
oks486 | 0:43cce7b453d0 | 11 | |
oks486 | 0:43cce7b453d0 | 12 | int I2CSlave2::read(char *data, int length) { |
oks486 | 0:43cce7b453d0 | 13 | return i2c_slave_read(&_i2c, data, length); |
oks486 | 0:43cce7b453d0 | 14 | } |
oks486 | 0:43cce7b453d0 | 15 | |
oks486 | 0:43cce7b453d0 | 16 | int I2CSlave2::read() { |
oks486 | 0:43cce7b453d0 | 17 | return i2c_byte_read(&_i2c, 0); |
oks486 | 0:43cce7b453d0 | 18 | } |
oks486 | 0:43cce7b453d0 | 19 | |
oks486 | 0:43cce7b453d0 | 20 | int I2CSlave2::write(const char *data, int length) { |
oks486 | 0:43cce7b453d0 | 21 | return i2c_slave_write(&_i2c, data, length); |
oks486 | 0:43cce7b453d0 | 22 | } |
oks486 | 0:43cce7b453d0 | 23 | |
oks486 | 0:43cce7b453d0 | 24 | int I2CSlave2::write(int data) { |
oks486 | 0:43cce7b453d0 | 25 | return i2c_byte_write(&_i2c, data); |
oks486 | 0:43cce7b453d0 | 26 | } |
oks486 | 0:43cce7b453d0 | 27 | |
oks486 | 0:43cce7b453d0 | 28 | // This function must be called immediately after receive(). |
oks486 | 0:43cce7b453d0 | 29 | int I2CSlave2::addressFromMaster() { |
oks486 | 0:43cce7b453d0 | 30 | return LPC_I2C->DAT; |
oks486 | 0:43cce7b453d0 | 31 | } |