I2Cが開通した

前回まででMbed --> Macが開通したので、次の課題はI2C --> Mbedを開通させることです。
===
ゴール:I2CデバイスをアクセスしてMacに表示させる
機材:リアルタイムクロック(RTC)
ツール:前回と同じ(Mbed Compiler、CoolTermMac)

ソースは以下
===
#include "mbed.h"
#include "USBSerial.h"

USBSerial   usb(0x1f00, 0x2012, 0x0001, false);

I2C i2c(p26, p25);        // sda, scl

const int addr8bit = 0x51 << 1; // 8bit I2C address

int main(void) {
    char regaddr[1];
    char readdata[11]; // room for length and 7 databytes
    while(1) {
        regaddr[0] = 0x00;
        i2c.write(addr8bit, regaddr, 1, true);  // select the register, no I2C Stop
        i2c.read(addr8bit, readdata, 11);        // read 11 bytes
// print the data to the screen
        usb.printf("0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\r\n",
            regaddr[0] , readdata[1], readdata[2], readdata[3],
            readdata[4], readdata[5], readdata[6], readdata[7],
            readdata[8], readdata[9], readdata[10] );
        wait(1);
    }
}
===
コンパイル結果をダウンロード、書き込んで実行させると次のようになりました。
左から5つ目のhexaが秒ですが、1秒ごとに変化しているのがわかります。

ここまで

コメント

このブログの人気の投稿

i2c-tools 備忘録(内容が古くなりましたが記録として残します)

python-smbus(内容が古くなりましたが記録として残します)