新手上路
- 积分
- 23
- 金钱
- 23
- 注册时间
- 2021-1-21
- 在线时间
- 3 小时
|
发表于 2021-4-17 10:46:48
|
显示全部楼层
计算字体所需的字节数,size/8+((size%8)?1:0)计算的是字体每列所需的字节数,size/2计算的是字体有多少列。这个公式单纯是针对正点原子的PCtoLCD2002字体取模软件设计的,因为PCtoLCD2002软件的取模说明中明确指出了,取模规则是自第一列向下,每8个点作为1个字节,如果不足8个点,就补满8位,取模顺序是自上向下,自左向右。对于1608字体和2412字体,每列正好可以满足2个字节和3个字节,不需要补满8位,而对于1206字体,需要补满8位,所以实际上看到的并不是1206字体,而是1606字体,这也就是为什么1206字体,两行显示的间隔要大一些感觉奇奇怪怪的原因。size/8+((size%8)?1:0)式中size/8计算的是这列有几个完整的字节,((size%8)?1:0)计算的是剩余的点是否够8位,要不要补满凑成1个字节,如果size%8为真,就需要补满1个字节,如果为假则不需要补满。而每种字体的宽均为长的1/2,所以size/2计算的是有多少列。在PCtoLCD2002软件中1206字体定义的是需要12个字节,但其他取模软件定义的可能是9个字节,即不足8个点的列,自动向下一列补足,形成9个字节,如果是这样的软件,则不能用上式编程。 |
|