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

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

---------------------------------
我是根据这段讲解画的第一张图,确定的y = 320-x的

一周热门 更多>