From d1f8589596a082a9a1a9e3d9c7d3c4180fe57e94 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Mon, 7 Sep 2020 00:27:22 -0600 Subject: added support for external thermal sensors in fsm-adc.c --- spaghetti-monster/fsm-adc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'spaghetti-monster/fsm-adc.c') diff --git a/spaghetti-monster/fsm-adc.c b/spaghetti-monster/fsm-adc.c index 4fc777b..91562a2 100644 --- a/spaghetti-monster/fsm-adc.c +++ b/spaghetti-monster/fsm-adc.c @@ -20,6 +20,14 @@ #ifndef FSM_ADC_C #define FSM_ADC_C +// override onboard temperature sensor definition, if relevant +#ifdef USE_EXTERNAL_TEMP_SENSOR +#ifdef ADMUX_THERM +#undef ADMUX_THERM +#endif +#define ADMUX_THERM ADMUX_THERM_EXTERNAL_SENSOR +#endif + static inline void set_admux_therm() { #if (ATTINY == 1634) @@ -335,7 +343,13 @@ static inline void ADC_temperature_handler() { // let the UI see the current temperature in C // Convert ADC units to Celsius (ish) + #ifndef USE_EXTERNAL_TEMP_SENSOR + // onboard sensor for attiny25/45/85/1634 temperature = (measurement>>1) + THERM_CAL_OFFSET + (int16_t)therm_cal_offset - 275; + #else + // external sensor + temperature = EXTERN_TEMP_FORMULA(measurement>>1) + THERM_CAL_OFFSET + (int16_t)therm_cal_offset; + #endif // how much has the temperature changed between now and a few seconds ago? int16_t diff; -- cgit v1.2.3