杨生 发表于 2026-5-14 20:37
请问一下,如何设置pwm初始化测量周期溢出后进中断,有没有pwm初始化的例子,溢出后进入中断计数 ...
测量低频率信号的例程,可以看一下这个:高级16位PWM,输入捕获测量低频率信号,可低至0.014Hz,8H/STC32G/AI8051U 通用 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯人工智能技术交流网站 - AI32位8051交流社区
如果一直为某一个电平,则可以通过PWM输入捕获的更新中断里,判断电平是否一直为高或者低,就判别是否为0或者100%
不过这里面要处理一个问题,那就是确定好最大的捕获时间,不然容易将正常的低频率信号认成0%或100%信号
神农鼎 发表于 2026-5-14 20:57
测量低频率信号的例程,可以看一下这个:高级16位PWM,输入捕获测量低频率信号,可低至0.014Hz,8H/STC32G/ ...
AI8H2K12U-SOP8 单片机用的P5.4这个I/O口采集PWM的脉冲周期和占空比,
下载时切换到P1.2口,请问一下,是否可以映射到CC1和CC2,
同时采集脉冲的周期和占空比
以下这样配置是否有问题
PWMA_CCMR1 = 0x31; // CC1配置为输入模式, 且映射到TI1FP1上
PWMA_CCER1|= 0x01; // 配置捕获极性为CC1的上升沿, 使能捕获, 0x01:上升沿, 0x03:下降沿
PWMA_CCMR2 = 0x32; // CC2配置为输入模式, 且映射到TI1FP2上
PWMA_CCER1|= 0x30; // 配置捕获极性为CC2的下降沿, 使能捕获, 0x10:上升沿, 0x30:下降沿
PWMA_PS |= 0; // 选择IO, 0:选择P1.0 P1.1, 1:选择P2.0 P2.1, 2:选择P6.0 P6.1,
PWMA_ISR_En |= 0x02; // 使能CC1中断
PWMA_ISR_En |= 0x04; // 使能CC2中断
P1n_standard(Pin2); // P1.0设置为准双向口
将 P1.2管脚的数字功能切换到 P5.4是可以的,利用PWM2的功能。
从外部 PWM2输入的信号可以同时输出到 CC2/CC1这2个比较捕获单元。