aboutsummaryrefslogtreecommitdiff
path: root/spaghetti-monster/fsm-events.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-11-11Fixed the corner case of a button release when the previous state was ↵Selene ToyKeeper1-1/+1
already released.
2018-11-11Several fixes...Selene ToyKeeper1-4/+9
- Made momentary+lockout modes smaller and work better. - Fixed buggy timing on hold events; made ticks_since_last_event reset when it should. - Reduced ROM size by caching volatile ticks_since_last_event sometimes. - Swapped what the top Event bit means, because it makes event handlers easier to write. - Made the maximum click event keep triggering if user keeps pressing, instead of dropping everything after the limit.
2018-11-11Rewrote the event system to use a single byte for each event instead of an ↵Selene ToyKeeper1-67/+29
array of actions. Not thoroughly tested yet, not done yet, have only updated Anduril to fit, and only partially.
2018-09-07fixed bug: clicking MAX_CLICKS+1 times and holding the final click would ↵Selene ToyKeeper1-4/+8
hang the MCU (also, reduced ROM size)
2018-09-01Fixed bug introduced in trunk r211.1.9, where Anduril's goodnight mode ↵Selene ToyKeeper1-2/+6
didn't work sometimes. The problem was that goodnight's EV_enter was executing before battcheck's loop() finished. This meant battcheck's exit code would turn the emitter off right after goodnight's init set it to the desired level.
2018-08-22Reduced ROM size by making successive nice_delay_ms calls collapse any time ↵Selene ToyKeeper1-1/+7
the user completes an input sequence. All nice delays then get aborted until the next trip through the main() loop. Eliminates the need to wrap nice_delay_ms() calls and handle the exit condition. Also eliminates the risk of getting the UI out of sync with button events.
2017-10-01Use either full or quarter speed in nice delays, based on output level.Selene ToyKeeper1-1/+19
This fixes issues with some blinky modes being audible (particularly biking and lightning modes), without sacrificing the power savings for other blinkies (like beacon and battcheck).
2017-09-26Added dynamic underclocking to FSM, instead of doing it manually in Anduril.Selene ToyKeeper1-0/+30
2017-09-03Got the 4th PWM channel to work, ish. (channel 4 is inverted though)Selene ToyKeeper1-4/+0
Moved go_to_suspend thing into main() instead of making each UI handle that during loop(). Made default_state() optional. Fixed bug where battcheck and other number readouts could interfere with the state which interrupted them. (they would sometimes turn the LED off after the new state had already started) Updated darkhorse's moon levels to match new ramp on D4 hardware.
2017-08-28Fixed a crash when user presses the button more times than the UI supports.Selene ToyKeeper1-1/+1
(need to leave room for a trailing 0 in the array, oops)
2017-08-26Added beacons/strobes to DarkHorse.Selene ToyKeeper1-1/+6
Added a way to explicitly cancel the current "nice" delay without changing state.
2017-08-25Added battcheck mode to ramping-ui. It's bigger than I had hoped. :(Selene ToyKeeper1-0/+12
Added fsm-misc.*, which currently only has interruptible blink functions in it. (for blinking out numbers and such)
2017-08-24Added loop() to API, executes constantly.Selene ToyKeeper1-0/+23
Added nice_delay_ms() to process events while waiting, and abort on state change. Converted ramping-ui strobe to smoothly variable with party and tactical modes.
2017-08-19Completely reorganized SpaghettiMonster code into smaller logical pieces: ↵Selene ToyKeeper1-0/+137
fsm-*.c and fsm-*.h.