24
24
extern " C" {
25
25
#endif
26
26
27
- #include "freertos/FreeRTOS.h"
28
- #include "freertos/task.h"
29
- #include "freertos/semphr.h"
30
- #include "esp32-hal.h"
31
- #include "pins_arduino.h"
32
-
33
27
#include < stdbool.h>
34
28
#include < stdint.h>
35
29
#include < stdarg.h>
@@ -39,15 +33,104 @@ extern "C" {
39
33
#include < string.h>
40
34
#include < inttypes.h>
41
35
42
- typedef bool boolean ;
43
- typedef uint8_t byte ;
36
+ #include " freertos/FreeRTOS.h"
37
+ #include " freertos/task.h"
38
+ #include " freertos/semphr.h"
39
+ #include " esp32-hal.h"
40
+ #include " soc/gpio_reg.h"
44
41
45
42
#include " binary.h"
46
43
44
+ #define PI 3.1415926535897932384626433832795
45
+ #define HALF_PI 1.5707963267948966192313216916398
46
+ #define TWO_PI 6.283185307179586476925286766559
47
+ #define DEG_TO_RAD 0.017453292519943295769236907684886
48
+ #define RAD_TO_DEG 57.295779513082320876798154814105
49
+ #define EULER 2.718281828459045235360287471352
50
+
51
+ #define SERIAL 0x0
52
+ #define DISPLAY 0x1
53
+
54
+ #define LSBFIRST 0
55
+ #define MSBFIRST 1
56
+
57
+ // Interrupt Modes
58
+ #define RISING 0x01
59
+ #define FALLING 0x02
60
+ #define CHANGE 0x03
61
+ #define ONLOW 0x04
62
+ #define ONHIGH 0x05
63
+ #define ONLOW_WE 0x0C
64
+ #define ONHIGH_WE 0x0D
65
+
66
+ #define DEFAULT 1
67
+ #define EXTERNAL 0
68
+
69
+ #ifndef __STRINGIFY
70
+ #define __STRINGIFY (a ) #a
71
+ #endif
72
+
73
+ // undefine stdlib's abs if encountered
74
+ #ifdef abs
75
+ #undef abs
76
+ #endif
77
+
78
+ #define abs (x ) ((x)>0 ?(x):-(x))
79
+ #define constrain (amt,low,high ) ((amt)<(low)?(low):((amt)>(high)?(high):(amt)))
80
+ #define round (x ) ((x)>=0 ?(long )((x)+0.5 ):(long )((x)-0.5 ))
81
+ #define radians (deg ) ((deg)*DEG_TO_RAD)
82
+ #define degrees (rad ) ((rad)*RAD_TO_DEG)
83
+ #define sq (x ) ((x)*(x))
84
+
85
+ #define sei ()
86
+ #define cli ()
87
+ #define interrupts () sei()
88
+ #define noInterrupts () cli()
89
+
90
+ #define clockCyclesPerMicrosecond () ( F_CPU / 1000000L )
91
+ #define clockCyclesToMicroseconds (a ) ( (a) / clockCyclesPerMicrosecond() )
92
+ #define microsecondsToClockCycles (a ) ( (a) * clockCyclesPerMicrosecond () )
93
+
94
+ #define lowByte (w ) ((uint8_t ) ((w) & 0xff ))
95
+ #define highByte (w ) ((uint8_t ) ((w) >> 8 ))
96
+
97
+ #define bitRead (value, bit ) (((value) >> (bit)) & 0x01 )
98
+ #define bitSet (value, bit ) ((value) |= (1UL << (bit)))
99
+ #define bitClear (value, bit ) ((value) &= ~(1UL << (bit)))
100
+ #define bitWrite (value, bit, bitvalue ) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
101
+
102
+ #define bit (b ) (1UL << (b))
103
+ #define _BV (b ) (1UL << (b))
104
+
105
+ #define digitalPinToPort (pin ) (((pin)>31 )?1 :0 )
106
+ #define digitalPinToBitMask (pin ) (1UL << (pin))
107
+ #define digitalPinToTimer (pin ) (0 )
108
+ #define portOutputRegister (port ) ((volatile uint32_t *)((port)?GPIO_OUT1_REG:GPIO_OUT_REG))
109
+ #define portInputRegister (port ) ((volatile uint32_t *)((port)?GPIO_IN1_REG:GPIO_IN_REG))
110
+ #define portModeRegister (port ) ((volatile uint32_t *)((port)?GPIO_ENABLE1_REG:GPIO_ENABLE_REG))
111
+
112
+ #define NOT_A_PIN -1
113
+ #define NOT_A_PORT -1
114
+ #define NOT_AN_INTERRUPT -1
115
+ #define NOT_ON_TIMER 0
116
+
117
+ typedef bool boolean;
118
+ typedef uint8_t byte;
119
+ typedef unsigned int word;
120
+
47
121
#ifdef __cplusplus
48
122
}
49
123
#endif
50
124
125
+ #ifndef _GLIBCXX_VECTOR
126
+ // arduino is not compatible with std::vector
127
+ #define min (a,b ) ((a)<(b)?(a):(b))
128
+ #define max (a,b ) ((a)>(b)?(a):(b))
129
+ #endif
130
+
131
+ #define _min (a,b ) ((a)<(b)?(a):(b))
132
+ #define _max (a,b ) ((a)>(b)?(a):(b))
133
+
51
134
#include " WCharacter.h"
52
135
#include " WString.h"
53
136
#include " Stream.h"
@@ -60,4 +143,6 @@ typedef uint8_t byte;
60
143
#include " HardwareSerial.h"
61
144
#include " Esp.h"
62
145
146
+ #include " pins_arduino.h"
147
+
63
148
#endif /* _ESP32_CORE_ARDUINO_H_ */
0 commit comments