3 ms·
It's not too bad: keep an exponentially decaying average of the pin state, and use some hysteresis (different levels for on/off) on that value. You should be m
by kd5bjo 17y ago
It's not too bad: keep an exponentially decaying average of the pin state, and use some hysteresis (different levels for on/off) on that value. You should be most of the way there.
It'll take (worst case) 8 bits for the average and 1 for the current state. You could probably still get reasonable results with a 7-bit average so that the whole thing still fits in a byte of RAM.
- carterschonwald 17y agoIs it just me, or does this idiom sound very similar to one of the critiqued "incorrect" programming idioms in the recently analyzed breathalyzer code?
- kd5bjo 17y agoYes; it's almost identical. It's one of the simplest digital low-pass filters you can write. Basically, it does the same thing that an analog R/C filter would do (given sufficient precision and sampling rates). The issue with the breathalyzer code wasn't that the algorithm was incorrect, but that the programmer used the wrong algorithm.