~digitalcircuit/flashlight-firmware/anduril2_define_autolock

Viewing all changes in revision 573.

  • Committer: Selene Scriven
  • Date: 2020-09-27 09:26:01 UTC
  • Revision ID: bzr@toykeeper.net-20200927092601-e4wokla3f9lfel65
reworked nice_delay interrupt system and fixed some old issues:

- added set_state_deferred(), to avoid timing issues when changing state in loop()
  (fixes bug where first button press after version check was sometimes ignored,
   and similar issue after battcheck in simple UI)

- reduced chance of eating first button press after simple UI's battcheck,
  because it spent an extra second waiting after finishing the readout,
  and it wasn't intuitive for a single click to go from "post-battcheck darkness"
  to "off" during that period

- made interrupt_nice_delays() happen every time the state changes, instead of
  having nice_delay() explicitly check for state changes while it waits...
  (because the explicit check was buggy and used more ROM)

- made nice_delay_ms() abort immediately when interrupt is set, instead of waiting
  1ms before it even checks for the interrupt condition...  this makes aborted
  animations end a lot faster, with less visible flickering

- made blink_num() smaller and simpler, because changes listed above make it possible

- slightly changed order of events in main(), to accommodate for changes above

- fixed issue where battcheck would keep trying to blink out numbers while the user
  was holding 10H for voltage config mode

- ... and reduced ROM size by about 38 bytes

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: