@@ -170,11 +170,11 @@ extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val) {
170
170
return ;
171
171
}
172
172
#endif // RGB_BUILTIN
173
- if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) != NULL ) {
174
- gpio_set_level ((gpio_num_t )pin , val );
175
- } else {
176
- log_e ("IO %i is not set as GPIO." , pin );
173
+ // if the pin is not in GPIO mode, make it happen
174
+ if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) == NULL ) {
175
+ __pinMode (uint8_t pin , OUTPUT );
177
176
}
177
+ gpio_set_level ((gpio_num_t )pin , val );
178
178
}
179
179
180
180
extern int ARDUINO_ISR_ATTR __digitalRead (uint8_t pin ) {
@@ -184,12 +184,11 @@ extern int ARDUINO_ISR_ATTR __digitalRead(uint8_t pin) {
184
184
}
185
185
#endif
186
186
187
- if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) != NULL ) {
188
- return gpio_get_level ((gpio_num_t )pin );
189
- } else {
190
- log_e ("IO %i is not set as GPIO." , pin );
191
- return 0 ;
187
+ // if the pin is not in GPIO mode, make it happen
188
+ if (perimanGetPinBus (pin , ESP32_BUS_TYPE_GPIO ) == NULL ) {
189
+ __pinMode (uint8_t pin , INPUT );
192
190
}
191
+ return gpio_get_level ((gpio_num_t )pin );
193
192
}
194
193
195
194
static void ARDUINO_ISR_ATTR __onPinInterrupt (void * arg ) {
0 commit comments