Merge branch 'refactor/mcpwm_rcc_atomic' into 'master'
MCPWM: add RCC low level functions Closes IDF-7731, IDF-7722, IDF-7716, IDF-7738, and IDF-7713 See merge request espressif/esp-idf!25959
This commit is contained in:
@@ -111,6 +111,10 @@ MCPWM 比较器
|
||||
|
||||
反之,调用 :cpp:func:`mcpwm_del_comparator` 函数将释放已分配的比较器。
|
||||
|
||||
.. only:: SOC_MCPWM_SUPPORT_EVENT_COMPARATOR
|
||||
|
||||
MCPWM 中还有另外一种比较器 —— “事件比较器”,它不能直接控制 PWM 的输出,只能用来产生 EMT 子系统中使用到的事件。事件比较器能够设置的阈值也是可配的。调用 :cpp:func:`mcpwm_new_event_comparator` 函数可以申请一个事件比较器,该函数返回的句柄类型和 :cpp:func:`mcpwm_new_comparator` 函数一样,但是需要的配置结构体是不同的。事件比较器的配置位于 :cpp:type:`mcpwm_event_comparator_config_t`。更多相关内容请参阅 :ref:`mcpwm-etm-event-and-task`。
|
||||
|
||||
MCPWM 生成器
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -187,7 +191,7 @@ MCPWM 组有一个专用定时器,用于捕获特定事件发生时的时间
|
||||
- :cpp:member:`mcpwm_capture_timer_config_t::clk_src` 设置捕获定时器的时钟源。
|
||||
- :cpp:member:`mcpwm_capture_timer_config_t::resolution_hz` 设置捕获定时器的预期分辨率。内部驱动将根据时钟源和分辨率设置合适的分频器。设置为 ``0`` 时,驱动会自己选取一个适当的分辨率,后续你可以通过 :cpp:func:`mcpwm_capture_timer_get_resolution` 查看当前定时器的分辨率。
|
||||
|
||||
.. only:: not SOC_MCPWM_CAPTURE_CLK_FROM_GROUP
|
||||
.. only:: not SOC_MCPWM_CAPTURE_CLK_FROM_GROUP
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -279,6 +283,12 @@ MCPWM 比较器可以在定时器计数器等于比较值时发送通知。若
|
||||
|
||||
此函数会延迟安装 MCPWM 比较器的中断服务。中断服务只能通过 :cpp:type:`mcpwm_del_comparator` 移除。
|
||||
|
||||
.. only:: SOC_MCPWM_SUPPORT_EVENT_COMPARATOR
|
||||
|
||||
.. note::
|
||||
|
||||
对于事件比较器,你无法通过该函数来注册回调函数,因为事件比较器触发产生任何中断事件。
|
||||
|
||||
设置比较值
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -1026,6 +1036,7 @@ API Reference
|
||||
.. include-build-file:: inc/mcpwm_fault.inc
|
||||
.. include-build-file:: inc/mcpwm_sync.inc
|
||||
.. include-build-file:: inc/mcpwm_cap.inc
|
||||
.. include-build-file:: inc/mcpwm_etm.inc
|
||||
.. include-build-file:: inc/components/driver/mcpwm/include/driver/mcpwm_types.inc
|
||||
.. include-build-file:: inc/components/hal/include/hal/mcpwm_types.inc
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ PCNT 的功能从以下几个方面进行说明:
|
||||
- :ref:`pcnt-watch-points` - 说明如何配置观察点,即当计数达到某个数值时,命令 PCNT 单元触发某个事件。
|
||||
- :ref:`pcnt-register-event-callbacks` - 说明如何将您的代码挂载到观察点事件的回调函数上。
|
||||
- :ref:`pcnt-set-glitch-filter` - 说明如何使能毛刺滤波器并设置其时序参数。
|
||||
:SOC_PCNT_SUPPORT_CLEAR_SIGNAL: - :ref:`pcnt-set-clear-signal` - 说明如何使能清零信号并设置其参数。
|
||||
:SOC_PCNT_SUPPORT_CLEAR_SIGNAL: - :ref:`pcnt-set-clear-signal` - 说明如何使能外部清零信号并设置其参数。
|
||||
- :ref:`pcnt-enable-disable-unit` - 说明如何使能和关闭 PCNT 单元。
|
||||
- :ref:`pcnt-unit-io-control` - 说明 PCNT 单元的 IO 控制功能,例如使能毛刺滤波器,开启和停用 PCNT 单元,获取和清除计数。
|
||||
- :ref:`pcnt-power-management` - 说明哪些功能会阻止芯片进入低功耗模式。
|
||||
@@ -205,16 +205,16 @@ PCNT 单元的滤波器可滤除信号中的短时毛刺,:cpp:type:`pcnt_glitc
|
||||
|
||||
.. _pcnt-set-clear-signal:
|
||||
|
||||
设置清零信号
|
||||
使用外部清零信号
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
PCNT 单元的可以接收来自 GPIO 的清零信号,:cpp:type:`pcnt_clear_signal_config_t` 中列出了清零信号的配置参数:
|
||||
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::zero_input_gpio_num` 用于指定 **清零** 信号对应的 GPIO 编号。默认有效电平为高,使能下拉输入。
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::invert_zero_input` 用于确定信号在输入 PCNT 之前是否需要被翻转,信号翻转由 GPIO 矩阵 (不是 PCNT 单元) 执行。翻转时使能上拉输入。
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::io_loop_back` 仅用于调试,它可以使能 GPIO 的输入和输出路径。这样,就可以通过调用位于同一 GPIO 上的函数 :cpp:func:`gpio_set_level` 来模拟脉冲清零信号。
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::clear_signal_gpio_num` 用于指定 **清零** 信号对应的 GPIO 编号。默认有效电平为高,使能下拉输入。
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::invert_clear_signal` 用于确定信号在输入 PCNT 之前是否需要被翻转,信号翻转由 GPIO 矩阵 (不是 PCNT 单元) 执行。驱动会使能上拉输入,以确保信号在未连接时保持高电平。
|
||||
- :cpp:member:`pcnt_clear_signal_config_t::io_loop_back` 仅用于调试,它可以使能 GPIO 的输入和输出路径。这样,就可以通过 :cpp:func:`gpio_set_level` 函数来模拟外部输入的清零信号。
|
||||
|
||||
该信号作用与调用 :cpp:func:`pcnt_unit_clear_count` 相同,但不受软件延迟的限制,适用于对延迟要求较高的场合。
|
||||
该输入信号的作用与调用 :cpp:func:`pcnt_unit_clear_count` 函数相同,但它不受软件延迟的限制,更适用于需要低延迟的场合。请注意,该信号的翻转频率不能太高。
|
||||
|
||||
.. code:: c
|
||||
|
||||
|
||||
Reference in New Issue
Block a user