- 論壇徽章:
- 0
|
OT_U8 OT_I2C_PutByte(OT_U8 Byte)
{
OT_S8 Counter;
for (Counter=7; Counter>= 0; Counter--)
{
if ( Byte & (1<<Counter) )
{
OT_SDA_HIGH();
printk("i2c_key_sda = %d ****************\n",GPIOGetPinLevel(I2C_KEY_SDA));
}
else
{
OT_SDA_LOW(); /* address bit */
printk("i2c_key_sda = %d ****************\n",GPIOGetPinLevel(I2C_KEY_SDA));
}
OT_I2C_SCL_TOGGLE(); /* clock HI, delay, then LO */
}
OT_SDA_HIGH(); /* leave SDA HI */
OT_HDEL;
OT_SCL_HIGH(); /* clock back up */
OT_HAL_SDA_IN_MODE(); /* set i2c_key_sda input */
OT_HDEL;
//Byte=OT_HAL_BitRead_I2C_SDA(); /* get the ACK bit */
Byte=OT_GET_ACK_BIT();
printk("Byte = %d\n",Byte);
OT_SCL_LOW();
OT_SDA_HIGH(); /* leave with SDA HI */
if(Byte == 0)
return OT_SUCCESS; /* return OT_SUCCESS (ACK), or OT_FAILURE (NACK) */
return OT_FAILURE;
}
延時(shí)函數(shù)OT_HDEL :延時(shí)4微妙,用的udelay(4); 處理器是ARM9!
這是我的寫一個(gè)字節(jié)的函數(shù):問題是在我寫完第八位時(shí),等待從機(jī)應(yīng)答,但是每次收到的是sda=1,從機(jī)不應(yīng)答。應(yīng)該怎樣處理呢?請(qǐng)各位大俠幫幫忙啊。 |
|