2 Copyright (C) Dean Camera, 2010.
4 dean [at] fourwalledcubicle [dot] com
5 www.fourwalledcubicle.com
10 bool TWI_StartTransmission(uint8_t SlaveAddress
, uint8_t TimeoutMS
)
14 bool BusCaptured
= false;
15 uint16_t TimeoutRemaining
;
17 TWCR
= ((1 << TWINT
) | (1 << TWSTA
) | (1 << TWEN
));
19 TimeoutRemaining
= (TimeoutMS
* 100);
20 while (TimeoutRemaining
-- && !(BusCaptured
))
22 if (TWCR
& (1 << TWINT
))
24 switch (TWSR
& TW_STATUS_MASK
)
31 TWCR
= ((1 << TWINT
) | (1 << TWSTA
) | (1 << TWEN
));
49 TWCR
= ((1 << TWINT
) | (1 << TWEN
));
51 TimeoutRemaining
= (TimeoutMS
* 100);
52 while (TimeoutRemaining
--)
54 if (TWCR
& (1 << TWINT
))
60 if (!(TimeoutRemaining
))
63 switch (TWSR
& TW_STATUS_MASK
)
69 TWCR
= ((1 << TWINT
) | (1 << TWSTO
) | (1 << TWEN
));