sekigon-gonnoc / qmk_firmware

keyboard controller firmware for Atmel AVR and ARM USB families
http://qmk.fm
GNU General Public License v2.0
202 stars 82 forks source link

OLED Support. #23

Closed r-alias closed 4 years ago

r-alias commented 4 years ago

変更

気になってる所

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); }

sekigon-gonnoc commented 4 years ago

nrf52のTWIM(DMA付きI2C)の仕様でROM上の値は送信できないのでconst外してました
DMAのない通常のTWIを使えばROM上の値も送信できるはずなので追加を検討します

r-alias commented 4 years ago

了解です。 BMPAPIの対応まちという事で、いったん取り下げます。

sekigon-gonnoc commented 4 years ago

調べた結果TWIのインスタンスは2個までしかなく、BMPAPIではTWIMとTWISにそれぞれ割り振ってしまっているので、通常のTWIを用意するのは難しそうです。

なので一旦この方法で取り込もうかと思っています

ヘッダの中でバッファをstatic宣言するとインクルードする度にバッファが作られてRAMを圧迫するので関数の中でローカル変数として宣言したほうが良い気がします