标准的字模一般都是以字节为单位存储的(每8个点存储在一个字节中)。在单色LCD点阵屏幕上显示字符,并非难事。然而,如果要在LCD的任意x,y坐标显示字符,就稍微有点麻烦了。为了解决这个问题,需要一系列的函数。前两天搞定了第一个核心函数,暂且放到这里吧。应该不会做更大的修改了。
/***********************************************************
* 函数说明:位图偏移函数 *
* 输入: 输入缓冲,位移,输入长度,输出缓冲 *
* 输出: 输出缓冲指针 *
* 调用函数:无 *
***********************************************************/
uint8 Character_BitMap_Offset(uint8 *pcInputBuffer,uint8 chOffset,
uint8 pcInputLength,uint8 *pcOutputBuffer)
{
uint8 n = 0;
uint8 chByteOffset = chOffset >> 3;
chOffset &= 0x07;
if ((pcInputBuffer == NULL) || (pcOutputBuffer == NULL))
{
return NULL;
}
pcOutputBuffer[chByteOffset] = pcInputBuffer[0] >> chOffset;
for (n = 1 + chByteOffset;n < pcInputLength+chByteOffset;n++)
{
pcOutputBuffer[n] = pcInputBuffer[n - chByteOffset] >> chOffset;
}
pcOutputBuffer[n] = (pcInputBuffer[pcInputLength-1]
& (BIT(chOffset)-1))<< (8 - chOffset);
if (chOffset)
{
return pcInputLength + chByteOffset + 1;
}
else
{
return pcInputLength + chByteOffset;
}
}
文章评论(0条评论)
登录后参与讨论