本帖最后由 Angus 于 2016-7-19 21:41 编辑
看一下 Timer1 的中断代码,每次检测到过0后,先用 Timer1 的值减上次过零时刻值 ZeroTick 得当前周期值,后面再更新当前过零时刻 ZeroTick,这样中间就有一段时间没记入,所以 PeriodNow 的值会比实际周期小一点点,用倒数算出来的转速就会高一点点。我做过测试,电转速在10万转以下时,这个误差很小。
后来的代码已修正了这个问题,用前后两次过零时刻 ZeroTick 计算 PeriodNow 。重新下载代码测测,与你用示波器测前后两次换相时刻算出来转速,误差应很小了。 |