diff options
| author | Keith Packard <keithp@keithp.com> | 2013-06-09 22:09:13 -0700 |
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2013-06-09 22:09:13 -0700 |
| commit | 988924b51980ad43e39bc4785a625ff25eb16449 (patch) | |
| tree | b0b3abecd78b1a3471244867cbbe9d3bbf1c7944 /src/core/ao_debounce.h | |
| parent | 72b6c699d355fcd41addb9919d846e63105b9db7 (diff) | |
altos: Add fast-timer API. Use for quadrature and button drivers
This splits the fast-timer portion out of the debounce helper code and
shares that with the quadrature driver which now uses it directly.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/core/ao_debounce.h')
| -rw-r--r-- | src/core/ao_debounce.h | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/core/ao_debounce.h b/src/core/ao_debounce.h index ebe290e1..19c620f5 100644 --- a/src/core/ao_debounce.h +++ b/src/core/ao_debounce.h @@ -22,13 +22,16 @@ struct ao_debounce { struct ao_debounce *next; /* time that pin value must be stable before accepting */ - int8_t hold; + uint8_t hold; /* last value reported to app; don't report it twice */ uint8_t value; + /* current value received from pins */ + uint8_t current; + /* current count of intervals pin value has been stable */ - int8_t count; + uint8_t count; /* This pin is running */ uint8_t running; @@ -40,6 +43,22 @@ struct ao_debounce { void (*_set)(struct ao_debounce *debounce, uint8_t value); }; +static inline void +ao_debounce_config(struct ao_debounce *debounce, + uint8_t (*_get)(struct ao_debounce *debounce), + void (*_set)(struct ao_debounce *debounce, uint8_t value), + uint8_t hold) +{ + debounce->next = 0; + debounce->hold = hold; + debounce->value = 0xff; + debounce->current = 0xff; + debounce->count = 0; + debounce->running = 0; + debounce->_get = _get; + debounce->_set = _set; +} + void _ao_debounce_start(struct ao_debounce *debounce); @@ -49,4 +68,7 @@ _ao_debounce_stop(struct ao_debounce *debounce); void ao_debounce_init(void); +void +ao_debounce_dump(void); + #endif /* _AO_DEBOUNCE_H_ */ |
