188610329 发表于 2021-11-17 20:07 感谢你的宝贵实测数据,贴个标签记录在锁紧座上 |
冰火风轮 发表于 2021-11-17 19:31 亲身体验,5V电压,STC15W204S, 擦写7K8 次多点,寿终正寝,所以,玩5000次左右就差不多,可以考虑正儿八经写个程序进去长用,然后换一片新的再玩,比较合算。 |
Y_G_G 发表于 2021-11-17 00:05 确实是闲的 ![]() 这次画板顺手把 OLED 和 LCD 接口预留了,现在记录才 200 多次 |
冰火风轮 发表于 2021-11-16 23:30 如果你想用这小玩意搞示波器,那就太无聊了,功能鸡肋得要命,所谓的波形和功能实在是看不下去,最主要是太花时间了 想DIY示波器,推荐你用串口屏,淘晶驰的还可以 用了串口屏,你就会发现OLED实在是太弱了,串口屏对于OLED简直就是另一个世界,就是有点不便宜 |
Y_G_G 发表于 2021-11-16 21:07 谢谢,显波纹不能取平均值,试了一条直线,放主过程是特意的,想看看51到底跑多快 这几天一直乌龙,用的STC15,看的STC12的数据,老觉得算的不对 |
冰火风轮 发表于 2021-11-16 19:39 ADC采用中断方式进行 128累加,然后取平均值,什么算法都不需要,包你稳 不要在主函数中等待ADC完成,这样主程序跑都跑不动,别说是51,什么单片机都不是在主程序等待ADC完成的,而且还有那么多算法 直接中断完事 不信你试一下就知道我说的对不对 |
188610329 发表于 2021-11-15 21:51 谢谢,现在的差不多是阶梯叠加法,采集5次叠加平移取顶,再复杂估计51跑不动了, OLED 可以看见刷不动, LCD12864 直接看到一个点一个点蹦,几秒才画完 |
要波形平滑的话,一般是用阶梯累加法,比如12位ADC 累加16次,得到一个16位值,就是一个比较均衡的16位ADC, 然后根据需要,换算出显示的数值存入显示buf后,把这个中间累加得到的16位中间值,右移一位,再累加8次新的12位ADC值,得到新的16位ADC中间值。换算出新的显示值,存入新的显示buf后,再右移一位,累加新的8次12位ADC值,周而复始,ADC的值就会非常的平滑,在显示ADC变化的时候,会比较舒服。 |
先排序,然后掐头去尾,求平均,次数自己定 |
试试第二种吧,多采集一些样本,再进行输出。 |
被检测端,足够电容支持 |
如果时间允许,请使用更多采样,以便获得更好的平均值。 |
采用后者 如果程序不着急做别的事的话,可以采样多一点,34次,或者更多次数的ADC 我一般中断进行是66次,去掉最大和最小值,再平均,但这意义并不大,最多只是不想让显示跳来跳去而已 通过TL431反推VCC,5.00-5.07这个值实际上在ADC的误差范围之内的 |