STC8H....PWM捕获脉宽问题 | 已解决
P_SW2 |= 0x80;PWMA_CCER1= 0;
PWMA_CCER2= 0;
PWMA_SR1 = 0;
PWMA_SR2 = 0;
PWMA_ENO = 0;
PWMA_PS = 0;
PWMA_IER = 0;
PWMA_PSCR = 11;
PWMA_CCMR3= 0x01;
PWMA_CCER2 |= 0x01;
PWMA_CCMR4 = 0x02;
PWMA_CCER2 |= 0x30;
PWMA_PS |= (1<<4);
PWMA_ISR_En |= 0x08;
PWMA_ISR_En |= 0x10;
这设置是根据论坛的DEMO来设置的,MCU主频12MHz, PWM时钟12分频, 所以捕捉时间的分辨率为1us, 最大65535us。
想请问,如需要捕获的周期是> 65535us,那如何设置参数呢? wnagming 发表于 2024-9-6 09:05
这么大的时间,要不考虑写个定时器手动捕获?
请教老大,有没有参考的资料呢? wnagming 发表于 2024-9-6 09:09
写个定时器,定时1ms,在中断函数中判断IO电平,如果上次是高电平这次是低电平,就是下降沿,反之亦然, ...
请教老大,按照老大的方法,如果我的PWM是500us低电平,500us高电平。这1M的定时器有影响吗?
修改PWMA_PSCR,最大65536分频
可以设置120分频,则可以捕获最大655.35ms(分辨率10us)。
可以设置1200分频,则可以捕获最大6.5535s(分辨率100us)。
对于大部分测控系统,16位的读数已经足够准确。 梁工 发表于 2024-9-6 09:37
可以设置120分频,则可以捕获最大655.35ms(分辨率10us)。
可以设置1200分频,则可以捕获最大6.5535s(分辨率 ...
你好,梁工~意思是把分频寄存器PWMA_PSCR设置一下就好了? 在pwm中断里增加溢出中断,并增加溢出中断次数。 alexzhou88 发表于 2024-9-6 09:47
你好,梁工~意思是把分频寄存器PWMA_PSCR设置一下就好了?
是的,16位的分频器。 梁工 发表于 2024-9-6 10:55
是的,16位的分频器。
已经解决到问题了,谢谢梁工。{:handshake:}
页:
[1]