24LC256をI2Cインターフェイスで使う

mikroCにはI2C関連のライブラリがあり、これを使うと比較的簡単に24LC256のようなI2Cインターフェイスの外部メモリに読み書きができます。

void I2C_Init(unsigned long clock);
I2Cの初期化。 I2C_Init(100000); // 100kHzで初期化


char型データを保存するには

intcon.GIE = 0;
I2C_Start();
I2C_Wr(0b10100010); //A2=0,A1=0,A0=1 Write
I2C_Wr(hi_addr); // 上位アドレス
I2C_Wr(lo_addr); // 下位アドレス
I2C_Wr(data); // 保存するデータ
I2C_Stop();
Delay_ms(10);// この値を小さくするとうまく書き込めない。
intcon.GIE = 1;


char型データを読み出すには

intcon.GIE = 0; // 割り込み無効
Delay_ms(2);
intcon.T0IF = 0; // 割り込みフラグのクリア

I2C_Start();
I2C_Wr(0b10100010); // A2->0 A1->0 A0->1 Write
I2C_Wr(hi_addr); // high byte address
I2C_Wr(i); // low byte address

// データの読み出し
I2C_Repeated_Start();
I2C_Wr(0b10100011); // A2->0 A1->0 A0->1 Read
TxBuf[i] = I2C_Rd(0u);

I2C_Stop();
Delay_ms(1);

intcon.GIE = 1; // 割り込み有効






戻る
TOPへ