Skip to content

Commit a9d460c

Browse files
authored
Add: make digitalRead() for RGB_BUILTIN work
Standard Arduino-Way of blinking a LED can be the shortest with: void loop() { static uint32_t ledticker = 0; if (millis() - ledticker > 1000) { ledticker = millis(); digitalWrite(RGB_BUILTIN, !digitalRead(RGB_BUILTIN)); } } Worked with the old LED_BUILTIN on Pin 2, now even works with Pin 48/neopixel. (Retry. Didn't sync my local sources. Sorry.)
1 parent bbfd8fc commit a9d460c

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

cores/esp32/esp32-hal-gpio.c

+14-6
Original file line numberDiff line numberDiff line change
@@ -104,14 +104,14 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
104104
#endif
105105

106106
if (pin >= SOC_GPIO_PIN_COUNT) {
107-
log_e("Invalid pin selected");
107+
log_e("Invalid IO %i selected", pin);
108108
return;
109109
}
110110

111111
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) == NULL){
112112
perimanSetBusDeinit(ESP32_BUS_TYPE_GPIO, gpioDetachBus);
113113
if(!perimanClearPinBus(pin)){
114-
log_e("Deinit of previous bus failed");
114+
log_e("Deinit of previous bus from IO %i failed", pin);
115115
return;
116116
}
117117
}
@@ -140,7 +140,7 @@ extern void ARDUINO_ISR_ATTR __pinMode(uint8_t pin, uint8_t mode)
140140
}
141141
if(gpio_config(&conf) != ESP_OK)
142142
{
143-
log_e("GPIO config failed");
143+
log_e("IO %i config failed", pin);
144144
return;
145145
}
146146
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) == NULL){
@@ -169,7 +169,7 @@ extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)
169169
if(perimanGetPinBus(pin, ESP32_BUS_TYPE_GPIO) != NULL){
170170
gpio_set_level((gpio_num_t)pin, val);
171171
} else {
172-
log_e("Pin is not set as GPIO.");
172+
log_e("IO %i is not set as GPIO.", pin);
173173
}
174174
}
175175

@@ -185,7 +185,7 @@ extern int ARDUINO_ISR_ATTR __digitalRead(uint8_t pin)
185185
return gpio_get_level((gpio_num_t)pin);
186186
}
187187
else {
188-
log_e("Pin is not set as GPIO.");
188+
log_e("IO %i is not set as GPIO.", pin);
189189
return 0;
190190
}
191191
}
@@ -215,7 +215,7 @@ extern void __attachInterruptFunctionalArg(uint8_t pin, voidFuncPtrArg userFunc,
215215
interrupt_initialized = (err == ESP_OK) || (err == ESP_ERR_INVALID_STATE);
216216
}
217217
if(!interrupt_initialized) {
218-
log_e("GPIO ISR Service Failed To Start");
218+
log_e("IO %i ISR Service Failed To Start", pin);
219219
return;
220220
}
221221

@@ -267,6 +267,14 @@ extern void __detachInterrupt(uint8_t pin)
267267
gpio_set_intr_type((gpio_num_t)pin, GPIO_INTR_DISABLE);
268268
}
269269

270+
extern void enableInterrupt(uint8_t pin) {
271+
gpio_intr_enable((gpio_num_t)pin);
272+
}
273+
274+
extern void disableInterrupt(uint8_t pin) {
275+
gpio_intr_disable((gpio_num_t)pin);
276+
}
277+
270278

271279
extern void pinMode(uint8_t pin, uint8_t mode) __attribute__ ((weak, alias("__pinMode")));
272280
extern void digitalWrite(uint8_t pin, uint8_t val) __attribute__ ((weak, alias("__digitalWrite")));

0 commit comments

Comments
 (0)