OpenEdv-开源电子网

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

请问大神们,程序中if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);意思

[复制链接]

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-25
在线时间
9 小时
发表于 2015-8-11 11:18:37 | 显示全部楼层 |阅读模式
5金钱
void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode)
{    
  u8 temp,t1,t;
u16 y0=y;
u8 csize=(size/8+((size%8)?1:0))*(size/2); //????×???????×?·????????ó???ù????×?????
//?è???°??   
num=num-' ';//?????????ó????,??C????????×?·??????±??????????????????
for(t=0;t<csize;t++)
{   
if(size==12)temp=asc2_1206[num][t]; //?÷??1206×???
else if(size==16)temp=asc2_1608[num][t]; //?÷??1608×???
else if(size==24)temp=asc2_2412[num][t]; //?÷??2412×???
else if(size==50)temp=asc2_5025[num][t];  //?÷??5025×???
else return; //??????×???
for(t1=0;t1<8;t1++)
{    
if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
temp<<=1;
y++;
if(x>=lcddev.width)return; //?????ò??
if((y-y0)==size)
{
y=y0;
x++;
if(x>=lcddev.width)return; //?????ò??
break;
}
}    
}  
}

请问大神们,程序中if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);这句话的意思,看了好久看不大明白

最佳答案

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

哎。。首先以1206字体为例,首先一个字符有12字节,而且高为12,宽是6,但是处理器最小处理单位是字节(8bit)所以6后面补两个空bit即为一个字节(8bit),所以这个字体的字模大小共为(12*1=12byte),既有了csize=12的由来。。。所以要把一个字符显示出来,就是在空的地方花底色(即打点),或则显示的地方画前色(即打点)。。。表现在代码上就是,把每一个字节的每一位进行处理判断在执行相应底层。。。。。 if(temp&0x80)LCD_F ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1322
金钱
1322
注册时间
2014-7-23
在线时间
420 小时
发表于 2015-8-11 11:18:38 | 显示全部楼层
哎。。首先以1206字体为例,首先一个字符有12字节,而且高为12,宽是6,但是处理器最小处理单位是字节(8bit)所以6后面补两个空bit即为一个字节(8bit),所以这个字体的字模大小共为(12*1=12byte),既有了csize=12的由来。。。所以要把一个字符显示出来,就是在空的地方花底色(即打点),或则显示的地方画前色(即打点)。。。表现在代码上就是,把每一个字节的每一位进行处理判断在执行相应底层。。。。。
if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);//判断每一位
else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);//是否使用叠加方式
temp<<=1;//对前一位丢掉,后一位提前给她::if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
回复

使用道具 举报

13

主题

303

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2271
金钱
2271
注册时间
2015-2-3
在线时间
561 小时
发表于 2015-8-11 17:53:19 | 显示全部楼层
判断是不是需要画点 是的话就显示该点的颜色  
STM32/LPC1788/51
回复

使用道具 举报

1

主题

374

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1322
金钱
1322
注册时间
2014-7-23
在线时间
420 小时
发表于 2015-8-11 18:26:32 | 显示全部楼层
首先你前面看的明白吗。。。如果明白,请说明。。这样才能按照你的思路告诉你应该用哪种方式去理解。。。
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-25
在线时间
9 小时
 楼主| 发表于 2015-8-11 18:36:38 | 显示全部楼层
回复【2楼】北极圈的黄昏:
---------------------------------
我知道是判断画点啊,但是我不知道if(temp&0x80)是如何判断的,
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-25
在线时间
9 小时
 楼主| 发表于 2015-8-11 18:36:51 | 显示全部楼层
回复【3楼】guset_03:
---------------------------------
我知道是判断画点啊,但是我不知道if(temp&0x80)是如何判断的,
回复

使用道具 举报

9

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2015-7-25
在线时间
9 小时
 楼主| 发表于 2015-8-13 14:56:17 | 显示全部楼层
回复【6楼】guset_03:
---------------------------------
谢谢大神指点
回复

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2020-9-22
在线时间
2 小时
发表于 2020-10-30 17:00:14 | 显示全部楼层
????
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-29 23:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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