pelion 发表于 2023-11-6 14:08:47

梁工 发表于 2023-11-6 13:05
你在捕获中断中取反一个IO来指示,示波器观察,输入频率稳定的信号,则IO输出信号频率的一半,就能知道是 ...

另外,关闭溢出中断的时候就不会出现这种波形

梁工 发表于 2023-11-6 16:03:58

pelion 发表于 2023-11-6 14:08
另外,关闭溢出中断的时候就不会出现这种波形

这样清除标志试试:
sr1 = PWMA_SR1;
PWMA_SR1 &= ~sr1;

然后贴上面的示波器图

pelion 发表于 2023-11-6 16:27:07

pelion 发表于 2023-11-6 14:08
另外,关闭溢出中断的时候就不会出现这种波形

可以了,请教一下,这是为啥呀?

梁工 发表于 2023-11-6 17:16:11

pelion 发表于 2023-11-6 16:27
可以了,请教一下,这是为啥呀?

你原来的程序:
sr1 = PWMA_SR1;
PWMA_SR1 = 0;
有机会这样:执行sr1 = PWMA_SR1之后,此时刚好出现捕捉信号中断,然后执行PWMA_SR1 = 0,清除掉了捕捉中断。
但是按理应该很难遇到,除非你的信号也是用PWM输出的,即你将PWM输入到捕捉,这样就会出现同步问题。
而用如下程序:
sr1 = PWMA_SR1;
PWMA_SR1 &= ~sr1;
则清除的读到的1,读之后变成1的不会被清除。

pelion 发表于 2023-11-6 18:03:36

梁工 发表于 2023-11-6 17:16
你原来的程序:
sr1 = PWMA_SR1;
PWMA_SR1 = 0;


好的,谢谢
页: 1 [2]
查看完整版本: STC8H8K64U PWMA同时用作捕获和输出采集时,出现捕获遗漏问题