我看画点程序写字符程序,关于坐标系有点问题关于OLED的,void OLED_DrawPoint(u8 x ,u8 y ,u8 t)
{
u8 pos,bx,temp=0;
if(x>127||y>63)return;//超出范围了.
pos=7-y/8;
bx=y%8;
temp=1<<(7-bx);
if(t)OLED_GRAM[x][pos]|=temp;
else OLED_GRAM[x][pos]&=~temp;
}
这个x=0y=0的原点在左下方还是左上方?
如果在左上方pos=7-y/8;页地址不就跑到7了么?页地址为7不是表示在最后8行也就是最底下吗?
难道页地址为7反而表示上面8个行?那就是说显存的坐标和我们使用的x、y的坐标正好相反?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
莫非你的屏common线刚好是相反的呢,这个程序就刚好哦。呵呵。
一般是左上,你这个可能是左下,也可能是common线反的。
分析:
你这个是128*64的LCD点阵屏,
按照一般规格:
x0 x1 x2 ...
db0
db1
db2
db3
db4
db5
db6
db7
db0
.
.
1.如果程序中定义的RAM是从下开始算的,也就是OLED_GRAM[x][0]是指page7,OLED_GRAM[x][7]是指page0,
则是可以的。但是必须db0->db7跟我标的方向相反
2.common线刚好贴反.有些LCD出现这样的情况不稀奇,我就碰到过。呵呵。
一周热门 更多>