0

对于具有带黑白像素(非灰度)的小型单色 LCD 的 8 位嵌入式系统,我需要一种有效的方式来存储和显示字体。我可能会选择两种固定宽度的字体,4x5 像素和 5x7 像素。资源非常有限:30k ROM,2k RAM。字体将以 1:1 比例写入缓冲区,作为具有给定起始偏移量(以像素为单位)的单行字符串(char* str, byte x, byte y)

我想我会使用 1k 的 RAM 作为缓冲区。除非有更有效的字体写入结构,否则我会对其进行安排,以便可以按顺序将其写入 LCD,如下所示:

byte buffer[1024];

其中每个字节代表 8 个像素的水平线(左侧为 MSB),显示的每一行从左到右完成,以这种方式,从上到下。(所以每行由 (128px / 8 =) 16 个字节表示。)

所以我的问题:

  1. 字体应该如何存储?
  2. 缓冲区应该采取什么形式?
  3. 字体应该如何写入缓冲区?

我认为有一些标准算法可以解决这个问题,但我在搜索中找不到任何东西。任何建议都会很有帮助(我不希望有人为我编写代码!!)

谢谢

4

1 回答 1

2

作为第一个切入点,实现bit blit,这是一种具有多种用途的原语,包括绘制字符。这决定了您的问题的以下答案。

  1. 作为位图。
  2. 位图。
  3. 点点滴滴。

位 blit 本身的实现涉及一堆按位操作,从源位图中重复提取一个字节或两个部分字节的组合以与目标字节组合。

于 2013-05-10T12:49:19.493 回答