diff --git a/LUFA.pnproj b/LUFA.pnproj
index 4d7c3a9830..6e9c49e371 100644
--- a/LUFA.pnproj
+++ b/LUFA.pnproj
@@ -1 +1 @@
-
F_CPU / (16 + 2 * BitLength + 4 ^ Prescale). + * + * \note The value of the \c BitLength parameter should not be set below 10 or invalid bus conditions may + * occur, as indicated in the AVR8 microcontroller datasheet. + * + * \param[in] Prescale Prescaler to use when determining the bus frequency, a \c TWI_BIT_PRESCALE_* value. + * \param[in] BitLength Length of the bits sent on the bus. */ - static inline void TWI_Init(void) ATTR_ALWAYS_INLINE; - static inline void TWI_Init(void) + static inline void TWI_Init(const uint8_t Prescale, const uint8_t BitLength) ATTR_ALWAYS_INLINE; + static inline void TWI_Init(const uint8_t Prescale, const uint8_t BitLength) { - TWCR |= (1 << TWEN); + TWCR |= (1 << TWEN); + TWSR = Prescale; + TWBR = BitLength; } /** Turns off the TWI driver hardware. If this is called, any further TWI operations will require a call to diff --git a/LUFA/ManPages/ChangeLog.txt b/LUFA/ManPages/ChangeLog.txt index 04ce841d37..3159f2c3db 100644 --- a/LUFA/ManPages/ChangeLog.txt +++ b/LUFA/ManPages/ChangeLog.txt @@ -22,7 +22,8 @@ * - Added new MAX() and MIN() convenience macros * - Added new Serial_SendData() function to the Serial driver * - Added board driver support for the Sparkfun ATMEGA8U2 breakout board - * - Started internal restructuring for eventual multiple architecture ports + * - Added TWI baud rate prescaler and bit length parameters to the TWI_Init() function (thanks to Thomas Herlinghaus) + * - Internal restructuring for eventual multiple architecture ports * - Added start of an AVR32 UC3B architecture port (currently incomplete/experimental) * - Library Applications: * - Added ability to write protect Mass Storage disk write operations from the host OS diff --git a/Projects/MIDIToneGenerator/makefile b/Projects/MIDIToneGenerator/makefile index 6e1a2a32b4..4ae7862213 100644 --- a/Projects/MIDIToneGenerator/makefile +++ b/Projects/MIDIToneGenerator/makefile @@ -116,7 +116,7 @@ OBJDIR = . # Path to the LUFA library -LUFA_PATH = ../../ +LUFA_PATH = ../.. # LUFA library compile-time options and predefined tokens diff --git a/Projects/TempDataLogger/TempDataLogger.c b/Projects/TempDataLogger/TempDataLogger.c index ecea2fb1a6..cd511f4f74 100644 --- a/Projects/TempDataLogger/TempDataLogger.c +++ b/Projects/TempDataLogger/TempDataLogger.c @@ -151,10 +151,6 @@ int main(void) LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY); sei(); - /* Discard the first sample from the temperature sensor, as it is generally incorrect */ - volatile uint8_t Dummy = Temperature_GetTemperature(); - (void)Dummy; - for (;;) { MS_Device_USBTask(&Disk_MS_Interface); @@ -204,7 +200,7 @@ void SetupHardware(void) Temperature_Init(); Dataflash_Init(); USB_Init(); - TWI_Init(); + TWI_Init(TWI_BIT_PRESCALE_4, (F_CPU / 4 / 50000) / 2); /* 500ms logging interval timer configuration */ OCR1A = (((F_CPU / 1024) / 2) - 1);