2      Copyright (C) Dean Camera, 2010. 
   4   dean [at] fourwalledcubicle [dot] com 
   5       www.fourwalledcubicle.com 
  10 bool TWI_StartTransmission(uint8_t SlaveAddress
) 
  14                 uint8_t IterationsRemaining 
= 50; 
  15                 bool    BusCaptured 
= false; 
  17                 while (IterationsRemaining
-- && !BusCaptured
) 
  19                         TWCR 
= ((1 << TWINT
) | (1 << TWSTA
) | (1 << TWEN
));      
  20                         while (!(TWCR 
& (1 << TWINT
))); 
  22                         switch (TWSR 
& TW_STATUS_MASK
) 
  39                 TWCR 
= ((1 << TWINT
) | (1 << TWEN
)); 
  40                 while (!(TWCR 
& (1 << TWINT
))); 
  42                 GPIOR0 
= (TWSR 
& TW_STATUS_MASK
); 
  44                 switch (TWSR 
& TW_STATUS_MASK
) 
  50                                 TWI_StopTransmission();