semf
gpio.h
Go to the documentation of this file.
1
10#ifndef SEMF_SYSTEM_GPIO_H_
11#define SEMF_SYSTEM_GPIO_H_
12
15#include <cstdint>
16
17namespace semf
18{
22class Gpio
23{
24public:
27 {
28 Input = 0, //<! Pin is defined as digital input.
29 OutputPushpull, //<! Pin in defined as digital output in pushpull mode.
30 OutputOpendrain //<! Pin is defined as digital output in open drain mode.
31 };
32
35 {
36 NoPullupPulldown = 0, //<! No pullup and no pulldown.
37 Pullup, //<! Pullup is enabled, pulldown is disabled.
38 Pulldown //<! Pulldown is enbaled, pullup is disabled.
39 };
40
41 virtual ~Gpio() = default;
42
44 virtual void set() = 0;
46 virtual void reset() = 0;
51 virtual bool state() const = 0;
56 virtual Direction direction() const = 0;
61 virtual void setDirection(Direction direction) = 0;
66 virtual PullUpPullDown pullUpPullDown() const = 0;
72
75};
76} /* namespace semf */
77#endif /* SEMF_SYSTEM_GPIO_H_ */
Interface class for using a GPIO pin of the microcontroller.
Definition: gpio.h:23
virtual void set()=0
virtual Direction direction() const =0
Returns the direction setting of a GPIO.
Signal< Error > error
Definition: gpio.h:74
Direction
Definition: gpio.h:27
@ OutputOpendrain
Definition: gpio.h:30
@ Input
Definition: gpio.h:28
@ OutputPushpull
Definition: gpio.h:29
virtual PullUpPullDown pullUpPullDown() const =0
Returns the pullup or pulldown setting of a GPIO.
virtual bool state() const =0
Returns the current state of the pin.
virtual void setPullUpPullDown(PullUpPullDown pullUpPullDown)=0
Sets the pullup or pulldown setting of a GPIO.
virtual void reset()=0
PullUpPullDown
Definition: gpio.h:35
@ NoPullupPulldown
Definition: gpio.h:36
@ Pulldown
Definition: gpio.h:38
@ Pullup
Definition: gpio.h:37
virtual void setDirection(Direction direction)=0
Sets the direction of a GPIO.
virtual ~Gpio()=default
Signal for lightweight signal/slot implementation. One signal can be connected to multiple slots and ...
Definition: signal.h:41