feat(pcnt): re-support pcnt on ESP32-C5 V1.0
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
@@ -316,7 +316,7 @@ esp_err_t pcnt_unit_remove_watch_point(pcnt_unit_handle_t unit, int watch_point)
|
||||
* @brief Add a step notify for PCNT unit, PCNT will generate an event when the incremental(can be positive or negative) of counter value reaches the step interval
|
||||
*
|
||||
* @param[in] unit PCNT unit handle created by `pcnt_new_unit()`
|
||||
* @param[in] step_interval PCNT step notify interval value
|
||||
* @param[in] step_interval PCNT step notify interval value. Positive value means step forward, negative value means step backward.
|
||||
* @return
|
||||
* - ESP_OK: Add step notify successfully
|
||||
* - ESP_ERR_INVALID_ARG: Add step notify failed because of invalid argument (e.g. the value incremental to be watched is out of the limitation set in `pcnt_unit_config_t`)
|
||||
@@ -326,7 +326,7 @@ esp_err_t pcnt_unit_remove_watch_point(pcnt_unit_handle_t unit, int watch_point)
|
||||
esp_err_t pcnt_unit_add_watch_step(pcnt_unit_handle_t unit, int step_interval);
|
||||
|
||||
/**
|
||||
* @brief Remove a step notify for PCNT unit
|
||||
* @brief Remove all step notify for PCNT unit
|
||||
*
|
||||
* @param[in] unit PCNT unit handle created by `pcnt_new_unit()`
|
||||
* @return
|
||||
@@ -335,7 +335,25 @@ esp_err_t pcnt_unit_add_watch_step(pcnt_unit_handle_t unit, int step_interval);
|
||||
* - ESP_ERR_INVALID_STATE: Remove step notify failed because the step notify was not added by `pcnt_unit_add_watch_step()` yet
|
||||
* - ESP_FAIL: Remove step notify failed because of other error
|
||||
*/
|
||||
esp_err_t pcnt_unit_remove_watch_step(pcnt_unit_handle_t unit);
|
||||
esp_err_t pcnt_unit_remove_all_watch_step(pcnt_unit_handle_t unit);
|
||||
|
||||
/**
|
||||
* @brief Remove a step notify for PCNT unit
|
||||
*
|
||||
* @param[in] unit PCNT unit handle created by `pcnt_new_unit()`
|
||||
* @param[in] step_interval Step notify interval value
|
||||
* @return
|
||||
* - ESP_OK: Remove step notify successfully
|
||||
* - ESP_ERR_INVALID_ARG: Remove step notify failed because of invalid argument
|
||||
* - ESP_ERR_INVALID_STATE: Remove step notify failed because the step notify was not added by `pcnt_unit_add_watch_step()` yet
|
||||
* - ESP_FAIL: Remove step notify failed because of other error
|
||||
*/
|
||||
esp_err_t pcnt_unit_remove_single_watch_step(pcnt_unit_handle_t unit, int step_interval);
|
||||
|
||||
#define _pcnt_unit_remove_all_watch_step(unit) pcnt_unit_remove_all_watch_step(unit)
|
||||
#define _pcnt_unit_remove_single_watch_step(unit, step_interval) pcnt_unit_remove_single_watch_step(unit, step_interval)
|
||||
#define _pcnt_get_remove_func(_1, _2, FUNC, ...) FUNC
|
||||
#define pcnt_unit_remove_watch_step(...) _pcnt_get_remove_func(__VA_ARGS__, _pcnt_unit_remove_single_watch_step, _pcnt_unit_remove_all_watch_step)(__VA_ARGS__)
|
||||
|
||||
/**
|
||||
* @brief Create PCNT channel for specific unit, each PCNT has several channels associated with it
|
||||
|
||||
Reference in New Issue
Block a user