ひさやん.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
Intel Edison で flashall.sh で失敗する

Mac の場合 flashall.sh より Intel Flash Tool …

no image
The Ultimate Guide to buy cheap jerseys

The Ultimate Guide to buy cheap jerseys …

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

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

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

2014年10月18日(土),19日(日)、に東京で開催された インテル&reg …

no image
Clanton って、何だ?

ときどき、clanton って名前が含まれているライブラリやソースに出会すので。 …

no image
Intel Edison の mass storage を、Edison自身から操作する方法

Intel Edison を USB で PC に接続すると、外部ディスクとして …

no image
Intel Edison for Arduino の電圧を 3.3V に

Arduino のシールドからの出力は、標準で5Vですが、3.3Vで使いたかった …

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

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

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

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

no image
Hello world!

WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログ …