X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..d41cd9a41aca81eaa21e65e6c53672fe604fa3d5:/LUFA/Drivers/Peripheral/TWI.c diff --git a/LUFA/Drivers/Peripheral/TWI.c b/LUFA/Drivers/Peripheral/TWI.c index bd6e85384..a0fe44bc1 100644 --- a/LUFA/Drivers/Peripheral/TWI.c +++ b/LUFA/Drivers/Peripheral/TWI.c @@ -1,20 +1,21 @@ /* Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com + www.lufa-lib.org */ #include "TWI.h" -bool TWI_StartTransmission(uint8_t SlaveAddress, uint8_t TimeoutMS) +bool TWI_StartTransmission(const uint8_t SlaveAddress, + const uint8_t TimeoutMS) { for (;;) { bool BusCaptured = false; uint16_t TimeoutRemaining; - TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN)); + TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN)); TimeoutRemaining = (TimeoutMS * 100); while (TimeoutRemaining-- && !(BusCaptured)) @@ -28,35 +29,35 @@ bool TWI_StartTransmission(uint8_t SlaveAddress, uint8_t TimeoutMS) BusCaptured = true; break; case TW_MT_ARB_LOST: - TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN)); + TWCR = ((1 << TWINT) | (1 << TWSTA) | (1 << TWEN)); continue; default: TWCR = (1 << TWEN); return false; } } - + _delay_us(10); } - + if (!(BusCaptured)) { TWCR = (1 << TWEN); return false; } - + TWDR = SlaveAddress; TWCR = ((1 << TWINT) | (1 << TWEN)); - + TimeoutRemaining = (TimeoutMS * 100); while (TimeoutRemaining--) { if (TWCR & (1 << TWINT)) break; - + _delay_us(10); } - + if (!(TimeoutRemaining)) return false; @@ -71,3 +72,4 @@ bool TWI_StartTransmission(uint8_t SlaveAddress, uint8_t TimeoutMS) } } } +