From 0f02a9f951c915d784ce3a536f3bacf1987e2f71 Mon Sep 17 00:00:00 2001 From: Alexey Zholtikov Date: Wed, 30 Sep 2026 18:33:02 +0300 Subject: [PATCH] refactor: minor refactoring --- include/zh_ttp229.h | 4 ++++ zh_ttp229.c | 22 ++++++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/include/zh_ttp229.h b/include/zh_ttp229.h index e08a540..2b92b1c 100644 --- a/include/zh_ttp229.h +++ b/include/zh_ttp229.h @@ -62,6 +62,10 @@ extern "C" /** * @brief TTP229 touch pad work mode (number of pads). + * + * Selects the number of capacitive touch pads configured on the + * TTP229 controller. The value determines how many SCL clock pulses + * are generated during a read cycle. */ typedef enum { diff --git a/zh_ttp229.c b/zh_ttp229.c index e3c6393..4c325e9 100644 --- a/zh_ttp229.c +++ b/zh_ttp229.c @@ -174,7 +174,7 @@ esp_err_t zh_ttp229_init(const zh_ttp229_init_config_t *config, zh_ttp229_handle ZH_ERROR_CHECK(_zh_ttp229_validate_config(config, *handle) == ESP_OK, ESP_FAIL, heap_caps_free(*handle); *handle = NULL, "Touch pad initialization failed. Initial configuration check failed."); if (_vector == NULL) { - ZH_ERROR_CHECK(zh_vector_init(&_vector, sizeof(uint8_t)) == ESP_OK, ESP_FAIL, heap_caps_free(*handle); *handle = NULL, "Touch pad initialization failed. Failed to create vector."); + ZH_ERROR_CHECK(zh_vector_init(&_vector, (uint16_t)sizeof(uint8_t)) == ESP_OK, ESP_FAIL, heap_caps_free(*handle); *handle = NULL, "Touch pad initialization failed. Failed to create vector."); } ZH_ERROR_CHECK(zh_vector_push_back(&_vector, &config->device_number) == ESP_OK, ESP_FAIL, heap_caps_free(*handle); *handle = NULL, "Touch pad initialization failed. Failed to add vector data."); ZH_ERROR_CHECK(_zh_ttp229_resources_init(config) == ESP_OK, ESP_FAIL, zh_vector_delete_back(&_vector); heap_caps_free(*handle); *handle = NULL, "Touch pad initialization failed. Resources initialization failed."); @@ -218,10 +218,16 @@ esp_err_t zh_ttp229_deinit(zh_ttp229_handle_t **handle) ZH_ERROR_CHECK(zh_vector_get_size(&_vector, &vector_size) == ESP_OK, ESP_FAIL, NULL, "Touch pad deinitialization failed. Failed to get vector size."); if (vector_size == 0) { - vQueueDelete(_queue_handle); - _queue_handle = NULL; - vTaskDelete(zh_ttp229); - zh_ttp229 = NULL; + if (_queue_handle != NULL) + { + vQueueDelete(_queue_handle); + _queue_handle = NULL; + } + if (zh_ttp229 != NULL) + { + vTaskDelete(zh_ttp229); + zh_ttp229 = NULL; + } ZH_ERROR_CHECK(zh_vector_free(&_vector) == ESP_OK, ESP_FAIL, NULL, "Touch pad deinitialization failed. Free vector failed."); } heap_caps_free(*handle); @@ -337,7 +343,7 @@ static esp_err_t _zh_ttp229_rmt_init(const zh_ttp229_init_config_t *config, zh_t static esp_err_t _zh_ttp229_resources_init(const zh_ttp229_init_config_t *config) { uint16_t vector_size = 0; - zh_vector_get_size(&_vector, &vector_size); + ZH_ERROR_CHECK(zh_vector_get_size(&_vector, &vector_size) == ESP_OK, ESP_FAIL, NULL, "Failed to get vector size."); if (vector_size == 1) { _queue_handle = xQueueCreate(config->queue_size, sizeof(zh_ttp229_queue_t)); @@ -349,7 +355,7 @@ static esp_err_t _zh_ttp229_resources_init(const zh_ttp229_init_config_t *config static esp_err_t _zh_ttp229_task_init(const zh_ttp229_init_config_t *config) { uint16_t vector_size = 0; - zh_vector_get_size(&_vector, &vector_size); + ZH_ERROR_CHECK(zh_vector_get_size(&_vector, &vector_size) == ESP_OK, ESP_FAIL, NULL, "Failed to get vector size."); if (vector_size == 1) { ZH_ERROR_CHECK(xTaskCreatePinnedToCore(&_zh_ttp229_isr_processing_task, "zh_ttp229_isr_processing", config->stack_size, NULL, config->task_priority, &zh_ttp229, tskNO_AFFINITY) == pdPASS, @@ -384,7 +390,7 @@ static void IRAM_ATTR _zh_ttp229_isr_handler(void *arg) portYIELD_FROM_ISR(); } -static void IRAM_ATTR _zh_ttp229_isr_processing_task(void *pvParameter) +static void _zh_ttp229_isr_processing_task(void *pvParameter) { (void)pvParameter; zh_ttp229_queue_t ttp229_queue = {0};