kxyz 发表于 2023-10-7 17:42:25

关于PWM捕获中CCMRn设置 | 已解决

STC8H系列-高级PWM相关程序\高级PWM相关程序\03-PWMA-4个捕获通道 例程中

    PWMA_CCMR1= 0x31;                // 通道1模式配置, 配置成输入通道, 8个时钟滤波

手册中CCMRn部分找不到相关解释



请问大家在哪儿有相关时钟滤波设置

梁工 发表于 2023-10-8 00:05:42

再往下面翻两页就有了:



kxyz 发表于 2023-10-8 08:38:33

哦,看到了,是说在捕获模式下把PWMA_CCMRn这个寄存器做了另外的功能定义和比较模式区分出来了 ,谢谢梁工!

kxyz 发表于 2023-10-9 11:00:14

请问这个数字滤波器长度该怎么设定,比如在IO口上1秒约检测到1个脉冲和1秒约检测100个脉冲,这个ICnF分别设多少合适(12M晶振,1T主频)

梁工 发表于 2023-10-9 21:48:23

kxyz 发表于 2023-10-9 11:00
请问这个数字滤波器长度该怎么设定,比如在IO口上1秒约检测到1个脉冲和1秒约检测100个脉冲,这个ICnF分别设 ...

先根据要求的捕获时间分辨率确定PWM的时钟,然后再根据你的干扰特征选择数字滤波1~256个PWM时钟,用于滤除毛刺。跟检测到多少个脉冲没有直接关系的。
假设我要捕获的最长周期是500ms,最小周期是1ms,干扰信号不超过50us,MCU主频24MHz,则:
PWMA_PSCR = 240-1;//PWM时钟为主频分频240,则PWM时钟周期为10us,最大捕获时间655ms。
PWMA_CCMR1= (3<<4) +0x01;// 通道1配置成输入连接到TI1FP1(CC1S = 0x01), 8个时钟滤波(3<<4)
                                                //干扰不大于50us,则8个时钟对应80us,就是合理设置。

fengzaixiao 发表于 2024-10-31 15:53:49

梁工 发表于 2023-10-9 21:48
先根据要求的捕获时间分辨率确定PWM的时钟,然后再根据你的干扰特征选择数字滤波1~256个PWM时钟,用于滤 ...

你好,请问最大捕获时间655ms是怎么得到的

fengzaixiao 发表于 2024-10-31 16:00:44

fengzaixiao 发表于 2024-10-31 15:53
你好,请问最大捕获时间655ms是怎么得到的

还有这个PWM时钟周期10us,是每隔10us就检测一次引脚电平状态吗

梁工 发表于 2024-10-31 17:02:13

fengzaixiao 发表于 2024-10-31 15:53
你好,请问最大捕获时间655ms是怎么得到的

PWM时钟100KHz,周期10us,16位计数器计数值65535,即为655.35us,就是655ms。

梁工 发表于 2024-10-31 17:02:31

fengzaixiao 发表于 2024-10-31 16:00
还有这个PWM时钟周期10us,是每隔10us就检测一次引脚电平状态吗

10us,是PWM时钟周期!
页: [1]
查看完整版本: 关于PWM捕获中CCMRn设置 | 已解决