OpenEdv-开源电子网

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

程序实现1206字库的显示问题

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-10-16
在线时间
0 小时
发表于 2014-10-17 09:19:16 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]程序是TFTLCD显示实验中lcd.c文件中的一个显示字符的函数。里面有一个for循环嵌套,外层for循环用于累加字符的八位数据个数,内层for循环通过&0x80得到八位数据的每一位。 那么问题来了:现在提供了两个字库:1206的和1608的。1206的字库只需要内层的for循环得到六位数据就行了,为什么也要取八位? 【我理解的是1206的字库每个字由高12个像素,宽6个像素的12*6个像素点构成,外层for循环负责行数的扫描(12行),内层for循环负责列数的扫描(每行有6列), 难道是我理解错了?】 void LCD_ShowChar(u16 x,u16 y,u8 num,u8 size,u8 mode) { u8 temp,t1,t; u16 y0=y; u16 colortemp=POINT_COLOR; num=num-' '; if(!mode) { for(t=0;t<size;t++) { if(size==12) temp=asc2_1206[num][t]; else temp=asc2_1608[num][t]; for(t1=0;t1<8;t1++) { if(temp&0x80) POINT_COLOR=colortemp; else POINT_COLOR=BACK_COLOR; LCD_DrawPoint(x,y); temp<<=1; y++; if(x>=lcddev.width) { POINT_COLOR=colortemp; return; } if((y-y0)==size) { y=y0; x++; if(x>=lcddev.width) { POINT_COLOR=colortemp; return; } break; } } } }else { for(t=0;t<size;t++) { if(size==12) temp=asc2_1206[num][t]; else temp=asc2_1608[num][t]; for(t1=0;t1<8;t1++) { if(temp&0x80) LCD_DrawPoint(x,y); temp<<=1; y++; if(x>=lcddev.height) { POINT_COLOR=colortemp; return; } if((y-y0)==size) { y=y0; x++; if(x>=lcddev.width) { POINT_COLOR=colortemp; return; } break; } } } } POINT_COLOR=colortemp; } [/mw_shl_code]

最佳答案

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

没有6bit的数据格式。 就算只有6bit,也会补齐为8位。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-17 09:19:17 | 显示全部楼层
没有6bit的数据格式。
就算只有6bit,也会补齐为8位。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-10-17 09:19:17 | 显示全部楼层
回复【3楼】qq1140981449:
---------------------------------
高位补0
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-10-16
在线时间
0 小时
 楼主| 发表于 2014-10-17 11:02:37 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
那请问原子哥,补齐8位的时候是按什么规则补齐的?我看有些资料上说是高位对齐,低位补0。可是字库中有一个数据是0x7F,解释不通。或者是我哪方面的知识还有所欠缺,请原子哥指点指点。
小弟很欣赏原子哥的营销手段,所以即使哪里有些瑕疵,那也瑕不掩瑜。
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-10-16
在线时间
0 小时
 楼主| 发表于 2014-10-17 14:32:39 | 显示全部楼层
回复【4楼】Badu_Space:
---------------------------------
字库中有一个是0x7F,换成二进制是:0111 1111,所以高位补零也解释不通啊
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-10-17 19:43:44 | 显示全部楼层
好好看下C的书吧
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-18 00:51:33 | 显示全部楼层
回复【5楼】qq1140981449:
---------------------------------
建议你直接用软件,生成一个汉字的数据,看看数据,你就知道怎么回事了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2014-10-16
在线时间
0 小时
 楼主| 发表于 2014-10-20 10:51:05 | 显示全部楼层
回复【7楼】正点原子:
---------------------------------
好的,我试试。谢谢原子哥。
回复

使用道具 举报

10

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-8-4 19:47:21 | 显示全部楼层
 0x18,0x00,0x20,0x00,0x23,0x40,0x24,0x00,0x18,0x00,0x00,0x00},/*"?",0*/

{0x3C,0x80,0x24,0x40,0x24,0x40,0x24,0x40,0x23,0x80,0x00,0x00},/*"5",0*/
1206是将每列(共6列)下面那四位补零。即对"5"而言,偶数位为0x80,,0x40,,0x40,,0x40,0x80,,0x00,这几个数的后四位二进制的0是补上的

我建了一个战舰stm32交流群:320350722 新手请教老手,老手大显身手! stm32交流群:320350722 stm32交流群:320350722
回复

使用道具 举报

10

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
135
金钱
135
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-8-4 19:54:54 | 显示全部楼层
回复【8楼】qq1140981449:
---------------------------------
由于y到12时,退出内层循环后边补上的0根本没有执行,哈哈,但是字库作为一个标准,还是补上了0

我建了个战舰stm32交流群 看书的时候遇到问题可以在里面讨论  320350722
我建了一个战舰stm32交流群:320350722 新手请教老手,老手大显身手! stm32交流群:320350722 stm32交流群:320350722
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-4-25
在线时间
33 小时
发表于 2019-6-3 13:38:24 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 10:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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