aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-pcint.h
diff options
context:
space:
mode:
authorSelene ToyKeeper2019-11-14 01:52:50 -0700
committerSelene ToyKeeper2019-11-14 01:52:50 -0700
commit8b59e880614455bd7bc7d8595de847dd6fe9b5b2 (patch)
treea7426296b9fa1471ba2841eba0415bbfaed3e5c7 /spaghetti-monster/fsm-pcint.h
parentfixed some compile issues related to delay_4ms() (diff)
downloadanduril-8b59e880614455bd7bc7d8595de847dd6fe9b5b2.tar.gz
anduril-8b59e880614455bd7bc7d8595de847dd6fe9b5b2.tar.bz2
anduril-8b59e880614455bd7bc7d8595de847dd6fe9b5b2.zip
refactored how interrupts work...
set a flag and return immediately, then handle the actual logic later during a less-critical code path Enables smarter responses to standby wakeups. Seems to fix missed button presses during standby, and most of the too-fast sleep ticks. Also eliminated waits from button state measurement, so it can happen easier during standby. (also eliminates the chance of an infinite loop on extra-noisy hardware) Also might improve timing-sensitive interrupts like attiny85 PWM channel 4, or a PWM-DSM hybrid technique I'd like to try. BUT this change also appears to break the thermal sensor, so that needs to be fixed.
Diffstat (limited to '')
-rw-r--r--spaghetti-monster/fsm-pcint.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/spaghetti-monster/fsm-pcint.h b/spaghetti-monster/fsm-pcint.h
index ec3ae4b..a7f3733 100644
--- a/spaghetti-monster/fsm-pcint.h
+++ b/spaghetti-monster/fsm-pcint.h
@@ -20,6 +20,7 @@
#ifndef FSM_PCINT_H
#define FSM_PCINT_H
+volatile uint8_t irq_pcint = 0; // pin change interrupt happened?
//static volatile uint8_t button_was_pressed;
#define BP_SAMPLES 32
volatile uint8_t button_last_state;