
IJFW - IchigoJamのBASICプログラムをメモリカード(MMCまたは互換カード)に保存したり読み出したりできるプログラム。メモリカードにファームウェアのファイルを置くだけで、電源ON時に自動的に書き換える機能も搭載(一応こちらがメイン)。LPC1114FN28専用。
参考URL http://www.cyberchabudai.org/index.php/entry?tag=IJFW
Diff: I2CSlave2/I2CSlave2.cpp
- Revision:
- 0:43cce7b453d0
diff -r 000000000000 -r 43cce7b453d0 I2CSlave2/I2CSlave2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/I2CSlave2/I2CSlave2.cpp Thu Apr 28 11:23:24 2016 +0000 @@ -0,0 +1,31 @@ +#include "I2CSlave2.h" + +I2CSlave2::I2CSlave2(PinName sda, PinName scl) : I2CSlave(sda, scl) { +} + +void I2CSlave2::address(int address, int mask) { + int addr = (address & 0xFF) | 1; + i2c_slave_address(&_i2c, 0, addr, 0); + LPC_I2C->MASK0 = mask; +} + +int I2CSlave2::read(char *data, int length) { + return i2c_slave_read(&_i2c, data, length); +} + +int I2CSlave2::read() { + return i2c_byte_read(&_i2c, 0); +} + +int I2CSlave2::write(const char *data, int length) { + return i2c_slave_write(&_i2c, data, length); +} + +int I2CSlave2::write(int data) { + return i2c_byte_write(&_i2c, data); +} + +// This function must be called immediately after receive(). +int I2CSlave2::addressFromMaster() { + return LPC_I2C->DAT; +}