I2C
I2C はライブラリに収録していませんが SMBus.c というファイル名で I2C を用いるサンプルプログラムで利用されています。
Samp_I2C サンプルプログラムを参考にしてください。
1
#include "SMBus.h"
2
#define EEPROM_24XX01_ADDRESS 0x50
3
4
// 初期化
5
void vInitHardware() {
6
// SMBUS
7
vSMBusInit();
8
}
9
10
// 24XX EEPROM 書き込み
11
bool_t b24xx01_Write(uint8 u8Address, uint8 *pu8Data, uint8 u8Length)
12
{
13
uint8 n;
14
bool_t bOk = TRUE;
15
volatile int x;
16
17
for(n = 0; n < u8Length; n++){
18
// u8Addressと1バイトのデータ書き込み
19
bOk &= bSMBusWrite(EEPROM_24XX01_ADDRESS, u8Address++, 1, pu8Data++);
20
for(x = 0; x < 16000; x++);
21
}
22
return(bOk);
23
}
24
25
26
PUBLIC bool_t b24xx01_Read(uint8 u8Address, uint8 *pu8Dest, uint8 u8Length)
27
{
28
bool_t bOk = TRUE;
29
30
// u8Address の書き込み
31
bOk &= bSMBusWrite(EEPROM_24XX01_ADDRESS, u8Address, 0, NULL);
32
33
if(u8Length > 1){
34
// u8Length分連続で読み出す。
35
bOk &= bSMBusSequentialRead(EEPROM_24XX01_ADDRESS, u8Length, pu8Dest);
36
}
37
38
return(bOk);
39
}
Copied!
最終更新 1mo ago
リンクのコピー