chore: initial commit
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include "platform_internal.h"
|
||||
|
||||
#include "driver/gpio.h"
|
||||
|
||||
esp_err_t platform_digital_input_driver_configure(const platform_digital_input_config_t *config)
|
||||
{
|
||||
if (config == NULL) {
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
|
||||
if (config->gpio_num < 0 || config->gpio_num >= GPIO_NUM_MAX) {
|
||||
return ESP_ERR_INVALID_ARG;
|
||||
}
|
||||
|
||||
gpio_config_t io_conf = {
|
||||
.pin_bit_mask = (1ULL << config->gpio_num),
|
||||
.mode = GPIO_MODE_INPUT,
|
||||
.pull_up_en = config->pullup_enabled ? GPIO_PULLUP_ENABLE : GPIO_PULLUP_DISABLE,
|
||||
.pull_down_en = config->pulldown_enabled ? GPIO_PULLDOWN_ENABLE : GPIO_PULLDOWN_DISABLE,
|
||||
.intr_type = GPIO_INTR_DISABLE
|
||||
};
|
||||
|
||||
return gpio_config(&io_conf);
|
||||
}
|
||||
|
||||
bool platform_digital_input_driver_is_active(const platform_digital_input_config_t *config)
|
||||
{
|
||||
if (config == NULL || config->gpio_num < 0 || config->gpio_num >= GPIO_NUM_MAX) {
|
||||
return false;
|
||||
}
|
||||
|
||||
int active_level = (config->active_level != 0) ? 1 : 0;
|
||||
return gpio_get_level((gpio_num_t)config->gpio_num) == active_level;
|
||||
}
|
||||
Reference in New Issue
Block a user