-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChannelClass.cpp
66 lines (55 loc) · 1 KB
/
ChannelClass.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "ChannelClass.h"
#include "PinChangeInt.h"
#define DEADZONE 16
Channel::Channel(int pin, int low, int mid, int high)
{
_pin = pin;
_low = low;
_mid = mid;
_high = high;
}
void Channel::begin()
{
pinMode(_pin, INPUT_PULLUP);
}
void Channel::takeReading1(unsigned long timer)
{
_time1 = timer;
}
void Channel::takeReading2(unsigned long timer)
{
_time2 = timer;
_reading = _time2 - _time1;
}
int Channel::reading()
{
if (_reading >= 2200 || _reading <= 900){
return 0;
}
else if (_reading-_mid <= DEADZONE && _reading-_mid >= -DEADZONE){
return 0;
}
else{
if (_reading-_mid <= -DEADZONE) {
return _reading-_mid+DEADZONE;
}
else if (_reading-_mid >= DEADZONE) {
return _reading-_mid-DEADZONE;
}
}
}
int Channel::returnPin()
{
return _pin;
}
int Channel::throttleOut()
{
if (_pin==10) {
if (_reading >= _high+10 || _reading <= _low-10){
return 0;
}
else {
return(map(_reading,_low,_high,700,1900));
}
}
}