ひさやん.com

Intel® Edison にぞっこんです

Intel Edison の mraa から I2C

   

LINEで送る
Pocket

現バージョンだと、ちょっとクセ(バグ?)があるようです。

var mraa = require('mraa');
var i2c = new mraa.I2c(0);

i2c.address(0x62);
i2c.writeReg(0, 0);
i2c.writeReg(1, 0);
i2c.writeReg(0x08, 0xAA);

みたいにすると、最後の 0xAA を書き込むところでエラーが発生します。

どうも、unsigned Char と signed Char の関係性がよくないようです。

Javascript からは Unsigned でわたすけど、受け取り側が signed 、、、みたいな感じ。

i2c.writeReg(0x08, -86);

だと、きちんと動くようです。

ということで、

function convertChar(i) {
    if (i & 0x80) {
        return - (((0xAA & 0x7F | 0x80) ^ 0xFF) + 1);
    } else {
        return i;
    }
}

みたいのをつくって、

i2c.writeReg(0x08, convertChar(0xAA));

して対応しました。

なかのひとに相談したところ、issue を発行してくださったようなので、じきに修正されるかもしれません。
そのときは、また、convertChar を外さないといけなくなるかも、、、ですね。

 - 未分類

  関連記事

no image
The Ultimate Guide to buy cheap jerseys

PocketThe Ultimate Guide to buy cheap je …

no image
Hello world!

PocketWordPress へようこそ。これは最初の投稿です。編集もしくは削 …

no image
Intel Edison Breakout Board Kit に電源供給してみる

PocketUSB OTG を試そうとしたら、当然ではありますが、USBから給電 …

Intel Edison に、USB経由で簡単 ssh 接続

PocketIntel Edison の Shell を触りたいときに、シリアル …

no image
Intel Edison で flashall.sh で失敗する

PocketMac の場合 flashall.sh より Intel Flash …

no image
Intel Edison で USB SOUND DRIVER を認識させました

Pocket手順をきちんとまとめる時間がないのです。(2014.11.7 すこし …

no image
Intel Edison は、すぐにディスクが満タンになりがちです

PocketIntel Edison で開発していて、 「あれ、なんか挙動がおか …

no image
Clanton って、何だ?

Pocketときどき、clanton って名前が含まれているライブラリやソースに …

インテル® Edison 開発ボード Hackathon に参加してきました

Pocket2014年10月18日(土),19日(日)、に東京で開催された イン …

no image
bitbake edison-image で git のエラーにハマる

Pocketなんど試してみても ERROR: Function failed: …