if( A != B )
{
if( flag )
{
middle = 0.0;
middle = ( B- A ) / 60.0f; /* 由于定时器每1分钟执行一次,将两者之间的差值分成60份,即在1小时将A调整至B */
flag = false;
}
A += middle;
}
if( B <= ( A * 1.1f) && B >= ( A * 0.9f)) /* A与B相临近时,把标志位设置为true,为了防止数据突变时,flag为false时middle不能改变 */
{
flag = true;
}
此方法不稳定:程序一开始假如 B > A 时, if( flag )成立,middle是正值,flag = false;A += middle,A逐渐向B靠近。万一检测数据有干扰波动,B < A了,由于flag 为false,无法改变middle,导致A += middle后A越来越大。请问有什么可以改进的方法吗?谢谢!!