forked from espressif/arduino-esp32
Update esp32-hal-gpio.c
This commit is contained in:
@ -154,6 +154,30 @@ static InterruptHandle_t __pinInterruptHandlers[GPIO_PIN_COUNT] = {0,};
|
|||||||
|
|
||||||
#include "driver/rtc_io.h"
|
#include "driver/rtc_io.h"
|
||||||
|
|
||||||
|
//
|
||||||
|
//static void idf_pinMode(uint8_t pin, uint8_t mode)
|
||||||
|
//{
|
||||||
|
// gpio_mode_t m = 0;
|
||||||
|
// if(mode & INPUT) {
|
||||||
|
// m |= GPIO_MODE_DEF_INPUT;
|
||||||
|
// }
|
||||||
|
// if(mode & OUTPUT) {
|
||||||
|
// m |= GPIO_MODE_DEF_OUTPUT;
|
||||||
|
// }
|
||||||
|
// if(mode & OPEN_DRAIN) {
|
||||||
|
// m |= GPIO_MODE_DEF_OD;
|
||||||
|
// }
|
||||||
|
// gpio_config_t conf = {
|
||||||
|
// .pin_bit_mask = 1LL << pin,
|
||||||
|
// .mode = (gpio_mode_t)m,
|
||||||
|
// .pull_up_en = (gpio_pullup_t)((mode & PULLUP) != 0),
|
||||||
|
// .pull_down_en = (gpio_pulldown_t)((mode & PULLDOWN) != 0),
|
||||||
|
// .intr_type = (gpio_int_type_t)GPIO_INTR_DISABLE
|
||||||
|
// };
|
||||||
|
// gpio_config(&conf);
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode)
|
extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -161,6 +185,8 @@ extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//return idf_pinMode(pin, mode);
|
||||||
|
|
||||||
uint32_t rtc_reg = rtc_io_desc[pin].reg;
|
uint32_t rtc_reg = rtc_io_desc[pin].reg;
|
||||||
if(mode == ANALOG) {
|
if(mode == ANALOG) {
|
||||||
if(!rtc_reg) {
|
if(!rtc_reg) {
|
||||||
@ -227,9 +253,17 @@ extern void IRAM_ATTR __pinMode(uint8_t pin, uint8_t mode)
|
|||||||
pinFunction |= FUN_IE;//input enable but required for output as well?
|
pinFunction |= FUN_IE;//input enable but required for output as well?
|
||||||
|
|
||||||
if(mode & (INPUT | OUTPUT)) {
|
if(mode & (INPUT | OUTPUT)) {
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32
|
||||||
pinFunction |= ((uint32_t)2 << MCU_SEL_S);
|
pinFunction |= ((uint32_t)2 << MCU_SEL_S);
|
||||||
|
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||||
|
pinFunction |= ((uint32_t)1 << MCU_SEL_S);
|
||||||
|
#endif
|
||||||
} else if(mode == SPECIAL) {
|
} else if(mode == SPECIAL) {
|
||||||
pinFunction |= ((uint32_t)(((pin)==1||(pin)==3)?0:1) << MCU_SEL_S);
|
#if CONFIG_IDF_TARGET_ESP32
|
||||||
|
pinFunction |= ((uint32_t)(((pin)==RX||(pin)==TX)?0:1) << MCU_SEL_S);
|
||||||
|
#elif CONFIG_IDF_TARGET_ESP32S2
|
||||||
|
pinFunction |= ((uint32_t)(((pin)==RX||(pin)==TX)?0:2) << MCU_SEL_S);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
pinFunction |= ((uint32_t)(mode >> 5) << MCU_SEL_S);
|
pinFunction |= ((uint32_t)(mode >> 5) << MCU_SEL_S);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user