画点函数看不懂,求指导。。。

2019-07-21 07:26发布

想请问下,参数pos,bx,还有temp是起什么作用的?还有红 {MOD}语句不懂什么意思,求解。

 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;    
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
elec16
1楼-- · 2019-07-22 06:29
没有细看原子的教程,我的理解为这个比较简单
void OLED_DrawPoint(u8 x,u8 y,u8 t)      //输入X坐标,Y坐标,t表示是显示还是不显示
{
u8 pos,bx,temp=0;
if(x>127||y>63)return;//超出范围了.
pos=7-y/8;                                                //输入的Y坐标要除以8,以定位到要改变的那个点的相应字节,因为是以字节形式来写入的
bx=y%8;                                                    //该点在该字节中的位置
temp=1<<(7-bx);                                     //把该点写入temp
if(t)OLED_GRAM[x][pos]|=temp;             //如果t为1就把该点写1
else OLED_GRAM[x][pos]&=~temp;       //如果t为0就把该点写0
}
麒麟小怪
2楼-- · 2019-07-22 12:01
手册里写了,填充由列地址指针指向的整列(8位)。数据位D0写入顶行,而数据位D7写入底行。 分页是从PAGE7~PAGE0的,从下往上数7在底部,0在顶部 画点在【100】【40】分在第二页,40在第二页的底部第一个,所以要移7位

一周热门 更多>