大家好,
我的项目上有一个3.5寸的触摸屏,触摸屏上做了一个图形UI,也就是滑条,如下,
这个滑条主要用来设置一个变量的值,从左往右滑动时,滑条显示从0到100自增,最大100.
假设这个变量是:
unsigned char speed_val=0;
现在要把最终设定的值保存起来,比如最终滑到50,要把50这个值写进flash保存,也就是保存最后一个值。
我之前没用图形UI时,用的保存方法是,再定义一个变量的副本,
unsigned char speed_val_temp=0;
不停的对比speed_val和speed_val_temp的值,当两者值不一样时,说明滑条的值发生了变化,就把speed_val保存进flash,大概这样,
if(speed_val != speed_val_temp)
{
speed_val_temp=speed_val;
write_data_to_flash(speed_val_temp);
}
由于之前用户操作不频繁,所以用这种方法。
现在用了滑条,假设需要保存50这个值,用户从0滑到50,中间经历了49个值,这49个值都会被写进flash,导致写flash太频繁,而这中间的49个值也并不是我需要的,我只需要保存50这个值。但现在滑条的问题是,我不知道用户什么时候停止滑动,用户最终滑到什么值。
有人说可以在UI上加一个保存按钮,滑到最终值,点一下保存。这个确实不错,但是为了UI的好看和简洁性,最终没有加,而且我看好多别人的滑条上面也没有保存按钮啊,他们是怎么实现保存数据的?
希望大神能赐教一些思路,谢谢!
|
加延时,例如1秒后再比较,无变化就保存