//设置光标位置
//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坐标,怎么体现出来的?恳请原子大哥帮忙指导指导,让我有点头绪,现在卡在这里过不去了,多谢原子大哥!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
回复【4楼】正点原子:
你做一个原点的坐标变换,大概就明白了。
原来(0,0)应该是在左上方。
变换为新的坐标(横屏),那么就应该在左下角了(用原来的坐标表示就是:(0,320)).
原来的x方向,刚好和新坐标的y方向一致,而且值也一致,所以y'=x。
原来的y方向,和新坐标的x方向相反,所以新坐标的x'=320-y
---------------------------------
我是根据这段讲解画的第一张图,确定的y = 320-x的
lcddev.wramcmd=R34;
lcddev.setxcmd=R33;
lcddev.setycmd=R32;
原来板子上的9320通过设置把x,y倒一下就是横屏了
lcddev.wramcmd=R34;
lcddev.setxcmd=R33;
lcddev.setycmd=R32;
---------------------------------
goodidea
一周热门 更多>