Чт апр 07, 2022 06:33:48
Чт апр 07, 2022 08:49:39
Чт апр 07, 2022 14:39:30
Пт апр 22, 2022 23:51:57
/*
* Выставляет на шину байт данных.
*/
void iic_ll_write(uint8_t d)
{
if (error != IIC_NO_ERROR) {
return;
}
TWDR = d;
TWCR = (1 << TWINT) | (1 << TWEN);
twi_wait(1 << TWINT);
if (_twsr_not(TWI_MT_DATA_ACK)) {
error |= IIC_ERROR_WRITE;
}
return;
}
/*
* \brief Ожидание завершения операции.
* \details
*/
void twi_wait(const uint8_t mask)
{
uint8_t c;
for (c = 0; (TWCR & mask) == 0; c++) {
if (c > IIC_TIMEOUT) {
error |= IIC_ERROR_WAIT;
break;
}
_delay_us(950);
}
}