OpenEdv-开源电子网

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

SSD1289ucgui底层驱动优化

[复制链接]

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
发表于 2015-2-15 01:43:13 | 显示全部楼层 |阅读模式
5金钱
Address_set(x,y,x+xsize,y);//?è????±ê???? 
      for (;xsize > 0; xsize--, x++, p++) {
LCD_WR_Data(*p);
//        LCD_L0_SetPixelIndex(x, y, *p);

我把 其中DrawBitLine16BPP这个函数 优化了 但是刷出的是白色的,单步调试确实 是有显示,但是 就是刷图的中途 屏幕 突然变白了。。。。这是为什么啊?

我在 画线的 函数里面这样使用是好的

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

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-2-15 02:42:48 | 显示全部楼层
void LCD_SetCursor( uint16_t Xpos, uint16_t Ypos )
{
LCD_WR_REG_DATA(0x004e, Xpos );      
LCD_WR_REG_DATA(0x004f, Ypos );  
LCD_SSD1289_CMD(0x0022);
}


void Address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2)

LCD_WR_REG_DATA(0x0044,(x2<<8)+x1);
LCD_WR_REG_DATA(0x0045,y1);
LCD_WR_REG_DATA(0x0046,y2);
LCD_WR_REG_DATA(0x004e,x1);
LCD_WR_REG_DATA(0x004f,y1);
LCD_SSD1289_CMD(0x0022);  
}


为什么第一个函数就可以??而第二个函数就不行 呢????  我用窗口的来设计一条直线,为什么不行呢?有的时候 屏幕直接 白了。一开始写的是x轴,然后就不行了。屏幕全白了。
还有一个问题  4e 和4f不是 AC寄存器吗?不是可以自增的吗?为什么我每次还需要 给值呢????要不ram的值不会增加
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-2-15 02:53:59 | 显示全部楼层
是不是只有设置了 窗口 自增寄存器 才会起作用呢?
回复

使用道具 举报

115

主题

548

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2013-11-27
在线时间
511 小时
 楼主| 发表于 2015-2-15 02:57:39 | 显示全部楼层
回复【3楼】wmh19910511:
---------------------------------
数据手册上面写着在。。。要配合窗口寄存器使用,

但是 我在DrawBitLine16BPP这个函数里面用窗口寄存器 为什么会出现 白屏的现象啊 , 就像是 屏幕烧了一样。我单步调试的时候,确实有绘点。但是描点的中途 屏幕就会突然变白,最后什么都不显示了。这个是为什么
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-1 12:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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