例如,CAP1、CAP2分别捕获俩上升沿,应该如何计算这两个上升沿的间隔,从而计算出频率呢?
假如说这是一个50HZ正弦波连续的两个过零点,那么CAP1、CAP2捕获的时间间隔应该为20ms,这个值应该如何计算得到?希望能回答的具体点,感谢
anfu lee:
@Yi Su1,
So easy! 下载并安装controlSUITE, 找你所选的Device,里边有大量的example project,一般都有ecap_apwm和ecap_capture_pwm这两个Project, 仔细查看代码,你就会明白!
例如,CAP1、CAP2分别捕获俩上升沿,应该如何计算这两个上升沿的间隔,从而计算出频率呢?
假如说这是一个50HZ正弦波连续的两个过零点,那么CAP1、CAP2捕获的时间间隔应该为20ms,这个值应该如何计算得到?希望能回答的具体点,感谢
Yi Su1:
回复 anfu lee:
就是对这一部分不太明白才这么问,比如说捕获时间的范围是32位计数器的计数范围还是哪个范围,时基是否与所设的系统时钟有关?
例如,CAP1、CAP2分别捕获俩上升沿,应该如何计算这两个上升沿的间隔,从而计算出频率呢?
假如说这是一个50HZ正弦波连续的两个过零点,那么CAP1、CAP2捕获的时间间隔应该为20ms,这个值应该如何计算得到?希望能回答的具体点,感谢
Yi Su1:
大概解决了,谢谢
例如,CAP1、CAP2分别捕获俩上升沿,应该如何计算这两个上升沿的间隔,从而计算出频率呢?
假如说这是一个50HZ正弦波连续的两个过零点,那么CAP1、CAP2捕获的时间间隔应该为20ms,这个值应该如何计算得到?希望能回答的具体点,感谢
Emma Wang:
首先,请确认计数模式是Absolute time mode还是 time difference (delta) mode
两者有很大的区别:
1.在Absolute time mode下,您需要的结果为:
TSt1 = ECap1Regs.CAP1;
TSt2 = ECap1Regs.CAP2;
Period=TSt2-TSt1;
2.在time difference (delta) mode下,您需要的结果为:
TSt2 = ECap1Regs.CAP2;
Period=TSt2;
在以上两种情况中,都需要考虑系统频率,换算公式如下:
系统时钟频率为Fsys,则实际结果应为time=Period/Fsys;
希望我的解答能够帮助到你。