2017/02/07

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

[Cypress](http://japan.cypress.com/) PSoC の I2C モジュールを使ってアドレスをスキャンする方法。
こんなの滅多にやらないから、備忘録として。

> 参考
> - [I2C Scan | Cypress Semiconductor](http://japan.cypress.com/forum/psoc-4-architecture/i2c-scan)

```c
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 件のコメント: