From 30b13cc13baba55ac1610ad471ca737a6c817683 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Wed, 24 Jan 2018 18:27:44 -0700 Subject: Work around issues related to ADC interrupt auto-triggering itself. (was firing off 1000 times faster than desired, causing several issues) (now only executes when explicitly requested by the WDT) --- spaghetti-monster/fsm-wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'spaghetti-monster/fsm-wdt.c') diff --git a/spaghetti-monster/fsm-wdt.c b/spaghetti-monster/fsm-wdt.c index 777bef0..ff96ffb 100644 --- a/spaghetti-monster/fsm-wdt.c +++ b/spaghetti-monster/fsm-wdt.c @@ -107,9 +107,9 @@ ISR(WDT_vect) { // start a new ADC measurement every 4 ticks static uint8_t adc_trigger = 0; adc_trigger ++; - if (adc_trigger > 3) { - adc_trigger = 0; + if (0 == (adc_trigger & 3)) { ADCSRA |= (1 << ADSC) | (1 << ADIE); + adcint_enable = 1; } #endif } -- cgit v1.2.3