TW8836字体OSD~第二节FontRAM

2、FontRAM

FONTRAM是字体集图像的内存,字体集图像将在SpiFlash存储器(或者其他外部存储器)上准备,并将下载到FontRAM,当前的FontRam的大小是10KBytes。字体项的最大数量取决于FontRAM的大小。


2.1、字体索引值

在FW将SPiFlash的字体集图像下载到FontRAM后,FW使用索引值,FONT索引值。如果FW在16*26字体集上使用0xA0 FontRam索引值,该字体项的实际位置将位于4160字节(0xA0*16*26/8)上。因此,FontRAM索引0xA0表示FongRAM中的0xA0*R391[6:0]位置。

R300[4] : font width info. 0:12 pixels 1:16 pixels
R390[4:0] : font height (*2)
R391[6:0]: font size in Byte

表2.2:FontRAM索引相关的寄存器。

2.2、FontImages


2.3、多BPP图像

为了支持Multi_BPP字体,TW8836具有多BPP开始寄存器

Start of Multi-BPP registers
2BPP: R305[1:1]R30B[7:0]
3BPP: R305[2:2]R393[7:0]
4BPP: R305[3:3]R394[7:0]

首先找到1BPP字体,然后找到2BPP、3BPP、4BPP字体。TW8836不允许颠倒和混合的顺序。

2.4、FOntRAM FIFO

FontRAM FIFO有8字节并在VSync区域更新。

如果下载的字体图像数据大于FIFO大小,请在VSync上将其关闭,然后更新数据

2.5、下载字体图像

此处仅提供函数名,我用的是内部FontRAM,直接写入字模数组的方式。

void FOsdFontSetFifo(int8u fOn);

void FOsdDownloadFontBySerial(int16u dest_font_index, int8u *dat, int8u unit_size, int8u unit_num);

备注:

dest_font_index:fontRam地址

dat:字模数组

unit_size:一个字模数组的大小,计算方式:假设字模像素是16*16,则unit_size=16*16/8 = 32,you see?

unit_num:字模的个数

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值