12864清屏问题
最近在做个题目,但是现在用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 楼主用的12864是ST7920A控制的把,你的ADC这是写的字符把,它不闪就图形闪,这个是你写的命令有问题,好像是开图形关图形什么的,看下他的手册把 全屏清了,再画,无论如何都会闪的。
两种方法解决。
1, 内存中画好,一次性copy 到显存。
2, 画点时候,记录好每个点的Y坐标,然后清屏时候,清这些点就好了,不要全屏清掉。 mcu_lover 发表于 2013-6-23 20:43 static/image/common/back.gif
全屏清了,再画,无论如何都会闪的。
两种方法解决。
1, 内存中画好,一次性copy 到显存。
这是用AD采样的值算出该点亮哪点,所以灭掉点亮的,是做不到那么准确的,因为AD值都在改变。用内存的话,没用过,有什么资料吗? tianheiGE 发表于 2013-6-23 20:23 static/image/common/back.gif
楼主用的12864是ST7920A控制的把,你的ADC这是写的字符把,它不闪就图形闪,这个是你写的命令有问题,好像 ...
嗯,我只是想刷新曲线,关掉的话没有把握做得那么准确。我的命令有什么问题? 小小怪 发表于 2013-6-23 21:30 static/image/common/back.gif
这是用AD采样的值算出该点亮哪点,所以灭掉点亮的,是做不到那么准确的,因为AD值都在改变。用内存的话, ...
假设采样 64个点
建立数组 unsigned char ucYPos
每采样一个AD点 时候 保存其对应的Y轴坐标到ucYPos 数组对应的位置。
例如:
第一个采样点AD值对应的Y轴值是 25
第二个采样点AD值对应的Y轴值是 24
第三个采样点AD值对应的Y轴值是 26
则对应数组里面 ucYPos=25
ucYPos=24
ucYPos=26
清屏时候读出该数组里面64个点的值,就知道曲线对应的每个点的Y值了。
这样就可以实现只清除曲线的功能了。 既然可以画点,肯定可以清点。
页:
[1]