OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8140|回复: 12

请问原子哥一下,关于OLED问题。。。

[复制链接]

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2012-7-7
在线时间
2 小时
发表于 2012-9-6 01:00:17 | 显示全部楼层 |阅读模式
我看画点程序写字符程序,关于坐标系有点问题
关于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的坐标正好相反?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-3-9
在线时间
1 小时
发表于 2013-3-9 19:00:03 | 显示全部楼层
回复【7楼】正点原子:
有OLED实物的,可以直接写个函数,慢慢观察,就知道正确还是错误了。
---------------------------------
原子哥有空还是结合原理解释清楚点吧,蛋疼了一下午了,也在纠结这个,影响大家的学习热情啊.
回复 支持 1 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-6 11:03:33 | 显示全部楼层
回复【楼主位】heiselpy:
---------------------------------
0,0,是在左上.
至于页什么的,实际拿个实物写代码操作下,比较明确.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2012-8-31
在线时间
0 小时
发表于 2012-9-6 19:16:38 | 显示全部楼层
楼主,
莫非你的屏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出现这样的情况不稀奇,我就碰到过。呵呵。








回复 支持 反对

使用道具 举报

6

主题

54

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2012-8-31
在线时间
0 小时
发表于 2012-9-6 19:18:31 | 显示全部楼层
对1再补充一下,一般db0->db7规格是一样的。但是你涉及的原理图上,刚好db0->db7接反了,这个程序也是可以的。
回复 支持 反对

使用道具 举报

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2012-7-7
在线时间
2 小时
 楼主| 发表于 2012-9-8 21:40:06 | 显示全部楼层
回复【3楼】杨遥:
---------------------------------
我上面的程序是原子那本书上的程序,现在我理解为x,y坐标和屏的坐标不一致,程序x,y的原点在左上角,而实际上为左下角
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2012-10-25
在线时间
0 小时
发表于 2013-1-10 09:26:22 | 显示全部楼层
原子哥,我也觉得应该是反了,初始化的时候A1指令将column127重定义到seg0,LZ说的也对的,软件上将页0改成页7,com34变成com29,左上在右下。
但是我还有不太明白的就是开发指南说字模取字是从上到下为高位到低位,我觉得不太理解,我觉得这样与屏的显示方向有不符,有OLED实物的同学怎么理解的,囊中实在羞涩,买个战舰版还要搬砖、卖血。。。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-1-10 09:58:53 | 显示全部楼层
有OLED实物的,可以直接写个函数,慢慢观察,就知道正确还是错误了。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2013-3-9
在线时间
1 小时
发表于 2013-3-9 19:36:47 | 显示全部楼层
<这完全手册>166:
       OLED_GRAM[128][8]中的 128 代表列数,也就是 x 坐标,而 8 代表的是页,每个代表 8个列,从高到底对应列数从小到大。

有勘错表不?类似的地方还有不少,影响理解。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-10 00:31:02 | 显示全部楼层
回复【9楼】Stm32_Init:
---------------------------------
在这里指出.http://www.openedv.com/posts/list/1069.htm?fromAll=0
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2014-2-19
在线时间
0 小时
发表于 2014-6-12 23:43:23 | 显示全部楼层
小马哥这边我也觉得有问题,是不是反了
参加过电子设计大赛,玩过单片机,搞过DSP,fpga也接触过,可惜学的不精,在此就是来好好研究的,请多多关照
回复 支持 反对

使用道具 举报

1

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2018-2-3
在线时间
16 小时
发表于 2018-2-10 13:03:07 | 显示全部楼层
同样感觉例程坐标是反的,但是没有实物,所以没法验证
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2018-12-7
在线时间
1 小时
发表于 2018-12-7 11:45:44 | 显示全部楼层
我的理解是这样的,屏幕的最左下角定义为(0,0)和我们初中时的坐标原点定义一样,而数组中的OLED_GRAM[0][0]对应于显示器的最左上角,见图中箭头所示。
对于“我们要在 x=100y=29 这个点写入1,则可以用这个句子实现 OLED_GRAM[x][7-y/8]|=1<<(7-y%8)”中对于
7-y/8
的这句就能理解了。在对于
(7-y%8)的理解,就是将其中一位值1,

看图也不难理解。




OLED.jpg
技术讨论Q群:134770061
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-22 13:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表