mirror of
https://github.com/espressif/esp-idf.git
synced 2026-05-29 17:16:32 +03:00
116 lines
4.1 KiB
C
116 lines
4.1 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "esp_err.h"
|
|
#include "esp_etm.h"
|
|
#include "hal/ledc_types.h"
|
|
#include "soc/soc_caps.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if SOC_LEDC_SUPPORT_ETM
|
|
|
|
/**
|
|
* @brief LEDC timer ETM event configuration
|
|
*/
|
|
typedef struct {
|
|
ledc_timer_etm_event_type_t event_type; /*!< LEDC timer ETM event type */
|
|
} ledc_timer_etm_event_config_t;
|
|
|
|
/**
|
|
* @brief LEDC channel ETM event configuration
|
|
*/
|
|
typedef struct {
|
|
ledc_channel_etm_event_type_t event_type; /*!< LEDC channel ETM event type */
|
|
} ledc_channel_etm_event_config_t;
|
|
|
|
/**
|
|
* @brief Get the ETM timer event for LEDC
|
|
*
|
|
* @note The created ETM event object can be deleted later by calling `esp_etm_del_event`
|
|
*
|
|
* @param[in] speed_mode Select the LEDC channel group with specified speed mode
|
|
* @param[in] timer_sel LEDC timer index, select from ledc_timer_t
|
|
* @param[in] config LEDC timer ETM event configuration
|
|
* @param[out] out_event Returned ETM event handle
|
|
* @return
|
|
* - ESP_OK: Get ETM event successfully
|
|
* - ESP_ERR_INVALID_ARG: Get ETM event failed because of invalid argument
|
|
* - ESP_ERR_NO_MEM: Get ETM event failed because of no memory
|
|
*/
|
|
esp_err_t ledc_timer_new_etm_event(ledc_mode_t speed_mode, ledc_timer_t timer_sel, const ledc_timer_etm_event_config_t *config, esp_etm_event_handle_t *out_event);
|
|
|
|
/**
|
|
* @brief Get the ETM channel event for LEDC
|
|
*
|
|
* @note The created ETM event object can be deleted later by calling `esp_etm_del_event`
|
|
*
|
|
* @param[in] speed_mode Select the LEDC channel group with specified speed mode
|
|
* @param[in] channel LEDC channel index, select from ledc_channel_t
|
|
* @param[in] config LEDC channel ETM event configuration
|
|
* @param[out] out_event Returned ETM event handle
|
|
* @return
|
|
* - ESP_OK: Get ETM event successfully
|
|
* - ESP_ERR_INVALID_ARG: Get ETM event failed because of invalid argument
|
|
* - ESP_ERR_NO_MEM: Get ETM event failed because of no memory
|
|
*/
|
|
esp_err_t ledc_channel_new_etm_event(ledc_mode_t speed_mode, ledc_channel_t channel, const ledc_channel_etm_event_config_t *config, esp_etm_event_handle_t *out_event);
|
|
|
|
/**
|
|
* @brief LEDC timer ETM task configuration
|
|
*/
|
|
typedef struct {
|
|
ledc_timer_etm_task_type_t task_type; /*!< LEDC timer ETM task type */
|
|
} ledc_timer_etm_task_config_t;
|
|
|
|
/**
|
|
* @brief LEDC channel ETM task configuration
|
|
*/
|
|
typedef struct {
|
|
ledc_channel_etm_task_type_t task_type; /*!< LEDC channel ETM task type */
|
|
} ledc_channel_etm_task_config_t;
|
|
|
|
/**
|
|
* @brief Get the ETM timer task for LEDC
|
|
*
|
|
* @note The created ETM task object can be deleted later by calling `esp_etm_del_task`
|
|
*
|
|
* @param[in] speed_mode Select the LEDC channel group with specified speed mode
|
|
* @param[in] timer_sel LEDC timer index, select from ledc_timer_t
|
|
* @param[in] config LEDC timer ETM task configuration
|
|
* @param[out] out_task Returned ETM task handle
|
|
* @return
|
|
* - ESP_OK: Get ETM task successfully
|
|
* - ESP_ERR_INVALID_ARG: Get ETM task failed because of invalid argument
|
|
* - ESP_ERR_NO_MEM: Get ETM task failed because of no memory
|
|
*/
|
|
esp_err_t ledc_timer_new_etm_task(ledc_mode_t speed_mode, ledc_timer_t timer_sel, const ledc_timer_etm_task_config_t *config, esp_etm_task_handle_t *out_task);
|
|
|
|
/**
|
|
* @brief Get the ETM channel task for LEDC
|
|
*
|
|
* @note The created ETM task object can be deleted later by calling `esp_etm_del_task`
|
|
*
|
|
* @param[in] speed_mode Select the LEDC channel group with specified speed mode
|
|
* @param[in] channel LEDC channel index, select from ledc_channel_t
|
|
* @param[in] config LEDC channel ETM task configuration
|
|
* @param[out] out_task Returned ETM task handle
|
|
* @return
|
|
* - ESP_OK: Get ETM task successfully
|
|
* - ESP_ERR_INVALID_ARG: Get ETM task failed because of invalid argument
|
|
* - ESP_ERR_NO_MEM: Get ETM task failed because of no memory
|
|
*/
|
|
esp_err_t ledc_channel_new_etm_task(ledc_mode_t speed_mode, ledc_channel_t channel, const ledc_channel_etm_task_config_t *config, esp_etm_task_handle_t *out_task);
|
|
|
|
#endif // SOC_LEDC_SUPPORT_ETM
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|