=================== ======= 目标 ==================================
1.熟悉unicode汉字字库的编写方法
2.能在指定位置写汉字,包括横排,竖排。可以改变字大小,颜色。
3.要求能从无到有添加字库并使用字库
=================================================================
一、问题
1.汉字库区位吗怎么回事?unicode呢?如何编程取出想要的那个汉字。
答:1)汉字的unicode就是字符的16进制数。
2)unicode编码是2个字节来表示一个字符
3)unicode [b1][b2]=char
比如gb2312区位码 94区每区94字 区码=b1-0xbf 位码=b1-0xa0 为unicode
啊=\ub0a1 0xb0-0xbf=0xf=16=区码 0xa1-0xa0=1=位码 大体是符合这个规律的
2.我写的汉字,我怎么知道库支持不?库怎么定位呢?也就是我写“我爱琼英”四字时,如何知道“我”放在字库哪个地方?
答:这个问题在编程中大概不重要,自动识别。
3.字库编程中矩阵排列方法
答:
4.有各种各样的字系。比如有符号,汉字,字母等。所以出现0808,0816,1608,1616,2424,1632,3232等等。那我如何知道符号是多大,汉字是多大呢?如何切换字形的大小?
答:汉字是1616。
256个ASCII码,点阵为08x16或0808
数字 ,点阵为
5.搞明白那个点阵死鬼分区域吧
答:从lcddriver.c,disp.c,omc.c都有,看来得开足马力了。
5.子函数(API)的排列有何规则?
6.汉字的本质是什么?是不是就是点亮,画线?呵呵
7.为什么有了这个库,再加上那些看似简单的几十个库函数,就可以实现汉字的调用与显示?
8.基本操作:如何消隐一个字?
9.怎么换行?
10.
==================
点阵
==================
1.屏幕本质是点阵,从微观看写字,画图都是用点阵表示的。类似体育中心LED大广告屏幕。用像素,分辨率描述
2.字显示原理是在某一矩阵内,有些点显示有些不显示,从而在视觉上为汉字,字母也。汉字字库编码就是照此原理制成。
3.数组的计算处理
答:在点阵的处理中,这是关键。
4.
==================
颜色
==================
==================
二、错误调试
1.
[root@Industech /]# ./go
Segmentation fault //分段错误,段错误?
原因猜测:
1)是不是因为画线,写字时覆盖重叠了?
答:线条重叠是没问题的。
2)是不是字数没对应?
答:是的,就是这个问题。
3)是不是超过边界?
答:不是。会自动换行。
4)是不是超过边界?试下超边界有会有什么提示。
答:
阶段结论:跟颜色什么的无关,只跟位置,字库有关
三、学习体悟
1.首先在别人的代码上修改运行通过,然后建立自己的工程,试着添加剪裁组合代码。这样印象更深。
2.粗放转化为精耕细作。细腻细腻再细腻,要点要点再要点。层次分明。
3.在运行通过的前提下,解读一个个的子函数(目前lcddriver.c可以使用此法)。不懂就要问。深究之,不放过。
4.看代码,研读代码要带有主动猜测推理部分,否则永远都对代码有种惧怕的感觉。
四、代码不懂请教与注释
五、参考资料
1.有用的链接
2.源码。提供下载的方式?
==============================================
麻省理工:世界第一理工大学的思考方法
==============================================
1.思考,有目的地进行实验,不要瞎试
2.工具:串口调试真他妈的不方便,有更好的方法吗?硬件设计注意
3.尝试的技巧:如何更有效率地尝试?
4.定位错误代码范围(一个良好习惯)
5.拼写错误,最很悲剧的事情。养成细心的习惯。机器可不讲人情。