Skip to content

Commit cf53821

Browse files
committed
[ATN] Add commonly used function
check if they interfere with math.h or other headers
1 parent d5ad836 commit cf53821

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed

Diff for: api/Common.h

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
#ifdef __cplusplus
2+
extern "C"{
3+
#endif
4+
5+
void yield(void);
6+
7+
typedef enum {
8+
LOW = 0x0,
9+
HIGH = 0x1,
10+
} _pinStatus;
11+
12+
typedef enum {
13+
INPUT = 0x0,
14+
OUTPUT = 0x1,
15+
INPUT_PULLUP = 0x2,
16+
INPUT_PULLDOWN = 0x3,
17+
} _pinMode;
18+
19+
#define PI 3.1415926535897932384626433832795
20+
#define HALF_PI 1.5707963267948966192313216916398
21+
#define TWO_PI 6.283185307179586476925286766559
22+
#define DEG_TO_RAD 0.017453292519943295769236907684886
23+
#define RAD_TO_DEG 57.295779513082320876798154814105
24+
#define EULER 2.718281828459045235360287471352
25+
26+
#define SERIAL 0x0
27+
#define DISPLAY 0x1
28+
29+
typedef enum {
30+
CHANGE = 1,
31+
FALLING = 2,
32+
RISING = 3,
33+
} _interruptMode;
34+
35+
typedef enum {
36+
LSBFIRST = 0,
37+
MSBFIRST = 1,
38+
} _spi_bitFirst_mode;
39+
40+
#ifndef min
41+
#define min(a,b) ((a)<(b)?(a):(b))
42+
#endif
43+
44+
#ifndef max
45+
#define max(a,b) ((a)>(b)?(a):(b))
46+
#endif
47+
48+
#ifndef abs
49+
#define abs(x) ((x)>0?(x):-(x))
50+
#endif
51+
52+
#ifndef constrain
53+
#define constrain(amt,low,high) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
54+
#endif
55+
56+
#ifndef round
57+
#define round(x) ((x)>=0?(long)((x)+0.5):(long)((x)-0.5))
58+
#endif
59+
60+
#ifndef radians
61+
#define radians(deg) ((deg)*DEG_TO_RAD)
62+
#endif
63+
64+
#ifndef degrees
65+
#define degrees(rad) ((rad)*RAD_TO_DEG)
66+
#endif
67+
68+
#ifndef sq
69+
#define sq(x) ((x)*(x))
70+
#endif
71+
72+
// interrupts() / noInterrupts() must be defined by the core
73+
74+
#define lowByte(w) ((uint8_t) ((w) & 0xff))
75+
#define highByte(w) ((uint8_t) ((w) >> 8))
76+
77+
#define bitRead(value, bit) (((value) >> (bit)) & 0x01)
78+
#define bitSet(value, bit) ((value) |= (1UL << (bit)))
79+
#define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
80+
#define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
81+
82+
typedef unsigned int word;
83+
84+
#ifndef bit
85+
#define bit(b) (1UL << (b))
86+
#endif
87+
88+
typedef bool boolean;
89+
typedef uint8_t byte;
90+
91+
void init(void);
92+
void initVariant(void);
93+
94+
int atexit(void (*func)()) __attribute__((weak));
95+
int main() __attribute__((weak));
96+
97+
void pinMode(uint8_t pinNumber, _pinMode pinMode);
98+
void digitalWrite(uint8_t pinNumber, _pinStatus status);
99+
_pinStatus digitalRead(uint8_t pinNumber);
100+
int analogRead(uint8_t pinNumber);
101+
void analogReference(uint8_t mode);
102+
void analogWrite(uint8_t pinNumber, int value);
103+
104+
unsigned long millis(void);
105+
unsigned long micros(void);
106+
void delay(unsigned long);
107+
void delayMicroseconds(unsigned int us);
108+
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout);
109+
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout);
110+
111+
void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
112+
uint8_t shiftIn(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
113+
114+
void attachInterrupt(uint8_t interruptNumber, void (*callback)(void), _interruptMode mode);
115+
void detachInterrupt(uint8_t interruptNumber);
116+
117+
void setup(void);
118+
void loop(void);
119+
120+
#ifdef __cplusplus
121+
} // extern "C"
122+
#endif
123+
124+
#ifdef __cplusplus
125+
126+
/* C++ prototypes */
127+
uint16_t makeWord(uint16_t w);
128+
uint16_t makeWord(byte h, byte l);
129+
130+
#define word(...) makeWord(__VA_ARGS__)
131+
132+
unsigned long pulseIn(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
133+
unsigned long pulseInLong(uint8_t pin, uint8_t state, unsigned long timeout = 1000000L);
134+
135+
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
136+
void noTone(uint8_t _pin);
137+
138+
// WMath prototypes
139+
long random(long);
140+
long random(long, long);
141+
void randomSeed(unsigned long);
142+
long map(long, long, long, long, long);
143+
144+
#endif // __cplusplus

0 commit comments

Comments
 (0)