Struct embedded_controls::DebouncedInput
source · pub struct DebouncedInput<Switch: InputSwitch, Config: DebouncedInputConfig> { /* private fields */ }Expand description
Concrete implementation of debounced input.
Type Params
Switch - InputSwitch that provides input for debouncing.
Config - DebouncedInputConfig that provides configs for debouncing.
Example
ⓘ
debounced_input_config!(
SomeDebouncedInputConfig,
debounce_timer: MyElapsedTimer = MyElapsedTimer::new(20.millis())
);
type MyDebouncedInput<Switch> = DebouncedInput<Switch, SomeDebouncedInputConfig>;
let mut clock = SysClock::new();
let mut debounced_input = MyDebouncedInput::new(pin.into_active_low_switch());
loop {
match debounced_input.update(clock.now()).unwrap() {
DebouncedInputEvent::Low => do_something_when_low(),
DebouncedInputEvent::High => do_something_when_high(),
DebouncedInputEvent::Rise => do_something_upon_rise(),
DebouncedInputEvent::Fall => do_something_upon_fall(),
}
}Implementations§
source§impl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
impl<Switch: InputSwitch, Config: DebouncedInputConfig> DebouncedInput<Switch, Config>
sourcepub fn new(input_switch: Switch) -> Self
pub fn new(input_switch: Switch) -> Self
Creates a new DebouncedInput<Switch, Config> from a concrete Switch.
input_switch - an concrete instance of Switch.
sourcepub fn borrow_input_switch(&self) -> &Switch
pub fn borrow_input_switch(&self) -> &Switch
Borrow Switch.
sourcepub fn release_input_switch(self) -> Switch
pub fn release_input_switch(self) -> Switch
Consumes self and release Switch.