STC8H/STC32G 的 PWM 同时捕获 4 路输入信号的周期和占空比,有视频讲解
STC8H 同时捕获 4 路 输入信号的周期和占空比,有视频讲解STC32 同时捕获 4 路 输入信号的周期和占空比,有视频讲解
STC8H 同时捕获 4 路 输入信号的周期和占空比,有视频讲解
STC32 同时捕获 4 路 输入信号的周期和占空比,有视频讲解
视频讲解 https://www.stcaimcu.com/forum.p ... 3184&extra=page%3D1
21.8.12 同时捕获 4 路输入信号的周期和占空比
原理:使用高级 PWM 内部的两通道的捕获模块 CCx 和 CCx+1 同时捕获外部的同一个管脚,CCx 捕获
此管脚的上升沿,CCx+1 捕获此管脚的下降沿,CCx 的两次捕获值的差值即为周期,CCx+1 的捕
获值与 CCx 的前一次捕获值的差值即为占空比。
范例中实际测试如何接线:
使用 PWMA 的第一组捕获模块 CC1 和第二组捕获模块 CC2,同时捕获 PWM1P 管脚(P1.0),
其中 CC1 捕获 PWM1P 的上升沿,CC2 捕获 PWM1P 的下降沿,CC1 的捕获值减去前一次捕获值即
为周期,CC2 的捕获值减去 CC1 的前一次捕获值即为占空比。
PWMB 的 CC5 和 CC6 同时捕获PWM5(P2.0)、
PWMB 的 CC7 和 CC8 同时捕获 PWM7(P2.2)、
PWMA 的 CC3 和 CC4 同时捕获 PWM3P(P1.4)。
模拟的被测量信号发生器:
使用定时器 0 在 P1.0 上产生波形、
定时器 1 在 P1.4 上产生波形、
定时器 3 在 P2.0 上产生波形、
定时器 4 在 P2.2 上产生波形。
捕获值通过串口送到 PC。
测量输入波形用的是 16位高级PWM的模块PWMA和PWMB, 跟普通定时器/外部中断无任何关系
注意:
1、使用的是芯片内部的两路捕获模块同时捕获外部的同一个管脚,所以不需要将外部的多个管脚相连接。
2、由于没有设置复位触发信号,所以周期值和占空比值均需要作相应的减法运算才能得到。
若需要使用第一组 PWM / PWMA 定时器进行捕获功能或者测量脉宽时,输入信号只能从每路的正端输入,
即只有PWM1P/PWM2P/PWM3P/PWM4P 才有捕获功能和测量脉宽功能。
神农鼎 发表于 2023-1-30 10:12
21.8.12 同时捕获 4 路输入信号的周期和占空比
原理:使用高级 PWM 内部的两通道的捕获模块 CCx 和 CCx+1 ...
从 PWM1P_2 和 PWM1P_3 输入的信号也可以捕获其占空比么? 神农鼎 发表于 2023-1-30 10:12
21.8.12 同时捕获 4 路输入信号的周期和占空比
原理:使用高级 PWM 内部的两通道的捕获模块 CCx 和 CCx+1 ...
如果 PWM1P 用于捕获外部输入信号的占空比了,那么PWM2P 就无法再捕获其它输入信号的占空比了是么? 神农鼎 发表于 2023-1-30 10:12
21.8.12 同时捕获 4 路输入信号的周期和占空比
原理:使用高级 PWM 内部的两通道的捕获模块 CCx 和 CCx+1 ...
如果 PWM1P 用于捕获外部输入信号的占空比,那么 PWM4P_4 还能向外输出占空比可调的脉冲么? 神农鼎 发表于 2023-1-30 10:12
21.8.12 同时捕获 4 路输入信号的周期和占空比
原理:使用高级 PWM 内部的两通道的捕获模块 CCx 和 CCx+1 ...
如果 PWM6_2 用于捕获外部信号的占空比,那么 PWM8_2 还可以向外输出占空比可调的脉冲信号么?
PWM不进中断
本帖最后由 pingfr 于 2023-6-3 11:31 编辑这个例程不进PWM_ISR中断怎么办?仿真运行时进入一次后就不再进中断了,用示波器看P1.0管脚方波波形是正常的
初始化如下:
PWMA_CCER1 = 0x00; // 写 CCMRx 前必须先清零 CCERx 关闭通道
PWMA_CCMR1 = 0x01; // CC1 为输入模式 , 且映射到 TI1FP1 上, 0数字滤波
PWMA_CCMR2 = 0x02; // CC2 为输入模式 , 且映射到 TI1FP2 上, 0数字滤波
PWMA_CCER1 = 0x11; // 使能 CC1 上的捕获功能 , 使能 CC2 上的捕获功能
PWMA_CCER1 |= 0x00; // 设置捕获极性为 CC1 的上升沿
PWMA_CCER1 |= 0x20; // 设置捕获极性为 CC2 的下降沿
PWMA_CCER2 = 0x00;
PWMA_CCMR3 = 0x01; // CC3 为输入模式 , 且映射到 TI3FP3 上
PWMA_CCMR4 = 0x02; // CC4 为输入模式 , 且映射到 TI3FP4 上
PWMA_CCER2 = 0x11; // 使能 CC3 上的捕获功能 , 使能 CC4 上的捕获功能
PWMA_CCER2 |= 0x00; // 设置捕获极性为 CC3 的上升沿
PWMA_CCER2 |= 0x20; // 设置捕获极性为 CC4 的下降沿
PWMA_CR1 = 0x01; // 1:使能计数器
PWMA_IER = 0x1e; // 使能 CC1/CC2/CC3/CC4 捕获中断
从运行watch截图能看出来,g_PWMA_SR已经等于0x07了,说明捕获到波形上升下降沿了,但就是不进PWM中断函数,为了调试,我在定时器0中断里读的g_PWMA_SR = PWMA_SR,哪位能给指点一下?
stc8h单片机视频教程34集,pwm捕获应用二测量占空比和周期,视频讲的例程有验证过吗?为何中断不用清零,我的还要上次的时间减去当前值才能算出来周期,要不会不断计数直到溢出,而且中断后也不用软件置零
页:
[1]
2