diff options
| author | Gabriel Hart | 2022-04-11 09:29:31 -0500 |
|---|---|---|
| committer | Gabriel Hart | 2022-04-11 09:29:31 -0500 |
| commit | 4d558992d4cc6434ec3ee94d535cd4b61a92a128 (patch) | |
| tree | 8ffc3723da4657518aa340dca5fdd7ef7fc8ad28 /spaghetti-monster/fsm-adc.c | |
| parent | Tweak a few MT35Mini settings (diff) | |
| parent | revert spurious change to version.h (diff) | |
| download | anduril-4d558992d4cc6434ec3ee94d535cd4b61a92a128.tar.gz anduril-4d558992d4cc6434ec3ee94d535cd4b61a92a128.tar.bz2 anduril-4d558992d4cc6434ec3ee94d535cd4b61a92a128.zip | |
Merge from TK's main A2 branch thru Rev 647 which includes several patches for the Sofirn SP10 Pro after TK merge that branch in
Diffstat (limited to 'spaghetti-monster/fsm-adc.c')
| -rw-r--r-- | spaghetti-monster/fsm-adc.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/spaghetti-monster/fsm-adc.c b/spaghetti-monster/fsm-adc.c index 975d12e..c5401ea 100644 --- a/spaghetti-monster/fsm-adc.c +++ b/spaghetti-monster/fsm-adc.c @@ -306,10 +306,28 @@ static inline void ADC_voltage_handler() { uint16_t measurement; // latest ADC value - if (adc_reset) { // while asleep, or just after waking, don't lowpass + if (adc_reset) { // just after waking, don't lowpass measurement = adc_raw[0]; - adc_smooth[0] = measurement; // no lowpass while asleep + adc_smooth[0] = measurement; // no lowpass, just use the latest value } + #ifdef USE_LOWPASS_WHILE_ASLEEP + else if (go_to_standby) { // weaker lowpass while asleep + // occasionally the aux LED color can oscillate during standby, + // while using "voltage" mode ... so try to reduce the oscillation + uint16_t m = adc_raw[0]; + uint16_t v = adc_smooth[0]; + #if 0 + // fixed-rate lowpass, slow, more stable but takes longer to settle + if (m < v) { v -= 64; } + if (m > v) { v += 64; } + #else + // weighted lowpass, faster but less stable + v = (m>>1) + (v>>1); + #endif + adc_smooth[0] = v; + measurement = v; + } + #endif else measurement = adc_smooth[0]; // values stair-step between intervals of 64, with random variations |
