void I2C_out(unsigned char j) //I2C Output
{
int n;
unsigned char d;
d = j;
for(n = 0; n < 8; n++)
{
if ( (d & 0x80u) == 0x80u)
{
PINS_DRV_SetPins(ports[SDA_pin], (1 << I2C[SDA]));
}
else
{
PINS_DRV_ClearPins(ports[SDA_pin], (1 << I2C[SDA]));
}
d = (d << 1);
PINS_DRV_ClearPins(ports[SCL_pin], (1 << I2C[SCL]));
vTaskDelay(CMD_DELAY);
PINS_DRV_SetPins(ports[SCL_pin], (1 << I2C[SCL]));
vTaskDelay(CMD_DELAY);
PINS_DRV_ClearPins(ports[SCL_pin], (1 << I2C[SCL]));
}
// ? setPinModeInput(&MODULE_P15,5,IfxPort_InputMode_pullUp);
PINS_DRV_SetPins(ports[SCL_pin], (1 << I2C[SCL]));
while (PINS_DRV_ReadPins(ports[SDA_pin]) == 1);
// ? setPinModeOutput(&MODULE_P15,5,IfxPort_OutputMode_pushPull,IfxPort_OutputIdx_general);
vTaskDelay(CMD_DELAY);
PINS_DRV_ClearPins(ports[SCL_pin], (1 << I2C[SCL]));
vTaskDelay(CMD_DELAY);
}