mirror of https://github.com/meshcore-dev/MeshCore
8 changed files with 86 additions and 27 deletions
@ -0,0 +1,29 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
#include <Arduino.h> |
||||
|
|
||||
|
class RefCountedDigitalPin { |
||||
|
uint8_t _pin; |
||||
|
int8_t _claims = 0; |
||||
|
|
||||
|
public: |
||||
|
RefCountedDigitalPin(uint8_t pin): _pin(pin) { } |
||||
|
|
||||
|
void begin() { |
||||
|
pinMode(_pin, OUTPUT); |
||||
|
digitalWrite(_pin, LOW); // initial state
|
||||
|
} |
||||
|
|
||||
|
void claim() { |
||||
|
_claims++; |
||||
|
if (_claims > 0) { |
||||
|
digitalWrite(_pin, HIGH); |
||||
|
} |
||||
|
} |
||||
|
void release() { |
||||
|
_claims--; |
||||
|
if (_claims == 0) { |
||||
|
digitalWrite(_pin, LOW); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
Loading…
Reference in new issue