ELEC-C7222
Libraries for ELEC C7222 Course Work
Loading...
Searching...
No Matches
button.hpp
Go to the documentation of this file.
1
10#ifndef C7222_BUTTON_HPP
11#define C7222_BUTTON_HPP
12
13#include <cstdint>
14#include "gpio.hpp"
15
20namespace c7222 {
21
43class Button : public GpioIn {
44 public:
51 explicit Button(uint32_t pin, GpioPullMode pull = GpioPullMode::PullUp);
55 virtual ~Button() = default;
56
60 void Configure(const Config& config) = delete;
61
71
75 bool IsPressed() const;
76
77};
78
79} // namespace c7222
80
81#endif // C7222_BUTTON_HPP
Input-only GPIO wrapper intended for push-buttons.
Definition button.hpp:43
void Configure(const Config &config)=delete
Disallow generic reconfiguration.
bool IsPressed() const
Return true if the button is currently pressed (active-low).
Button(uint32_t pin, GpioPullMode pull=GpioPullMode::PullUp)
Construct a button pin in input mode.
void Reconfigure(GpioPullMode pull=GpioPullMode::PullUp)
Reconfigure the button pull mode.
virtual ~Button()=default
Destructor unregisters the button from the platform map.
GPIO input-only wrapper with pull configuration and optional IRQ.
Definition gpio.hpp:129
GPIO abstraction split into explicit input and output classes.
C7222 course abstractions namespace.
Definition ble.hpp:20
GpioPullMode
GPIO pull configuration.
Definition gpio.hpp:65
@ PullUp
Enable pull-up.
Configuration structure for input GPIO setup.
Definition gpio.hpp:134