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条回答
正点原子
1楼-- · 2019-10-17 01:03
anazel
2楼-- · 2019-10-17 06:31
原子兄,我越来越迷糊了
回复【4楼】正点原子:

你做一个原点的坐标变换,大概就明白了。
原来(0,0)应该是在左上方。
变换为新的坐标(横屏),那么就应该在左下角了(用原来的坐标表示就是:(0,320)).
原来的x方向,刚好和新坐标的y方向一致,而且值也一致,所以y'=x。
原来的y方向,和新坐标的x方向相反,所以新坐标的x'=320-y

---------------------------------
我是根据这段讲解画的第一张图,确定的y = 320-x的
正点原子
3楼-- · 2019-10-17 09:01
 精彩回答 2  元偷偷看……
308709362
4楼-- · 2019-10-17 09:14
每个屏都有物理原点,这个点输永远不变的!我们变化横屏竖屏只是在变化XY,改变扫描顺序!你根据你想要的方向与物理原点对比即可!
anazel
5楼-- · 2019-10-17 11:41
原来板子上的9320通过设置把x,y倒一下就是横屏了
lcddev.wramcmd=R34;
lcddev.setxcmd=R33;
lcddev.setycmd=R32;
ilikerome
6楼-- · 2019-10-17 17:18
回复【12楼】anazel:

原来板子上的9320通过设置把x,y倒一下就是横屏了
lcddev.wramcmd=R34;
lcddev.setxcmd=R33;
lcddev.setycmd=R32;

---------------------------------
goodidea

一周热门 更多>