昨天在调试51单片机的串口时,发现芯片手册上有一句话,在使用定时器1产生串口的波特率时,定时器1就不能使能了。不是不能用,是直接不让使能了,使能后会出错,导致发送的数据不稳定。
今天继续研究了触摸滑条,发现滑条输出的值为从小到大,如下图所示的样子,这就导致从最上面滑动向下滑动和中间向下滑动输出的值不一致,导致输出变化过快,后面使用差值发现就平滑了很多,因为无论怎么滑动,差值永远都是一样的。
最开始直接使用滑条输出值与系统的输出值进行相加减,发现变化过快,且手不离开滑条,值也会一直增大或减小。
后面考虑每次的滑条变化值为固定值(如从上到下一次为9-0),也就是使用另一个静态变量做备份,手不离开滑条时,在备份值上对输出值进行相加减(如上一次备份值为18,则本次手不离开滑条,系统输出值变化范围为9-27),手离开滑条后,对备份值进行更新。波动也是很大,效果不好。
最后使用差值,每次滑动时,判断方向后,对系统输出值进行两次差值的相加减,取消备份值,效果还可以,输出可控。并对滑条的直接输出值,进行一次一阶低通滤波和一次消抖。效果不错