@@ -104,14 +104,14 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
104
104
#endif
105
105
106
106
if (pin >= SOC_GPIO_PIN_COUNT ) {
107
- log_e ("Invalid IO %i selected" , pin );
107
+ log_e ("Invalid pin selected" );
108
108
return ;
109
109
}
110
110
111
111
if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) == NULL ){
112
112
perimanSetBusDeinit (ESP32_BUS_TYPE_GPIO , gpioDetachBus );
113
113
if (!perimanClearPinBus (pin )){
114
- log_e ("Deinit of previous bus from IO %i failed" , pin );
114
+ log_e ("Deinit of previous bus failed" );
115
115
return ;
116
116
}
117
117
}
@@ -140,7 +140,7 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
140
140
}
141
141
if (gpio_config (& conf ) != ESP_OK )
142
142
{
143
- log_e ("IO %i config failed" , pin );
143
+ log_e ("GPIO config failed" );
144
144
return ;
145
145
}
146
146
if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) == NULL ){
@@ -151,11 +151,16 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
151
151
}
152
152
}
153
153
154
+ #ifdef RGB_BUILTIN
155
+ uint8_t RGB_BUILTIN_storage = 0 ;
156
+ #endif
157
+
154
158
extern void ARDUINO_ISR_ATTR __digitalWrite (uint8_t pin , uint8_t val )
155
159
{
156
160
#ifdef RGB_BUILTIN
157
161
if (pin == RGB_BUILTIN ){
158
162
//use RMT to set all channels on/off
163
+ RGB_BUILTIN_storage = val ;
159
164
const uint8_t comm_val = val != 0 ? RGB_BRIGHTNESS : 0 ;
160
165
neopixelWrite (RGB_BUILTIN , comm_val , comm_val , comm_val );
161
166
return ;
@@ -164,17 +169,23 @@ extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)
164
169
if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) != NULL ){
165
170
gpio_set_level ((gpio_num_t )pin , val );
166
171
} else {
167
- log_e ("IO %i is not set as GPIO." , pin );
172
+ log_e ("Pin is not set as GPIO." );
168
173
}
169
174
}
170
175
171
176
extern int ARDUINO_ISR_ATTR __digitalRead (uint8_t pin )
172
177
{
178
+ #ifdef RGB_BUILTIN
179
+ if (pin == RGB_BUILTIN ){
180
+ return RGB_BUILTIN_storage ;
181
+ }
182
+ #endif
183
+
173
184
if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) != NULL ){
174
185
return gpio_get_level ((gpio_num_t )pin );
175
186
}
176
187
else {
177
- log_e ("IO %i is not set as GPIO." , pin );
188
+ log_e ("Pin is not set as GPIO." );
178
189
return 0 ;
179
190
}
180
191
}
@@ -204,7 +215,7 @@ extern void __attachInterruptFunctionalArg(uint8_t pin, voidFuncPtrArg userFunc,
204
215
interrupt_initialized = (err == ESP_OK ) || (err == ESP_ERR_INVALID_STATE );
205
216
}
206
217
if (!interrupt_initialized ) {
207
- log_e ("IO %i ISR Service Failed To Start" , pin );
218
+ log_e ("GPIO ISR Service Failed To Start" );
208
219
return ;
209
220
}
210
221
@@ -256,14 +267,6 @@ extern void __detachInterrupt(uint8_t pin)
256
267
gpio_set_intr_type ((gpio_num_t )pin , GPIO_INTR_DISABLE );
257
268
}
258
269
259
- extern void enableInterrupt (uint8_t pin ) {
260
- gpio_intr_enable ((gpio_num_t )pin );
261
- }
262
-
263
- extern void disableInterrupt (uint8_t pin ) {
264
- gpio_intr_disable ((gpio_num_t )pin );
265
- }
266
-
267
270
268
271
extern void pinMode (uint8_t pin , uint8_t mode ) __attribute__ ((weak , alias ("__pinMode" )));
269
272
extern void digitalWrite (uint8_t pin , uint8_t val ) __attribute__ ((weak , alias ("__digitalWrite" )));
0 commit comments