max-men 发表于 2013-5-26 22:36:08

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

本帖最后由 max-men 于 2013-5-27 09:55 编辑

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

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

binaimei2007 发表于 2013-5-26 22:51:37

显示波形点时判断当前点是否是网格点,一点小想法,仅供参考。

hujian2288 发表于 2013-5-26 23:01:03

描点、画线,清屏。

max-men 发表于 2013-5-26 23:07:30

hujian2288 发表于 2013-5-26 23:01 static/image/common/back.gif
描点、画线,清屏。

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

holts2 发表于 2013-5-26 23:16:15

描点、画线,画网格,清屏。

max-men 发表于 2013-5-26 23:18:24

holts2 发表于 2013-5-26 23:16 static/image/common/back.gif
描点、画线,画网格,清屏。

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

holts2 发表于 2013-5-26 23:43:26

              是的

stm8s 发表于 2013-5-27 00:57:20

不是这样的,记住上次的点,只清上次所画的点,这样速度才快

max-men 发表于 2013-5-27 09:57:24

stm8s 发表于 2013-5-27 00:57 static/image/common/back.gif
不是这样的,记住上次的点,只清上次所画的点,这样速度才快

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

xlwq 发表于 2013-5-27 10:21:28

用两个数组,一个存放当前显示点,用来画当前波形,另一个存放上一次显示点,颜色与背景色相同,这样就可以比较快的实现画点了!!

shentqlf 发表于 2013-7-8 16:43:58

stm8s 发表于 2013-5-27 00:57 static/image/common/back.gif
不是这样的,记住上次的点,只清上次所画的点,这样速度才快

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

roc. 发表于 2013-7-8 16:59:15

//---------------------------------------------------------------------------------
        for (x=0;x<320;x++)        {                        //擦除上一帧 波形
                if ( (DATA2>28) & (DATA2<228) ){
                        dat = 255-DATA2;
                        dat = dat-28;
                        dat = dat+y1+1;
                        a=dat&0x00ff;
                        color = X_Table + Y_Table;//背景网格
                        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>28) & (DATA<228) )                {
                        dat = 255-DATA;
                        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;
                DATA2=a;
        }

dongfo 发表于 2013-7-8 17:16:48

roc. 发表于 2013-7-8 16:59 static/image/common/back.gif
//---------------------------------------------------------------------------------
        for (x=0;x28) & ...

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

fishplj2000 发表于 2013-7-8 20:13:41

shentqlf 发表于 2013-7-8 16:43 static/image/common/back.gif
对的,我以前做过一个波形显示的,就是这样实现的

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

default 发表于 2014-4-22 11:15:42

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

我觉得事实上就是按照保存的数据用背景色来描图,也就是说上一次波形的擦除,相当于是利用备份数据和背景色描波形图。所以不会很慢,也不需要对比。
页: [1]
查看完整版本: 新手TFT显示波形原理及方法