搜索
bottom↓
回复: 14

新手TFT显示波形原理及方法

[复制链接]

出0入0汤圆

发表于 2013-5-26 22:36:08 | 显示全部楼层 |阅读模式
本帖最后由 max-men 于 2013-5-27 09:55 编辑

新手求TFT或点阵显示波形原理及方法,想不通如何显示波形的同时显示方网格,如能帖上您保贵的代码将不胜感激

P~PS: 各位高手,有没有比较系统一点的方法介绍,这样说得挺乱的我等理解不了啊,有什么教程之类的就更好了

阿莫论坛20周年了!感谢大家的支持与爱护!!

如果天空是黑暗的,那就摸黑生存;
如果发出声音是危险的,那就保持沉默;
如果自觉无力发光,那就蜷伏于牆角。
但是,不要习惯了黑暗就为黑暗辩护;
也不要为自己的苟且而得意;
不要嘲讽那些比自己更勇敢的人。
我们可以卑微如尘土,但不可扭曲如蛆虫。

出0入0汤圆

发表于 2013-5-26 22:51:37 来自手机 | 显示全部楼层
显示波形点时判断当前点是否是网格点,一点小想法,仅供参考。

出0入0汤圆

发表于 2013-5-26 23:01:03 | 显示全部楼层
描点、画线,清屏。

出0入0汤圆

 楼主| 发表于 2013-5-26 23:07:30 | 显示全部楼层
hujian2288 发表于 2013-5-26 23:01
描点、画线,清屏。

哪如何同时显示网格和波形

出0入0汤圆

发表于 2013-5-26 23:16:15 | 显示全部楼层
描点、画线,画网格,清屏。

出0入0汤圆

 楼主| 发表于 2013-5-26 23:18:24 | 显示全部楼层
holts2 发表于 2013-5-26 23:16
描点、画线,画网格,清屏。

那不是刷屏一次画一次网格?

出0入0汤圆

发表于 2013-5-26 23:43:26 | 显示全部楼层
              是的

出0入0汤圆

发表于 2013-5-27 00:57:20 来自手机 | 显示全部楼层
不是这样的,记住上次的点,只清上次所画的点,这样速度才快

出0入0汤圆

 楼主| 发表于 2013-5-27 09:57:24 | 显示全部楼层
stm8s 发表于 2013-5-27 00:57
不是这样的,记住上次的点,只清上次所画的点,这样速度才快

那也就是在RAM里存放显示过的点,如果屏比较大比如4.2吋 那不是相当占内存

出0入0汤圆

发表于 2013-5-27 10:21:28 | 显示全部楼层
用两个数组,一个存放当前显示点,用来画当前波形,另一个存放上一次显示点,颜色与背景色相同,这样就可以比较快的实现画点了!!

出0入17汤圆

发表于 2013-7-8 16:43:58 | 显示全部楼层
stm8s 发表于 2013-5-27 00:57
不是这样的,记住上次的点,只清上次所画的点,这样速度才快

对的,我以前做过一个波形显示的,就是这样实现的

出0入0汤圆

发表于 2013-7-8 16:59:15 | 显示全部楼层
//---------------------------------------------------------------------------------
        for (x=0;x<320;x++)        {                        //擦除上一帧 波形
                if ( (DATA2[x]>28) & (DATA2[x]<228) ){
                        dat = 255-DATA2[x];
                        dat = dat-28;
                        dat = dat+y1+1;
                        a=dat&0x00ff;
                        color = X_Table[x] + Y_Table[a+1];//背景网格
                        color = color << 5;
                        LCD_SET_XY(x+x1+1,a);
                        LCD_CS_Low();
                        LCD_RS_High();
                        LCD_Write_Data_16(color);
                }
        }
//---------------------------------------------------------------------------------
        for (x=0;x<320;x++)        {                        //画新的一帧 波形
                if ( (DATA[x]>28) & (DATA[x]<228) )                {
                        dat = 255-DATA[x];
                        dat = dat-28;
                        dat = dat+y1+1;
                        a=dat&0x00ff;
                        LCD_SET_XY(x+x1+1,a);
                        LCD_CS_Low();
                        LCD_RS_High();
                        LCD_Write_Data_16(0x07c0);
                }
        }
//----------------------------------------------
        for (x=0;x<400;x++)        {                        //新波形存入DATA2[]
                a=DATA[x];
                DATA2[x]=a;
        }

出0入0汤圆

发表于 2013-7-8 17:16:48 | 显示全部楼层
roc. 发表于 2013-7-8 16:59
//---------------------------------------------------------------------------------
        for (x=0;x28) & ...

就使用一个数组作为显示缓存,显示部分只负责不停地显示数组数据。获取部分只负责更新数据

出0入0汤圆

发表于 2013-7-8 20:13:41 | 显示全部楼层
shentqlf 发表于 2013-7-8 16:43
对的,我以前做过一个波形显示的,就是这样实现的

记住原来显示的点
那是不是说在更新一屏时:程序要对每个点的坐标进行判断,来知道是否原来的点
在屏的分辨率比较高时,这样的判断功能岂不要花费大量的时间?

出0入0汤圆

发表于 2014-4-22 11:15:42 | 显示全部楼层
fishplj2000 发表于 2013-7-8 20:13
记住原来显示的点
那是不是说在更新一屏时:程序要对每个点的坐标进行判断,来知道是否原来的点
在屏的分 ...

我觉得事实上就是按照保存的数据用背景色来描图,也就是说上一次波形的擦除,相当于是利用备份数据和背景色描波形图。所以不会很慢,也不需要对比。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-9-27 06:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表