HateMath 发表于 2012-06-26 16:04

[原创]我的虚拟电压表 跟你们的不一样

编写驱动之余,一时兴起,顺手做了个虚拟电压表程序,可以在控制台中用LED数字的形式显示电压。下面你看到的是个protype,还不完善,不过我暂时没有要完善它的意思。主要是show一下idea。
1.电压哪里来?首先我写了个内核3.3.1版本下的ADC的底层驱动(话说linux3.3.x内核的api和2.6.x的还是有些不一样的),上层的应用程序打开/dev/adc设备节点,和驱动通信,读取S3C2410内置ADC的数据,并且经过转换,得到采样通道的电压。

2.LED显示效果是如何做到的?其实就是把电子领域的LED户外显示屏中字符点阵技术活用到纯软件中来而已。再用点ASCII控制码小技巧,比如\f清屏之类的,即可搞定。



截图做了个gif图片,看看效果吧:



NOTE:
这个程序运行在“正宗”的终端软件中(比如windows超级终端、secureCRT等)效果比较好,但如果运行在功能不全的第三方山寨终端中,\f清屏(page feed)命令无效,导致屏幕不停翻滚,效果不到位。

附:在终端上绘制LED大字符的模块文件




用法:调用void draw_led_dot(float val)即可。
val为浮点数,如3.14
有兴趣的朋友可以完善它

seelook 发表于 2012-06-30 10:23

:))不错诶,
页: [1]
查看完整版本: [原创]我的虚拟电压表 跟你们的不一样