LCD横屏问题,XY

2019-10-15 23:52发布

//设置光标位置
//Xpos:横坐标
//Ypos:纵坐标
void LCD_SetCursor(u16 Xpos, u16 Ypos)

  if(lcddev.id==0X9341||lcddev.id==0X6804)
 {     
  LCD_WR_REG(lcddev.setxcmd);
  LCD_WR_DATA(Xpos>>8);
  LCD_WR_DATA(Xpos&0XFF); 
  LCD_WR_REG(lcddev.setycmd);
  LCD_WR_DATA(Ypos>>8);
  LCD_WR_DATA(Ypos&0XFF);
 }else
 {
  if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏其实就是调转x,y坐标
  LCD_WriteReg(lcddev.setxcmd, Xpos);
  LCD_WriteReg(lcddev.setycmd, Ypos);
 } 
}  

原子大哥,上面  “if(lcddev.dir==1)Xpos=lcddev.width-1-Xpos;//横屏其实就是调转x,y坐标
”这句话怎么是什么原理?我刚接触LCD方面的资料,想了半天也没有理出个头绪,不知道怎么个思路?所谓调整X,Y坐标,怎么体现出来的?恳请原子大哥帮忙指导指导,让我有点头绪,现在卡在这里过不去了,多谢原子大哥!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
liuje
1楼-- · 2019-10-17 22:07
LCD主要靠GRAM逐点来做显示.

GRAM的地址排列是绝对的 .  而所谓X,Y座标  却是相对的 .

建议可以多看看GRAM的对应以及8种GRAM对应扫描方式.

会更理解竖屏与横屏在显示上差异性 (其实也就是写入到GRAM的位置不同如此而已) .
xiaoxin
2楼-- · 2019-10-17 22:39
 精彩回答 2  元偷偷看……
zbhoudini
3楼-- · 2019-10-17 23:39
本帖最后由 zbhoudini 于 2016-7-20 23:41 编辑
xiaoxin 发表于 2016-7-5 23:32
刚看到了这章节,不知道对不对!上传个图片  我的理解是屏幕向右旋转90度,原点座标还是设置在左上角,相对 ...

应该向左旋转90度吧!
墨黥天
4楼-- · 2019-10-18 01:04
原子哥的解释确实让人有点摸不着头脑。。。我也被绕晕了期待有比较详细的图文解释
取个名真费劲
5楼-- · 2019-10-18 06:30
马克一下
11小小
6楼-- · 2019-10-18 10:09
这个问题我也研究了好久  看程序好像横屏的时候lcddev.setxcmd=0x2a命令变成竖屏lcddev.setxcmd=0x2b 这里可以看出XY调换 坐标原点是左上角 变成左下角 只有X的左边变了y的左边没变

一周热门 更多>