uiz 发表于 2023-4-12 22:56:08

求助,利用PWM测量两路占空比为50%的方波的相位差

芯片型号STC8H3K64S2。
我想通过读取两个方波在两个上升沿时PWMx_CCRx的差值实现测量两路信号的相位差,即在方波A的上升沿读取PWM计数器的值,在方波B的上升沿读取PWM计数器的值,因为两路信号存在相位差,所有会导致计数器在两次上升沿时存在差值,然后将差值与整个周期内计数个数相比就能得到相位差,但是通过串口发现测量有问题。


通过串口发回Phase_diff的值,发现是0,经过进一步的分析,发现在else if语句中的PWMA_CCR4的值与cap_old的值相同,这是为什么?PWM计数器不是应该一直在计数吗?

梁工 发表于 2023-4-12 23:35:03

请测试:
19-PWMA-同时捕捉P1口2路输入信号的周期和占空比

20-PWMB-同时捕捉P2口2路输入信号的周期和占空比



uiz 发表于 2023-4-13 13:08:37

梁工 发表于 2023-4-12 23:35
请测试:
19-PWMA-同时捕捉P1口2路输入信号的周期和占空比



我有个问题,为什么不能读取同一个计数器在两个上升沿的差值来计算相位差

梁工 发表于 2023-4-13 14:30:06

uiz 发表于 2023-4-13 13:08
我有个问题,为什么不能读取同一个计数器在两个上升沿的差值来计算相位差 ...

可以的啊!
相位是两个信号相对的时间参数,所以要测两个信号才有相位的说法,你捕捉两个信号的上升沿,计算时间差即可。
页: [1]
查看完整版本: 求助,利用PWM测量两路占空比为50%的方波的相位差