aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/Board/Temperature.c
diff options
context:
space:
mode:
Diffstat (limited to 'LUFA/Drivers/Board/Temperature.c')
-rw-r--r--LUFA/Drivers/Board/Temperature.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/LUFA/Drivers/Board/Temperature.c b/LUFA/Drivers/Board/Temperature.c
index ea12bf766..09d705085 100644
--- a/LUFA/Drivers/Board/Temperature.c
+++ b/LUFA/Drivers/Board/Temperature.c
@@ -47,14 +47,25 @@ int8_t Temperature_GetTemperature(void)
{
uint16_t Temp_ADC = ADC_GetChannelReading(ADC_REFERENCE_AVCC | ADC_RIGHT_ADJUSTED | TEMP_ADC_CHANNEL_MASK);
+ #if defined(__AVR32__)
+ if (Temp_ADC > Temperature_Lookup[0])
+ return TEMP_MIN_TEMP;
+
+ for (uint16_t Index = 0; Index < TEMP_TABLE_SIZE; Index++)
+ {
+ if (Temp_ADC > Temperature_Lookup[Index])
+ return (Index + TEMP_TABLE_OFFSET);
+ }
+ #elif defined(__AVR__)
if (Temp_ADC > pgm_read_word(&Temperature_Lookup[0]))
- return TEMP_MIN_TEMP;
+ return TEMP_MIN_TEMP;
for (uint16_t Index = 0; Index < TEMP_TABLE_SIZE; Index++)
{
if (Temp_ADC > pgm_read_word(&Temperature_Lookup[Index]))
return (Index + TEMP_TABLE_OFFSET);
}
+ #endif
return TEMP_MAX_TEMP;
}