OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6116|回复: 7

求教. 关于LCD显示窗口(GRAM)写入对应的问题

[复制链接]

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-25 11:54:28 | 显示全部楼层 |阅读模式

一般写资料到GRAM中,  通常会用这两种方式.....

一是原子用的方式,  用逐一画点方式, 好处是可以不用管LCD扫瞄方向,  可以通用, 缺点就是牺牲点速度.
而且可以容易做到只画上字模部份,  背景色不处理.  就像底下这两段代码:

       if(temp&0x01)POINT_COLOR=colortemp;
else POINT_COLOR=BACK_COLOR;
LCD_DrawPoint(x,y);
temp>>=1; 
x++;


       if(temp&0x01)LCD_DrawPoint(x+t,y+pos);//畫一個點     
       temp>>=1; 



另一种是通过GRAM显示窗口对应,  可以大幅提升速度.   但如果碰到想保留背景色,  会有问题,  不知道如何克服 ?



if (USE_HORIZONTAL==1)   // 按螢幕預設方向調整寫入窗口設置
{
      Lcd_SetRegion(y, (LCD_W-8)-x, y+16, (LCD_W-8)-x+7 );   // 設定顯示視窗框對應
}
else
  Lcd_SetRegion(x,y,x+7,y+16);   // 設定顯示視窗框對應
                         LCD_WriteRAM_Prepare();        // 寫入GRAM命令

 
for(i=0;i<16;i++)
{

   for (j=0;j<8;j++)
{
    if( asc2_1608[k]&(1<<j)) LCD_WriteRAM(fc);   // 寫入前景顏色
else 
{
if (fc!=bc) LCD_WriteRAM(bc);   // 寫入背景顏色值
}
}
}


我的问题是,  当设了窗口对应, 连续写入GRAM的方式,  如果碰到我不想写的背景色, 该怎么跳过 ???
目前我理解的是, 窗口对应, 只有写入颜色值到GRAM后,  地址才会自动+1或-1 .    但LCD并没有"透明色"
这种颜色码, 从0x0000-0xffff (16bit颜色时) ,  全都有颜色.     

是不是有什么记存器,  当你不想在这个gram当前对应地址写颜色值时,  可以对它做控制, 同时也可以让
GRAM地址自动+1或-1 .   这样才能达到不变动变景色的目的.   同时能兼顾显示速度 .      求教了 !












正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-25 13:01:09 | 显示全部楼层
回复【楼主位】liuje:
---------------------------------
貌似无解...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2013-7-25 13:32:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-25 13:34:03 | 显示全部楼层
是的啊. 从头到尾看了一遍 ILI93xx 规格资料.   没看到有哪一个记存器有这个功能.

只要设了窗口对应.   就必须逐一填入颜色值,  不能够跳过的.   跳过就会导致显示乱了.....

令人头痛.    难道做LCD控制芯片的厂家没有想到有这种需求吗?

只能让我们按1次定位XY, 1次画1个点.   这样才能达到想划就划, 不想划就跳过的目的吗 ???
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-7-25 13:41:12 | 显示全部楼层
我是先读出颜色再写回去。如果有更好的办法请告诉我……
业余程序玩家。
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-25 14:38:36 | 显示全部楼层
回复【5楼】ofourme:
---------------------------------

这个方法不错喔...     可以来试试.      感谢您.
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-25 15:40:52 | 显示全部楼层
读一次底色的时间,够你单点写好几次了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
 楼主| 发表于 2013-7-25 17:31:27 | 显示全部楼层
嗯.  是的.   LCD读点要比写点慢许多了.....

这只能算是替代的解决办法  .
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-16 10:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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