"完全使用单片机的片内资源:256+1024字节片内RAM,
分辨率144*160(比上次的少一点点,再多就没有足够时间采样和旋转、处理数据了)
"
用了什么方法压缩数据,还是做了优化或视觉欺骗?赶紧坦白:) ...
程序匠人 发表于 2010-4-13 10:08
哈哈!超级牛人老X总算坦白了:) ...
以下引用21IC上机电全能、智勇双全的牛人老X发言,版权归老X所有。
Re:
1、老x根本就不是用的插值算法,每一列都是一次采样的数据,屏幕上就是真实的144次采样数据!这个变压器的输出波形就是这样的,或许电网电压的波形就是这种形状,上次横着显示是也是这种波形,还准备说下电网品质的问题,后来忘记了。
2、下图的梯形波是因为输入太大超出电源电压了,当然会削顶,还大些甚至会变成矩形波形,因为变压器的输出是9VAC,峰值会有13V,远远大于单片机的5V。
3、152*160点阵显示没什么困难,甚至更大些都没问题,只是波形复杂时最右边的波形会有点描不完整,所以才定的144*160点阵,要更大也可以,但会有其他影响,而不是极限原因。
4、老x的程序基本上是全部C语言,只有关键的地方采用汇编以减少无谓的中间传递,从程序代码只有1202字节就可用看出,绝不会是太复杂的程序,但优化的思想却不是简单的事,可不是那么容易被超越的哦~:)
5、同步不是用硬件同步的,而是通过数据同步。由于数据采样率设计成分频可调的,所以每一行都会有可能采样,并有可能处理同步,所以必然会占用显示区域的时间,影响可显示范围,这点还可以稍微优化下,但也是以牺牲内存为代价的。
6、缺点也有,正常方向显示后多消耗了很多时间,刷新速率当然就不会是实时的了,因而造成采样也是一桢一桢的。由于采样的非连续性,波形同步效果明显不如横向显示,这点其实也可以优化一下;
7、这东西,没做过就不知道会有多难、多伤脑筋,希望更多的人来挑战、超越一把!
当然,是你自己先做过、优化过才行哦~~:)
而老x的程序由于程序可读性太好,优化思想太巧妙,老x都舍不得拿出来了,由于怕拿出来大家就不肯自己去懂脑子了,所以老x藏起来了哈,等哪天顶的人多了、玩的人多了再放出来;P
另外,老x的实际上可以实现各种彩色显示的,可不是21楼的硬件可以实现的哦~
至于29楼的“补点插值运算”猜想根本就不对,如果那样的话,你怎么解释这样的波形:(PS:这是老x拔掉变压器,用摸ADC输入脚时的人体感应电压,可以看出是相当的杂乱但又有规律的)
手机中的颤抖机曝光时间太长,所以波形有混叠现象 |