-
Notifications
You must be signed in to change notification settings - Fork 0
/
utility.cpp
37 lines (30 loc) · 1.08 KB
/
utility.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// utility.cpp
// github.com/jacoblukewood/ems
// Copyright 2020 Jacob Wood
#include "utility.h"
namespace utility {
bool IntervalPassed(unsigned long const start_time, unsigned int const interval) {
return (((unsigned long)(millis() - start_time)) >= interval); // TODO: Probably could be cleaned up. Need to test to clean.
}
unsigned long TimePassed(unsigned long const start_time) {
return ((unsigned long)(millis() - start_time));
}
int PinMode(uint8_t pin) {
if (pin >= NUM_DIGITAL_PINS)
return (-1);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *reg = portModeRegister(port);
if (*reg & bit)
return (OUTPUT);
volatile uint8_t *out = portOutputRegister(port);
return ((*out & bit) ? INPUT_PULLUP : INPUT);
}
bool IsDigitalInputHigh(uint8_t pin) {
if (PinMode(pin) == INPUT_PULLUP) {
return !digitalRead(pin);
} else {
return digitalRead(pin);
}
}
} // namespace utility