我一直在看你的project,我觉得有这几个方面的问题:
1. ICSYS的BUFEN=1而LATQ=0。根据数据手册,此时每当发生输入捕捉事件时,TC10和TC10H的值会刷新;但是此时PACN10和PACN10H的值如何变化却没有说明;实际上,PACN10和PACN10H的值应该在LATQ=1的情况下,与MCCNT的动作同步;所以输入捕捉和脉冲计数不能同时采用缓冲锁存的方式计数;
2. 你对输入捕捉和脉冲计数的读数都是在主循环中根据MDC的定时进行的。输入捕捉和脉冲计数都没有采用中断。这样,你的读数与输入信号是不同步的。这在高频而且频率稳定的情况下可能没有问题,但是如果输入信号频率较低,或者输入信号的频率变化较快的情况下,读数就会出现错误。 |