12864清屏问题

2020-01-27 11:48发布

最近在做个题目,但是现在用12864时有问题,我做的是描点显示AD电压曲线,我的想法是当曲线描点显示到128个点时,就刷屏,让曲线重新显示,我用的刷屏是一下程序:

void ClrGDRAM(void)
{
        unsigned char x,y;
        for(y=0;y<64;y++)
            for(x=0;x<16;x++)
            {
           writeCommand(0x34);
            writeCommand(y+0x80);     //行地址  
            writeCommand(x+0x80);     //列地址  
            writeCommand(0x30);
            writeData(0x00);
            writeData(0x00);
        }
        //writeCommand(0x30);
}
用这个刷屏很明显很久。有没有更快一点的刷屏方法?

http://v.youku.com/v_show/id_XNTc0NDc3NjQw.html
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
tianheiGE
1楼-- · 2020-01-27 13:49
 精彩回答 2  元偷偷看……
mcu_lover
2楼-- · 2020-01-27 19:19
全屏清了,再画,无论如何都会闪的。
两种方法解决。
1, 内存中画好,一次性copy 到显存。
2, 画点时候,记录好每个点的Y坐标,然后清屏时候,清这些点就好了,不要全屏清掉。
小小怪
3楼-- · 2020-01-27 22:49
mcu_lover 发表于 2013-6-23 20:43
全屏清了,再画,无论如何都会闪的。
两种方法解决。
1, 内存中画好,一次性copy 到显存。

这是用AD采样的值算出该点亮哪点,所以灭掉点亮的,是做不到那么准确的,因为AD值都在改变。用内存的话,没用过,有什么资料吗?
小小怪
4楼-- · 2020-01-27 23:14
tianheiGE 发表于 2013-6-23 20:23
楼主用的12864是ST7920A控制的把,你的ADC这是写的字符把,它不闪就图形闪,这个是你写的命令有问题,好像 ...

嗯,我只是想刷新曲线,关掉的话没有把握做得那么准确。我的命令有什么问题?
mcu_lover
5楼-- · 2020-01-28 04:11
小小怪 发表于 2013-6-23 21:30
这是用AD采样的值算出该点亮哪点,所以灭掉点亮的,是做不到那么准确的,因为AD值都在改变。用内存的话, ...

假设采样 64个点
建立数组 unsigned char ucYPos[64]

每采样一个AD点 时候 保存其对应的Y轴坐标到ucYPos 数组对应的位置。

例如:
第一个采样点AD值对应的Y轴值是 25
第二个采样点AD值对应的Y轴值是 24
第三个采样点AD值对应的Y轴值是 26

则对应数组里面 ucYPos[0]=25
                        ucYPos[1]=24
                        ucYPos[2]=26

清屏时候读出该数组里面64个点的值,就知道曲线对应的每个点的Y值了。
这样就可以实现只清除曲线的功能了。
RUANJI
6楼-- · 2020-01-28 08:26
 精彩回答 2  元偷偷看……

一周热门 更多>