eBoard ๐
โ โงโจ
Written for SIA 2017/2018
Main Page
Pages
Tutorials
Namespaces
Classes
Files
File List
File Members
eagle_Checks.h
Go to the documentation of this file.
1
#ifndef EAGLE_EBOARD_HELPLIB_CHECKS
2
#define EAGLE_EBOARD_HELPLIB_CHECKS
3
12
//=====================================================================================================================================================
13
// Checker
14
//=====================================================================================================================================================
15
16
/* you don't know... */
17
18
using namespace
eagle_impl
;
19
20
//-------------------------------------------------------------------------------------------------------------------------------------------------
21
// check index
22
//-------------------------------------------------------------------------------------------------------------------------------------------------
23
30
void
checkIdx
(
optVAL_t
idx);
31
33
void
checkIdx
(
optVAL_t
idx){
34
#if EBOARD_DEBUG_MODE > 0x0
35
assert(idx>=0x0 && idx <
PIN_MAX
);
//changed pins? change me! (didn't want to use macros)
36
assert(idx!=
PIN_BLUETOOTH_RX
&&idx!=
PIN_BLUETOOTH_TX
);
37
#endif
38
}
40
41
#if EBOARD_COPY_AND_PASTE > 0x0
42
#if EBOARD_CHECK_PINS_PWM > 0x0
43
44
//-------------------------------------------------------------------------------------------------------------------------------------------------
45
// count SET bit
46
//-------------------------------------------------------------------------------------------------------------------------------------------------
47
54
optVAL_t
countSetBits (
optVAL_t
x);
55
57
optVAL_t
countSetBits (
optVAL_t
x) {
58
optVAL_t
count;
//dont't want to overuse global space^^
59
for
(count = 0; x; count++)
60
x &= x - 1;
61
return
count;
62
}
64
#endif
65
66
67
#if EBOARD_CHECK_PINS > 0x0
68
69
//-------------------------------------------------------------------------------------------------------------------------------------------------
70
// variables
71
//-------------------------------------------------------------------------------------------------------------------------------------------------
72
78
#if defined(__AVR_ATmega328P__) && not defined(__AVR_ATmega2560__)
79
uint16_t pin_out = 0x0;
80
#elif defined(__AVR_ATmega2560__)
81
uint64_t pin_out = 0x0;
82
#endif
83
86
#if defined(__AVR_ATmega328P__) && not defined(__AVR_ATmega2560__)
87
uint16_t pin_in = 0x0;
88
#elif defined(__AVR_ATmega2560__)
89
uint64_t pin_in = 0x0;
90
#endif
91
92
//-------------------------------------------------------------------------------------------------------------------------------------------------
93
// pin check
94
//-------------------------------------------------------------------------------------------------------------------------------------------------
95
106
bool
checkPin(
optVAL_t
idx,
optVAL_t
mode = OUTPUT);
107
109
bool
checkPin(
optVAL_t
idx,
optVAL_t
mode){
110
checkIdx
(idx);
111
return
(mode == OUTPUT)? ((pin_out & (1<<idx))>0x0):((pin_in & (1<<idx))>0x0);
112
}
114
115
#endif
116
117
//-------------------------------------------------------------------------------------------------------------------------------------------------
118
// set pins
119
//-------------------------------------------------------------------------------------------------------------------------------------------------
120
126
void
setPin(
optVAL_t
idx,
optVAL_t
mode = OUTPUT);
127
129
void
setPin(
optVAL_t
idx,
optVAL_t
mode){
130
#if EBOARD_CHECK_PINS > 0x0
131
checkIdx
(idx);
132
if
(mode==OUTPUT) {
//possible to read from OUTPUT digital ... we won't do it
133
pin_out |= (1<<idx);
134
pin_in &= ~(1<<idx);
135
}
136
else
{
137
pin_in |= (1<<idx);
138
pin_out &= ~(1<<idx);
139
}
140
#endif
141
pinMode(idx, mode);
142
}
144
145
#endif
146
#endif
checkIdx
void checkIdx(optVAL_t idx)
[DEBUG_MODE] used to check if a pin index is in bounds
PIN_MAX
#define PIN_MAX
Definition:
eBoard.h:180
eagle_impl
this namespace contains all the don't use manually classes ;)
PIN_BLUETOOTH_RX
#define PIN_BLUETOOTH_RX
Definition:
eBoard.h:522
PIN_BLUETOOTH_TX
#define PIN_BLUETOOTH_TX
Definition:
eBoard.h:533
optVAL_t
int optVAL_t
Definition:
eBoard.h:132
eBoard
source
eagle_Checks.h
[WIP-BUILD]
EagleoutIce
03.05.2018 22:22:29