OpenEdv-开源电子网

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

OLED的这段显示字符程序怎么也没看明白,求指点

[复制链接]

17

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2015-10-22
在线时间
95 小时
发表于 2016-3-9 21:01:16 | 显示全部楼层 |阅读模式
5金钱
        for(t1=0;t1<8;t1++)
  {
   if(temp&0x80)OLED_DrawPoint(x,y,mode);
   else OLED_DrawPoint(x,y,!mode);
   temp<<=1;
   y++;
   if((y-y0)==size)
   {
    y=y0;
    x++;
    break;
   }
  }
就是这段代码,1、为什么要判断temp&0x80,如果设置成&0x01然后右移1位可以吗?
2、要判断y-y0是什么意思?以及这个if语句下的几个语句是什么意思?
谢谢大家了。
想了一晚上也没搞明白是什么意思,希望大家多多指点

最佳答案

查看完整内容[请看2#楼]

1、要先发高位,最后发低位,你说的那种方法是先发低位,错了。 2、一行写完了(y-y0==size),要换到下一行(x++),还要移到下一行的起始位置(y=y0),发生换行动作后的这个字节的剩余没有写的位丢弃不要了(break)
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-9 21:01:17 | 显示全部楼层
1、要先发高位,最后发低位,你说的那种方法是先发低位,错了。

2、一行写完了(y-y0==size),要换到下一行(x++),还要移到下一行的起始位置(y=y0),发生换行动作后的这个字节的剩余没有写的位丢弃不要了(break)
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

33

主题

481

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
5075
金钱
5075
注册时间
2013-10-4
在线时间
654 小时
发表于 2016-3-9 21:26:10 | 显示全部楼层
这个和字库取模有关的,你的代码需要和字库取模方式相对应
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2197
金钱
2197
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-3-9 21:30:13 | 显示全部楼层
虽然我没看过oled的程序,但是这程序看一下就能明白了。
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2197
金钱
2197
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-3-9 21:30:53 | 显示全部楼层
1,可以右移,但是每次都要右移7位,因为它是先看高位的
回复

使用道具 举报

69

主题

495

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2197
金钱
2197
注册时间
2015-11-14
在线时间
542 小时
发表于 2016-3-9 21:33:05 | 显示全部楼层
2,y-y0是为了判断字有没有超出了大小。if里面的y=y0是让oled从字的头部开始写
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-3-9 21:38:34 | 显示全部楼层
1、要先发高位,最后发低位,你说的那种方法是先发低位,错了。

2、一行写完了(y-y0==size),要换到下一行(x++),还要移到下一行的起始位置(y=y0),发生换行动作后的这个字节的剩余没有写的位丢弃不要了(break)
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 13:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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