static void irom i2c_set_dc(uint8_t SDA, uint8_t SCL) { SDA &= 0x01; SCL &= 0x01; m_nLastSDA = SDA; m_nLastSCL = SCL; if ((0 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_LOW_SCL_LOW(); } else if ((0 == SDA) && (1 == SCL)) { I2C_MASTER_SDA_LOW_SCL_HIGH(); } else if ((1 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_HIGH_SCL_LOW(); } else { I2C_MASTER_SDA_HIGH_SCL_HIGH(); } }
/****************************************************************************** * FunctionName : i2c_master_setDC * Description : Internal used function - * set i2c SDA and SCL bit value for half clk cycle * Parameters : uint8 SDA * uint8 SCL * Returns : NONE *******************************************************************************/ LOCAL void ICACHE_FLASH_ATTR i2c_master_setDC(uint8 SDA, uint8 SCL) { SDA &= 0x01; SCL &= 0x01; m_nLastSDA = SDA; m_nLastSCL = SCL; if ((0 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_LOW_SCL_LOW(); } else if ((0 == SDA) && (1 == SCL)) { I2C_MASTER_SDA_LOW_SCL_HIGH(); } else if ((1 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_HIGH_SCL_LOW(); } else { I2C_MASTER_SDA_HIGH_SCL_HIGH(); } }
/****************************************************************************** * FunctionName : i2c_master_setDC * Description : Internal used function - * set i2c SDA and SCL bit value for half clk cycle * Parameters : uint8 SDA * uint8 SCL * Returns : NONE *******************************************************************************/ LOCAL void ICACHE_FLASH_ATTR i2c_master_setDC(uint8 SDA, uint8 SCL) { SDA &= 0x01; SCL &= 0x01; m_nLastSDA = SDA; m_nLastSCL = SCL; if ((0 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_LOW_SCL_LOW(); } else if ((0 == SDA) && (1 == SCL)) { do { I2C_MASTER_SDA_LOW_SCL_HIGH(); } while (GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO)) == 0); } else if ((1 == SDA) && (0 == SCL)) { I2C_MASTER_SDA_HIGH_SCL_LOW(); } else { do { I2C_MASTER_SDA_HIGH_SCL_HIGH(); } while (GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO)) == 0); } i2c_master_wait(I2C_DELAY); }