Closed r-alias closed 4 years ago
nrf52のTWIM(DMA付きI2C)の仕様でROM上の値は送信できないのでconst外してました
DMAのない通常のTWIを使えばROM上の値も送信できるはずなので追加を検討します
了解です。 BMPAPIの対応まちという事で、いったん取り下げます。
調べた結果TWIのインスタンスは2個までしかなく、BMPAPIではTWIMとTWISにそれぞれ割り振ってしまっているので、通常のTWIを用意するのは難しそうです。
なので一旦この方法で取り込もうかと思っています
ヘッダの中でバッファをstatic宣言するとインクルードする度にバッファが作られてRAMを圧迫するので関数の中でローカル変数として宣言したほうが良い気がします
変更
気になってる所
static inline uint8_t i2c_transmit(uint8_t address, const uint8_t data, uint16_t length, uint16_t timeout) { // convert "const uint8_t" to "uint8_t" if(sizeof(i2c_temporary_buffer)/sizeof(i2c_temporary_buffer[0]) < length) return 1; memcpy(i2c_temporary_buffer, data, length); return BMPAPI->i2cm.transmit(address >> 1, (uint8_t)i2c_temporary_buffer, length); }