LEDC ========== 概述 -------- LEDC 模块是一个波形发生器,主要用于控制 led 工作状态,支持闪烁和呼吸灯模式。 功能特性 -------- - 支持最多8路GPIO - 支持最多4路AON-GPIO - 支持配置闪烁呼吸循环次数 - 支持配置占空比和周期 资源依赖 --------- - LEDC - GPIO 功能说明 ---------- 引脚说明 ^^^^^^^^^ 任意最多 8 路 GPIO 可配置,普通 GPIO 无法在低功耗模式下继续产生波形 AON-GPIO 最多支持 4 通道同时开启,每个 AON-GPIO 有两个可选通道,驱动将依据以下顺序选择 .. only:: bbb ======== ======== ======== AON-GPIO 优先通道 次选通道 ======== ======== ======== A00 0 1 A01 0 1 A13 2 0 A14 3 1 A15 0 2 A16 1 3 ======== ======== ======== .. only:: hornet ======== ======== ======== AON-GPIO 优先通道 次选通道 ======== ======== ======== A00 0 1 A01 0 1 A02 2 N A04 0 1 A13 2 N ======== ======== ======== 当优先通道被占用,将自动尝试选择次选通道,若两个通道均被占用,则会被作为通用 GPIO 开启。 闪烁模式 ^^^^^^^^^^^^ .. wavedrom:: { signal: [ { node:'.ABC...M..N'}, {wave: "0.101010...101010...", node:'..E....P'}, { node:'.G.I'}, { node:'.D........F'}, ], edge: [ 'A+B ton', 'B+C toff', 'M+N tnop', 'B-E', 'P-M', 'A-G', 'C-I', 'G+I cycle', 'G-D', 'N-F', 'D+F loop' ], head:{ text: 'LEDC blink' } } 闪烁模式有以下几个主要参数 ============= ===================== 参数 意义 ============= ===================== pull 配置 io 空闲状态的上下拉模式 start_from_on 配置闪烁模式是否以亮状态开始 ton_ms 配置单次闪烁时,亮状态持续的时间,次项配置为 0 时,保持常亮 toff_ms 配置单次闪烁时,暗状态的持续时间,次项配置为 0 时,保持常亮 cycle 配置单个 loop 内的亮暗循环次数 tnop_ms 配置单个 loop 后的等待时间 loop 配置整体循环次数 duty 配置亮度百分比,可配置 1-100 ============= ===================== .. warning:: **常亮** 永久阻止系统进入低功耗状态,需主动调用 :c:func:`wq_ledc_close` 后可正常进入低功耗状态。 呼吸模式 ^^^^^^^^^^^^ 呼吸模式时 gpio 占空比连续变化的 pwm 波形,控制 LED 产生渐亮渐暗的显示效果 呼吸模式有以下几个主要参数 ============= ===================== 参数 意义 ============= ===================== pull 配置 io 空闲状态的上下拉模式 tdim_up_ms 配置由暗到亮的渐变过程的持续时间 tdum_down_ms 配置由亮到暗的渐变过程的持续时间 ton_ms 配置全亮状态的持续时间 toff_ms 配置全暗状态的持续时间 cycle 配置单个 loop 内的亮暗循环次数 tnop_ms 配置单个 loop 后的等待时间 loop 配置整体循环次数 ============= ===================== 参考示例 --------- :: examples\testsuite\acore\cmds\ledc API 介绍 -------------- .. doxygenfile:: wq_ledc.h