aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-adc.c
diff options
context:
space:
mode:
authorSelene ToyKeeper2020-09-07 00:27:22 -0600
committerSelene ToyKeeper2020-09-07 00:27:22 -0600
commitd1f8589596a082a9a1a9e3d9c7d3c4180fe57e94 (patch)
tree412f72dee8b9b21b50d19640efdcb75e3f5107dd /spaghetti-monster/fsm-adc.c
parentimported cfg and hwdef files for lume1 (diff)
downloadanduril-d1f8589596a082a9a1a9e3d9c7d3c4180fe57e94.tar.gz
anduril-d1f8589596a082a9a1a9e3d9c7d3c4180fe57e94.tar.bz2
anduril-d1f8589596a082a9a1a9e3d9c7d3c4180fe57e94.zip
added support for external thermal sensors in fsm-adc.c
Diffstat (limited to 'spaghetti-monster/fsm-adc.c')
-rw-r--r--spaghetti-monster/fsm-adc.c14
1 files changed, 14 insertions, 0 deletions
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;