2017/02/07

PSoC で I2C のアドレスをスキャンする方法

Cypress PSoC の I2C モジュールを使ってアドレスをスキャンする方法。 こんなの滅多にやらないから、備忘録として。

参考

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
bool TestI2CAddress(uint8 address)
{
    uint32 status = I2C_I2CMasterSendStart(address,I2C_I2C_READ_XFER_MODE);
    I2C_I2CMasterSendStop();
    return !status;
}
 
int main()
{
    static uint8 I2C_address;
 
    CyGlobalIntEnable;
    I2C_Start();
 
    while(true)
    {
        for(I2C_address = 0; I2C_address < 0x7F; I2C_address++)
        {
            if(TestI2CAddress(I2C_address))
            {
                // I2C_address が存在する
                // 出力する等何か処理
            }
        }
        while(true)
        {
            // Wait
        }
    }
}

0 件のコメント: