Skip to content

Commit 550c215

Browse files
committed
added the digitalPin class
a C++ wraper for the digital IO calls
1 parent 01443c3 commit 550c215

File tree

2 files changed

+97
-0
lines changed

2 files changed

+97
-0
lines changed

api/digitalPin.cpp

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#include <ArduinoAPI.h>
2+
#include <digitalPin.hpp>
3+
4+
digitalPin::digitalPin(uint8_t pin)
5+
: pin(pin)
6+
{
7+
sat = digitalRead(pin);
8+
}
9+
10+
digitalPin::digitalPin(const digitalPin& dig_pin)
11+
: pin(dig_pin.pin), sat(dig_pin.sat) {}
12+
13+
14+
int digitalPin::get()
15+
{
16+
return digitalRead(pin);
17+
}
18+
19+
void digitalPin::set(bool sat)
20+
{
21+
digitalWrite(pin, (PinStatus)sat);
22+
}
23+
24+
digitalPin::operator bool()
25+
{
26+
return get();
27+
}
28+
29+
digitalPin::operator int()
30+
{
31+
return get();
32+
}
33+
34+
digitalPin digitalPin::operator=(uint8_t pin)
35+
{
36+
return digitalPin(pin);
37+
}
38+
39+
bool digitalPin::toggle()
40+
{
41+
return digitalToggle(pin);
42+
}
43+
44+
void digitalPin::PWMset(int val)
45+
{
46+
analogWrite(pin, val);
47+
}
48+
49+
void digitalPin::operator()(bool v)
50+
{
51+
set(v);
52+
}
53+
54+
void digitalPin::operator()(int av)
55+
{
56+
PWMset(av);
57+
}

api/digitalPin.hpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#pragma once
2+
#ifndef DIG_PIN_H
3+
#define DIG_PIN_H
4+
#include <stdint.h>
5+
6+
/*enum class PIN_SAT : bool
7+
{
8+
pHIGH = 1,
9+
pLOW = 0
10+
};*/
11+
12+
class digitalPin
13+
{
14+
private:
15+
uint8_t pin;
16+
bool sat;
17+
void operator()(int av);
18+
public:
19+
digitalPin(uint8_t pin);
20+
digitalPin(const digitalPin& dig_pin);
21+
22+
__inline digitalPin(){}
23+
void set(bool sat);
24+
int get();
25+
bool toggle();
26+
void PWMset(int val);
27+
28+
void operator()(bool v);
29+
30+
digitalPin operator=(uint8_t pin);
31+
operator bool();
32+
operator int();
33+
34+
35+
__inline ~digitalPin(){}
36+
};
37+
38+
39+
40+
#endif

0 commit comments

Comments
 (0)