TW8836字体OSD~第三节OSDRAM

3、OSDRAM(OSD Display RAM)

OsdRam可以假定为具有FontRAM索引值、调色板索引值和效果值的19*512的内存。显示模块读取OsdRam的值,扩展颜色,增加效果,然后将其发送到OSD显示内存。

3.1、物理OSDRAM内存


3.2、OsdRam 索引

OsdRam是一个19bit*512的存储器,但我们必须认为它是一个512字节大小的存储器,可以在R304[5]和R307[7:0]上使用UP256位进行索引,当用户写入字体索引值时,从寄存器读取MSB上的效果位并将其添加到OsdRam.

3.3、写OsdRam

在FW使用osdRam之前,FW需要将字体图像下载到FontRam,并设置开始Multi_BPP寄存器。

步骤1、选择auto INC模式

步骤2、分配osdRam索引并设置属性(1BPP的bgcolor/fgcolor,或Multi_BPP的颜色表索引的开始位置)

步骤3、再次分配OsdRam索引,然后写入FontRAM 索引编号

步骤4、如果FW有更多的数据要写入下一个OsdRam index,请写下一个数据,OsdRam索引将自动增加,并使用步骤2中编写好的相同属性值

3.4、OsdRam FIFO

OsdRam FIFO有8个字节并在HSync上进行更新。

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

3.5、Multi_BPP的FontRAM索引值

如果FW要写入Multi_BPP字体,则FW必须为每个Multi_BPP字体写入FontRAM索引的开始。

下面的例子显示了如何显示3BPP数字字符串,假设FW已经将字体图像下载到FontRAM,并且将3BPP数字字体位于0x60 FontRAM索引处,将Multi_BPP的开头指定为正确的数字。



此处仅提供相关函数名:

//---------------------------------
// FontOSD OsdRam
//---------------------------------
void FOsdRamSetFifo(int8u en, int8u Vdelay );
void FOsdRamWriteMode(int8u mode );
void FOsdRamSetAddress(int16u addr );
void FOsdRamSetAttribute(int8u attr );
void FOsdRamSetData(int16u dat );
void FOsdRamSetAddrAttr(int16u OsdRamAddr, int8u attr );
void FOsdRamMemset(int16u addr, int16u dat, int8u attr, int8u len);
void FOsdRamMemsetAttr(int16u addr, int8u color, int8u len);
void FOsdRamMemsetData(int16u addr, int16u dat, int8u len);
void FOsdRamClearAll(int16u dat, int8u attr);
void FOsdInit( void );
void FOsdRamWriteByteStr(int8u *str, int8u len);

void WriteStringToAddr(int16u addr, int8u *str, int8u cnt);

备注:void FOsdRamMemset(int16u addr, int16u dat, int8u attr, int8u len);

此函数指定OSDRAM地址与FontRAM index链接关系

addr:OSDRAM地址

dat:FontRAM index链接地址

attr:OSDRAM字体属性

len:窗口中显示个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值