/*************************************************************************
Шлет один байт данных по шине I2C
  Входная переменная data – что шлем.
  Возвращает 0 при успешной записи, или 1 при ошибке.
*************************************************************************/
unsigned char twi_write( unsigned char data )
{          
    unsigned int   twst;
// шлет данные в устройство по адресу указанному в ранней процедуре START
TWDR = data;
            TWCR = (1<<TWINT)| (1<<TWEN);
            // Ожидание готовности
            while(!(TWCR & (1<<TWINT)));
// Чтение статусного регистра
twst = TW_STATUS &0xF8;
           if( twst != TW_MT_DATA_ACK) return 1;
           return 0;
}/* twi_write */