| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
(also, now treating smoothed ADC values as 11-bit, with the lowest 5 bits chopped off to eliminate noise)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
samples
(because, for some reason, even though 64 samples is plenty in a test program,
it ends up being extremely erratic when used inside Anduril... and I'm not sure why)
also, use 15-bit ADC values instead of 16 bits, in the temperature logic
(to help protect against integer overflows)
... but this code still doesn't work well. It regulates down *very* fast, and then
gradually rises until the next extra-fast drop-down. :(
... also, tempcheck mode sometimes changes by 4-5 C between readouts, which is worrisome.
... and factory reset is still broken.
|
| |
|
|
|
|
| |
(ceiling value was all wrong, and the response magnitude was way too big)
(also, temperatures here are unsigned, since freezing is about 270 in ADC units)
|
| |
|
|
| |
... doesn't work well, but I'm saving it so I can experiment with other methods and maybe revert back later.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
changed so far:
- removed LVP lowpass and thermal regulation lowpass logic; it's probably redundant now
- slowed ADC deferred logic timing to 4X per second instead of 16X,
because there doesn't seem to be much reason to do it any faster
- reduced thermal event rate-limit to just 1 second, for more responsive regulation
- added "EV_temperature_okay" signal, to help stop adjustments at an appropriate time instead of going to far
- sped up sleep LVP to one measurement every 8 seconds instead of 16,
to help the aux LEDs respond to voltage changes faster
(effect on standby time is negligible)
- make sure the WDT doesn't set the ADC channel or counter... except in standby mode
|
| |
|
|
| |
back to 64
|
| |
|
|
| |
sum-of-discrete-window method
|
| |
|
|
|
| |
(keeps stable values within ~0.46 to ~0.54 range, so truncated result has no noise)
|
| |
|
|
|
|
| |
eliminate noise and maybe increase precision
(thermal code still needs to be rewritten though)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
- beacon mode off (suggested by Agro)
- tenclick shortcut on with thermal regulation off
|
| | |
|
| |
|
|
| |
of the previous attempt
|
| |
|
|
|
|
|
| |
match production units
(also made the factor configurable per build target)
|
| | |
|
| |\ |
|
| | |\
| |/
|/|
| | |
improvements
|
| | |
| |
| |
| | |
size! :)
|
| |\ \ |
|
| | | |
| | |
| | |
| | |
| | | |
(by enabling the PCINT slightly sooner, before setting its "handled" flag)
|
| |\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- fixed occasional short/aborted frames in aux LED sleep animation
- fixed rare case of bogus voltage and/or temperature values
- fixed issue where nice_delay_ms() didn't work in setup()
- fixed theoretical possibility of extra-noisy buttons causing a hang
- fixed reboot loop which happened after any crashes
- fixed issue where button press in sleep mode could occasionally crash
(but the issue may have been created by this branch before being fixed by it)
- reduced occasional missed button events while asleep
(still seems to happen but not nearly as much)
Also does some other things:
- cleans up the ADC code significantly
- cleans up the WDT code
- adds a voltage stabilizer/lowpass option (enabled on t1634 builds)
- greatly reduces time spent per interrupt,
which might make a future PWM-DSM technique possible
- moves most interrupt-handling logic to a non-critical code path,
deferring that code until timing doesn't matter as much
- sped up button state measurements
- very slightly reduces power used in sleep mode
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
potential crashes
(even though I just fixed the only known bug which could trigger an unintentional reboot)
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
fixed bug where ticks_since_last could have the wrong value sometimes,
reduced power use in sleep mode very slightly by skipping button-handling code while asleep
|
| | | |
| | |
| | |
| | |
| | | |
(by turning off PCINT when the light is awake)
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
(but only on attiny1634 devices, since it costs a bit of space and isn't strictly necessary)
|
| | | |
| | |
| | |
| | |
| | |
| | | |
(also fixed issue where nice_delay_ms() was aborted during setup())
(and adjusted the timing to make factory reset similar to the speed it was before this change)
|
| | | |
| | |
| | |
| | |
| | |
| | | |
... but factory reset's auto-calibrate still doesn't get the right values for some reason
(manual calibration works, but not auto)
|
| | | |
| | |
| | |
| | | |
functions
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| |/ / |
|
| | | |
|
| | |\
| |/
|/| |
|
| |\ \ |
|
| | | | |
|
| | |\ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
and made the floor slightly lower (almost as low as level 1 of 5)
because this light doesn't run hot enough for the previous limit to make sense
(was roughly step 2.9 of 5)
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
ramp-down if button is held too long at ceiling
(also removed muggle mode from a couple build targets because it doesn't fit, not enough ROM)
|
| | | | | |
|
| | | | | |
|