2 Copyright (C) Dean Camera, 2010.
4 dean [at] fourwalledcubicle [dot] com
10 bool TWI_StartTransmission(const uint8_t SlaveAddress
,
11 const uint8_t TimeoutMS
)
15 bool BusCaptured
= false;
16 uint16_t TimeoutRemaining
;
18 TWCR
= ((1 << TWINT
) | (1 << TWSTA
) | (1 << TWEN
));
20 TimeoutRemaining
= (TimeoutMS
* 100);
21 while (TimeoutRemaining
-- && !(BusCaptured
))
23 if (TWCR
& (1 << TWINT
))
25 switch (TWSR
& TW_STATUS_MASK
)
32 TWCR
= ((1 << TWINT
) | (1 << TWSTA
) | (1 << TWEN
));
50 TWCR
= ((1 << TWINT
) | (1 << TWEN
));
52 TimeoutRemaining
= (TimeoutMS
* 100);
53 while (TimeoutRemaining
--)
55 if (TWCR
& (1 << TWINT
))
61 if (!(TimeoutRemaining
))
64 switch (TWSR
& TW_STATUS_MASK
)
70 TWCR
= ((1 << TWINT
) | (1 << TWSTO
) | (1 << TWEN
));