定时+程序运行时间问题

xefon   2006-4-7 10:43 楼主
各位我用如下程序结构,计算流量,发现累积流量误差太大,主要原因是我一秒钟读就取脉冲数,而在主程序里不能保证每一秒都查询pulse_flag=1,因为flow_act()这部分程序的运行时间有时大于一秒,所以就会漏掉脉冲数,所以累积流量就会出错。我现在不知道该怎么办?是优化
flow_act() 这部分程序(我看也不好优化了),还是提高主频(我现在是32.768K晶振)???各位能否指点一下???

中断1 //捕获中断捕获脉冲
中断2() //Timer_A定时一秒读取脉冲数
{
pulse_flag=1;
}

main()
{
init();
while(1)
{ if(pulse_flag==1)
{
flow_act();//瞬时流量累积流量计算,涉及到乘除法
}
}


}

回复评论 (5)

方法:提高主频或将TA定时时间拉长.
点赞  2006-4-10 11:28
各位高手指点一下啊,我现在就是转不过弯儿,不知如何解决?我把Timer_A定时两秒,三秒后流量处理按一秒,这样还是有误差,好像这部分(flow_act();)程序运行时间不定,难道有时超过三秒???
点赞  2006-4-10 11:29
提高主频?我现在手头只有32.768K的晶振,有办法提高吗?还是只有用8M晶振?
点赞  2006-4-10 11:31
用FLL+提高MCLK
点赞  2006-4-10 13:52
13X,14X没有锁频环,(FLL+)啊
点赞  2006-4-10 14:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复