Speeduino
Loading...
Searching...
No Matches
trackedOutputPin.h
Go to the documentation of this file.
1#pragma once
2
3#include "../../atomic.h"
4
12template <class TPin>
14{
15public:
16
18 void setPin(uint8_t pin, uint8_t mode) noexcept {
19 _pin.setPin(pin, mode);
20 _pinState = LOW;
21 }
22
24 bool isValid(void) const {
25 return _pin.isValid();
26 }
27
29 bool isPinHigh(void) const noexcept {
30 return _pinState==HIGH;
31 }
32
34 bool isPinLow(void) const noexcept {
35 return !isPinHigh();
36 }
37
39 void setPinHigh(void) noexcept {
40 ATOMIC() {
41 _pin.setPinHigh();
42 _pinState = HIGH;
43 }
44 }
45
47 void setPinLow(void) noexcept {
48 ATOMIC() {
49 _pin.setPinLow();
50 _pinState = LOW;
51 }
52 }
53
54private:
55 TPin _pin;
56 bool _pinState = LOW;
57};
An output pin that tracks it's state (HIGH/LOW)
Definition trackedOutputPin.h:14
bool isPinHigh(void) const noexcept
Check if the pin is set high.
Definition trackedOutputPin.h:29
void setPin(uint8_t pin, uint8_t mode) noexcept
Set the input pin.
Definition trackedOutputPin.h:18
void setPinLow(void) noexcept
Set the pin low.
Definition trackedOutputPin.h:47
bool isValid(void) const
Is the pin set?
Definition trackedOutputPin.h:24
void setPinHigh(void) noexcept
Set the pin high.
Definition trackedOutputPin.h:39
bool isPinLow(void) const noexcept
Check if the pin is set low.
Definition trackedOutputPin.h:34