48
48
#define RAD_TO_DEG 57.295779513082320876798154814105
49
49
#define EULER 2.718281828459045235360287471352
50
50
51
- #define SERIAL 0x0
51
+ #define SERIAL 0x0
52
52
#define DISPLAY 0x1
53
53
54
54
#define LSBFIRST 0
55
55
#define MSBFIRST 1
56
56
57
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
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
64
#define ONHIGH_WE 0x0D
65
65
66
66
#define DEFAULT 1
71
71
#endif
72
72
73
73
// can't define max() / min() because of conflicts with C++
74
- #define _min (a,b ) ((a)< (b)? (a): (b))
75
- #define _max (a,b ) ((a)> (b)? (a): (b))
76
- #define _abs (x ) ((x)> 0 ? (x): -(x)) // abs() comes from STL
77
- #define constrain (amt,low,high ) ((amt)< (low)? (low): ((amt)> (high)? (high): (amt)))
78
- #define _round (x ) ((x)>= 0 ? (long )((x)+ 0.5 ): (long )((x)-0.5 )) // round() comes from STL
74
+ #define _min (a, b ) ((a) < (b) ? (a) : (b))
75
+ #define _max (a, b ) ((a) > (b) ? (a) : (b))
76
+ #define _abs (x ) ((x) > 0 ? (x) : -(x)) // abs() comes from STL
77
+ #define constrain (amt, low, high ) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt)))
78
+ #define _round (x ) ((x) >= 0 ? (long )((x) + 0.5 ) : (long )((x)-0.5 )) // round() comes from STL
79
79
#define radians (deg ) ((deg)*DEG_TO_RAD)
80
80
#define degrees (rad ) ((rad)*RAD_TO_DEG)
81
- #define sq (x ) ((x)* (x))
81
+ #define sq (x ) ((x) * (x))
82
82
83
83
// ESP32xx runs FreeRTOS... disabling interrupts can lead to issues, such as Watchdog Timeout
84
84
#define sei () portENABLE_INTERRUPTS()
85
85
#define cli () portDISABLE_INTERRUPTS()
86
86
#define interrupts () sei()
87
87
#define noInterrupts () cli()
88
88
89
- #define clockCyclesPerMicrosecond () ( (long int )getCpuFrequencyMhz() )
90
- #define clockCyclesToMicroseconds (a ) ( (a) / clockCyclesPerMicrosecond() )
91
- #define microsecondsToClockCycles (a ) ( (a) * clockCyclesPerMicrosecond () )
89
+ #define clockCyclesPerMicrosecond () ((long int )getCpuFrequencyMhz())
90
+ #define clockCyclesToMicroseconds (a ) ((a) / clockCyclesPerMicrosecond())
91
+ #define microsecondsToClockCycles (a ) ((a)* clockCyclesPerMicrosecond ())
92
92
93
- #define lowByte (w ) ((uint8_t ) ((w) & 0xff ))
94
- #define highByte (w ) ((uint8_t ) ((w) >> 8 ))
93
+ #define lowByte (w ) ((uint8_t )((w)& 0xff ))
94
+ #define highByte (w ) ((uint8_t )((w) >> 8 ))
95
95
96
96
#define bitRead (value, bit ) (((value) >> (bit)) & 0x01 )
97
97
#define bitSet (value, bit ) ((value) |= (1UL << (bit)))
101
101
102
102
// avr-libc defines _NOP() since 1.6.2
103
103
#ifndef _NOP
104
- #define _NOP () do { __asm__ volatile (" nop" ); } while (0 )
104
+ #define _NOP () \
105
+ do { __asm__ volatile (" nop" ); } while (0 )
105
106
#endif
106
107
107
108
#define bit (b ) (1UL << (b))
108
109
#define _BV (b ) (1UL << (b))
109
110
110
- #define digitalPinToTimer (pin ) (0 )
111
- #define analogInPinToBit (P ) (P)
111
+ #define digitalPinToTimer (pin ) (0 )
112
+ #define analogInPinToBit (P ) (P)
112
113
#if SOC_GPIO_PIN_COUNT <= 32
113
- #define digitalPinToPort (pin ) (0 )
114
- #define digitalPinToBitMask (pin ) (1UL << digitalPinToGPIONumber(pin))
115
- #define portOutputRegister (port ) ((volatile uint32_t *)GPIO_OUT_REG)
116
- #define portInputRegister (port ) ((volatile uint32_t *)GPIO_IN_REG)
117
- #define portModeRegister (port ) ((volatile uint32_t *)GPIO_ENABLE_REG)
114
+ #define digitalPinToPort (pin ) (0 )
115
+ #define digitalPinToBitMask (pin ) (1UL << digitalPinToGPIONumber(pin))
116
+ #define portOutputRegister (port ) ((volatile uint32_t *)GPIO_OUT_REG)
117
+ #define portInputRegister (port ) ((volatile uint32_t *)GPIO_IN_REG)
118
+ #define portModeRegister (port ) ((volatile uint32_t *)GPIO_ENABLE_REG)
118
119
#elif SOC_GPIO_PIN_COUNT <= 64
119
- #define digitalPinToPort (pin ) ((digitalPinToGPIONumber(pin)> 31 )? 1 : 0 )
120
- #define digitalPinToBitMask (pin ) (1UL << (digitalPinToGPIONumber(pin)& 31 ))
121
- #define portOutputRegister (port ) ((volatile uint32_t *)((port)? GPIO_OUT1_REG: GPIO_OUT_REG))
122
- #define portInputRegister (port ) ((volatile uint32_t *)((port)? GPIO_IN1_REG: GPIO_IN_REG))
123
- #define portModeRegister (port ) ((volatile uint32_t *)((port)? GPIO_ENABLE1_REG: GPIO_ENABLE_REG))
120
+ #define digitalPinToPort (pin ) ((digitalPinToGPIONumber(pin) > 31 ) ? 1 : 0 )
121
+ #define digitalPinToBitMask (pin ) (1UL << (digitalPinToGPIONumber(pin) & 31 ))
122
+ #define portOutputRegister (port ) ((volatile uint32_t *)((port) ? GPIO_OUT1_REG : GPIO_OUT_REG))
123
+ #define portInputRegister (port ) ((volatile uint32_t *)((port) ? GPIO_IN1_REG : GPIO_IN_REG))
124
+ #define portModeRegister (port ) ((volatile uint32_t *)((port) ? GPIO_ENABLE1_REG : GPIO_ENABLE_REG))
124
125
#else
125
126
#error SOC_GPIO_PIN_COUNT > 64 not implemented
126
127
#endif
131
132
#define NOT_ON_TIMER 0
132
133
133
134
// some defines generic for all SoC moved from variants/board_name/pins_arduino.h
134
- #define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // All GPIOs
135
+ #define NUM_DIGITAL_PINS SOC_GPIO_PIN_COUNT // All GPIOs
135
136
#if SOC_ADC_PERIPH_NUM == 1
136
- #define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0 )) // Depends on the SoC (ESP32C6, ESP32H2, ESP32C2, ESP32P4)
137
+ #define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0 )) // Depends on the SoC (ESP32C6, ESP32H2, ESP32C2, ESP32P4)
137
138
#elif SOC_ADC_PERIPH_NUM == 2
138
- #define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0 )+ SOC_ADC_CHANNEL_NUM(1 )) // Depends on the SoC (ESP32, ESP32S2, ESP32S3, ESP32C3)
139
+ #define NUM_ANALOG_INPUTS (SOC_ADC_CHANNEL_NUM(0 ) + SOC_ADC_CHANNEL_NUM(1 )) // Depends on the SoC (ESP32, ESP32S2, ESP32S3, ESP32C3)
139
140
#endif
140
- #define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs
141
- #define analogInputToDigitalPin (p ) (((p)< NUM_ANALOG_INPUTS)? (analogChannelToDigitalPin(p)): -1 )
142
- #define digitalPinToInterrupt (p ) ((((uint8_t )digitalPinToGPIONumber(p))< NUM_DIGITAL_PINS)? digitalPinToGPIONumber(p): NOT_AN_INTERRUPT)
143
- #define digitalPinHasPWM (p ) (((uint8_t )digitalPinToGPIONumber(p))< NUM_DIGITAL_PINS)
141
+ #define EXTERNAL_NUM_INTERRUPTS NUM_DIGITAL_PINS // All GPIOs
142
+ #define analogInputToDigitalPin (p ) (((p) < NUM_ANALOG_INPUTS) ? (analogChannelToDigitalPin(p)) : -1 )
143
+ #define digitalPinToInterrupt (p ) ((((uint8_t )digitalPinToGPIONumber(p)) < NUM_DIGITAL_PINS) ? digitalPinToGPIONumber(p) : NOT_AN_INTERRUPT)
144
+ #define digitalPinHasPWM (p ) (((uint8_t )digitalPinToGPIONumber(p)) < NUM_DIGITAL_PINS)
144
145
145
146
typedef bool boolean;
146
147
typedef uint8_t byte;
@@ -150,7 +151,7 @@ typedef unsigned int word;
150
151
void setup (void );
151
152
void loop (void );
152
153
153
- // The default is using Real Hardware random number generator
154
+ // The default is using Real Hardware random number generator
154
155
// But when randomSeed() is called, it turns to Psedo random
155
156
// generator, exactly as done in Arduino mainstream
156
157
long random (long );
@@ -169,15 +170,15 @@ long map(long, long, long, long, long);
169
170
extern " C" {
170
171
#endif
171
172
172
- void init (void );
173
- void initVariant (void );
174
- void initArduino (void );
173
+ void init (void );
174
+ void initVariant (void );
175
+ void initArduino (void );
175
176
176
- unsigned long pulseIn (uint8_t pin, uint8_t state, unsigned long timeout);
177
- unsigned long pulseInLong (uint8_t pin, uint8_t state, unsigned long timeout);
177
+ unsigned long pulseIn (uint8_t pin, uint8_t state, unsigned long timeout);
178
+ unsigned long pulseInLong (uint8_t pin, uint8_t state, unsigned long timeout);
178
179
179
- uint8_t shiftIn (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
180
- void shiftOut (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
180
+ uint8_t shiftIn (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder);
181
+ void shiftOut (uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val);
181
182
182
183
#ifdef __cplusplus
183
184
}
@@ -211,23 +212,29 @@ uint16_t makeWord(uint8_t h, uint8_t l);
211
212
#define word (...) makeWord(__VA_ARGS__)
212
213
213
214
size_t getArduinoLoopTaskStackSize (void );
214
- #define SET_LOOP_TASK_STACK_SIZE (sz ) size_t getArduinoLoopTaskStackSize () { return sz;}
215
+ #define SET_LOOP_TASK_STACK_SIZE (sz ) \
216
+ size_t getArduinoLoopTaskStackSize () { return sz; }
215
217
216
218
bool shouldPrintChipDebugReport (void );
217
- #define ENABLE_CHIP_DEBUG_REPORT bool shouldPrintChipDebugReport (void ){return true ;}
219
+ #define ENABLE_CHIP_DEBUG_REPORT \
220
+ bool shouldPrintChipDebugReport (void ) { return true ; }
218
221
219
222
// allows user to bypass esp_spiram_test()
220
223
bool esp_psram_extram_test (void );
221
- #define BYPASS_SPIRAM_TEST (bypass ) bool testSPIRAM (void ) { if (bypass) return true ; else return esp_psram_extram_test (); }
224
+ #define BYPASS_SPIRAM_TEST (bypass ) \
225
+ bool testSPIRAM (void ) { \
226
+ if (bypass) return true ; \
227
+ else return esp_psram_extram_test (); \
228
+ }
222
229
223
230
unsigned long pulseIn (uint8_t pin, uint8_t state, unsigned long timeout = 1000000L );
224
231
unsigned long pulseInLong (uint8_t pin, uint8_t state, unsigned long timeout = 1000000L );
225
232
226
- extern " C" bool getLocalTime (struct tm * info, uint32_t ms = 5000 );
233
+ extern " C" bool getLocalTime (struct tm * info, uint32_t ms = 5000 );
227
234
extern " C" void configTime (long gmtOffset_sec, int daylightOffset_sec,
228
- const char * server1, const char * server2 = nullptr , const char * server3 = nullptr );
235
+ const char * server1, const char * server2 = nullptr , const char * server3 = nullptr );
229
236
extern " C" void configTzTime (const char * tz,
230
- const char * server1, const char * server2 = nullptr , const char * server3 = nullptr );
237
+ const char * server1, const char * server2 = nullptr , const char * server3 = nullptr );
231
238
232
239
void setToneChannel (uint8_t channel = 0 );
233
240
void tone (uint8_t _pin, unsigned int frequency, unsigned long duration = 0 );
0 commit comments