5 void debounce_init(sample_state *ss,
6 bool initial, uint32_t threshold)
8 ss->candidate = initial;
9 ss->count = ss->count_reset = threshold;
12 bool *debounce(sample_state *ss, bool val)
14 if (val == ss->candidate)
15 ss->count = ss->count_reset;
16 else if (--ss->count == 0)
19 ss->count = ss->count_reset;
20 return &ss->candidate;