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();
	}
}
Ejemplo n.º 2
0
/******************************************************************************
 * 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();
    }
}
Ejemplo n.º 3
0
/******************************************************************************
 * 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);
}