feat: added gpio pullup on/off
This commit is contained in:
@@ -24,6 +24,7 @@
|
||||
.b_gpio_number = GPIO_NUM_MAX, \
|
||||
.s_gpio_number = GPIO_NUM_MAX, \
|
||||
.s_gpio_debounce_time = 10, \
|
||||
.pullup = true, \
|
||||
.encoder_min_value = -10, \
|
||||
.encoder_max_value = 10, \
|
||||
.encoder_step = 1, \
|
||||
@@ -49,6 +50,7 @@ extern "C"
|
||||
uint8_t a_gpio_number; /*!< Encoder A GPIO number. */
|
||||
uint8_t b_gpio_number; /*!< Encoder B GPIO number. */
|
||||
uint8_t s_gpio_number; /*!< Encoder button GPIO number. */
|
||||
bool pullup; /*!< Pullup GPIO enable/disable. */
|
||||
uint16_t s_gpio_debounce_time; /*!< Encoder button debounce_time. @note In microseconds. */
|
||||
uint8_t encoder_number; /*!< Unique encoder number. @note Must be greater than 0. */
|
||||
uint16_t stack_size; /*!< Stack size for task for the encoder isr processing processing. @note The minimum size is configMINIMAL_STACK_SIZE. */
|
||||
|
||||
@@ -1 +1 @@
|
||||
2.0.0
|
||||
2.1.0
|
||||
@@ -247,6 +247,11 @@ static esp_err_t _zh_encoder_pcnt_init(const zh_encoder_init_config_t *config, z
|
||||
err = pcnt_unit_start(pcnt_unit_handle);
|
||||
ZH_ERROR_CHECK(err == ESP_OK, err, pcnt_unit_disable(pcnt_unit_handle); pcnt_del_channel(pcnt_channel_a_handle); pcnt_del_channel(pcnt_channel_b_handle);
|
||||
pcnt_del_unit(pcnt_unit_handle), "PCNT initialization failed.");
|
||||
if (config->pullup == false)
|
||||
{
|
||||
gpio_pullup_dis((gpio_num_t)config->a_gpio_number);
|
||||
gpio_pullup_dis((gpio_num_t)config->b_gpio_number);
|
||||
}
|
||||
handle->pcnt_unit_handle = pcnt_unit_handle;
|
||||
handle->pcnt_channel_a_handle = pcnt_channel_a_handle;
|
||||
handle->pcnt_channel_b_handle = pcnt_channel_b_handle;
|
||||
@@ -262,6 +267,7 @@ static esp_err_t _zh_encoder_gpio_init(const zh_encoder_init_config_t *config, z
|
||||
{
|
||||
gpio_config_t pin_config = {
|
||||
.mode = GPIO_MODE_INPUT,
|
||||
.pull_up_en = (config->pullup == true) ? GPIO_PULLUP_ENABLE : GPIO_PULLUP_DISABLE,
|
||||
.pin_bit_mask = (1ULL << config->s_gpio_number),
|
||||
.intr_type = GPIO_INTR_ANYEDGE};
|
||||
esp_err_t err = gpio_config(&pin_config);
|
||||
|
||||
Reference in New Issue
Block a user