我看画点程序写字符程序,关于坐标系有点问题关于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的坐标正好相反?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
有OLED实物的,可以直接写个函数,慢慢观察,就知道正确还是错误了。
---------------------------------
原子哥有空还是结合原理解释清楚点吧,蛋疼了一下午了,也在纠结这个,影响大家的学习热情啊.
---------------------------------
0,0,是在左上.
至于页什么的,实际拿个实物写代码操作下,比较明确.
莫非你的屏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出现这样的情况不稀奇,我就碰到过。呵呵。
但是我还有不太明白的就是开发指南说字模取字是从上到下为高位到低位,我觉得不太理解,我觉得这样与屏的显示方向有不符,有OLED实物的同学怎么理解的,囊中实在羞涩,买个战舰版还要搬砖、卖血。。。
一周热门 更多>