static void i2c_bitbang_stop_1(struct I2c *i2c) { if (old_api) { SDA_LO; SCL_HI; I2C_HALFBIT_DELAY(); SDA_HI; } else { i2c_sdaLo(I2C_DEV(i2c)); i2c_sclHi(I2C_DEV(i2c)); i2c_halfbitDelay(I2C_DEV(i2c)); i2c_sdaHi(I2C_DEV(i2c)); } }
INLINE bool i2c_bitbang_start_1(struct I2c *i2c) { bool ret; /* Clear all error, we restart */ i2c->errors &= ~(I2C_NO_ACK | I2C_ARB_LOST); if (old_api) { SDA_HI; SCL_HI; I2C_HALFBIT_DELAY(); SDA_LO; I2C_HALFBIT_DELAY(); ret = !SDA_IN; } else { i2c_sdaHi(I2C_DEV(i2c)); i2c_sclHi(I2C_DEV(i2c)); i2c_halfbitDelay(I2C_DEV(i2c)); i2c_sdaLo(I2C_DEV(i2c)); i2c_halfbitDelay(I2C_DEV(i2c)); ret = !i2c_sdaIn(I2C_DEV(i2c)); } return ret; }
void I2C_1_ISR(void) { irq_handler(I2C_DEV(1)); }
void I2C_0_ISR(void) { irq_handler(I2C_DEV(0)); }