📄 osd2csl.c
字号:
/* ##########################################################################
# Terawins Inc. Company #
# Copyright (c) 2005, All rights reserved #
# #
# All rights reserved. Reproduction in whole or in parts is prohibited #
# without the prior written consent. #
########################################################################## */
////////////////////////////////////////////////////////////////////////////////
// //
// LCD Application Firmware //
// ========================================================================== //
// //
// Module : OSD2CSL.c //
// //
// Purpose : T128/T108 OSD 2 Chip support libary. //
// //
// Version : 1.00 //
// //
// Compiler : Keil 8051 C Compiler v8.05a //
// //
// Reference: [1] Keil C51 Compiler User's Guide 09.2001, Keil Software, Inc.//
// //
// ========================================================================== //
// //
// Date Author Reason (what and why) //
// ----------- ------------- ---------------------------------------------- //
// 2007/02/07 Kevin Hsu //
// //
// //
////////////////////////////////////////////////////////////////////////////////
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "System.h"
#include "TWICreg.h"
#include "OSD2_Define.h"
#include "OSD2CSL.h"
//#include "ICON2BP12X18.H"
#include "Icon4BP12x12.H"
#include "IconJigsaw.h"
#ifdef ICON2BP
//=============================================================================
// Function : void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,
// uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
// Prupose : Show OSD2 2BPP
// Arguments : uCHAR *string
// uCHAR x
// uCHAR y
// uCHAR cBlink
// uCHAR HVScale
// uCHAR MenuIndex
// Returns : --
// External : -- -- --
//-----------------------------------------------------------------------------
// Detail Description:
// -------------------
// Show OSD2 2BPP
// --------------
//=============================================================================
void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
{
uCHAR *pString= string+1;
uCHAR i,j,k;
//uCHAR iTeststr[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,EOL};
//pString = iTeststr;
k=0;
if(MenuIndex == MENU1)
{
while((*pString)!= EOL)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu1Width));
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+x+4);
j=0;
k=x;
//~Stuff Strings~//
while(((*pString) != EOL)&&(k<Menu1Width)&&(j<string[0]))
{
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
k++;
j++;
}
y++;
}
}
else if(MenuIndex==MENU2)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu2Width));
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+x+4);
k=x;
while((*pString) != EOL)
{
//~Stuff Strings~//
while(((*pString) != EOL)&&(k<Menu2Width)&&(j<string[0]))
{
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
k++;
j++;
}
y++;
}
}
}
#endif //ICON2BP
#ifdef ICON4BP
//=============================================================================
// Function : OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,
// uCHAR HVScale,uCHAR Color, uCHAR MenuIndex)
// Prupose : Show OSD2 4BPP
// Arguments : uCHAR *string
// uCHAR x
// uCHAR y
// uCHAR cBlink <---0: No Blink
// uCHAR HVScale
// uCHAR Color <---0: For Default IconColorHighByte.
// 1~15: For user define.
// uCHAR MenuIndex <---1: For Menu 1. 2: For Menu 2.
// Returns : --
// External : -- -- --
//-----------------------------------------------------------------------------
// Detail Description:
// -------------------
// Show OSD2 4BPP
// --------------
//=============================================================================
void OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR Color, uCHAR MenuIndex)
{
uCHAR Char= *(string+2);
uCHAR j,k;
uCHAR V;
if(MenuIndex == MENU1)
{
for(V=0; V<string[1];V++)
{
//~Set RAtt_C~//
OSD2SetRamAddr(OSD2Menu1StrAdr+(OSD2Menu1Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(OSD2Menu1Width));
OSD2SetRamAddr(OSD2Menu1StrAdr+(OSD2Menu1Width+4)*y+x+4);
//~Stuff Strings~//
j=0;
k=x;
while((k<OSD2Menu1Width)&&(j<string[0]))
{
if(Color)
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(Color&0x0F)<<9)|(Char++));
else
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
k++;
j++;
}
y++;
}
}
else if(MenuIndex == MENU2)
{
for(V=0; V<string[1];V++)
{
//~Set RAtt_C~//
OSD2SetRamAddr(OSD2Menu2StrAdr+(OSD2Menu2Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(OSD2Menu2Width));
OSD2SetRamAddr(OSD2Menu2StrAdr+(OSD2Menu2Width+4)*y+x+4);
//~Stuff Strings~//
j=0;
k=x;
while((k<OSD2Menu2Width)&&(j<string[0]))
{
if(Color)
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(Color&0x0F)<<9)|(Char++));
else
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
k++;
j++;
}
y++;
}
}
}
#endif //ICON4BP
/*void OSD2PatternFillCtrl(uCHAR Enable,uWORD HStartPos, uWORD HEndPos, uWORD VStartPos, uWORD VEndPos)
{
IC_WritByte(TWIC_P0,OSD_CFG_INDEX,OSD_PT_CTRL);
OSD2CfgWr(OSD_PT_CTRL,IC_ReadByte(TWIC_P0,OSD_CFG_DATA)&((Enable<<7)|0x7F));
OSD2CfgWr(OSD_PT_HSTART_LSB,HStartPos&0x00FF);
OSD2CfgWr(OSD_PT_HSTART_MSB,HStartPos>>8);
OSD2CfgWr(OSD_PT_VSTART_LSB,VStartPos&0x00FF);
OSD2CfgWr(OSD_PT_VSTART_MSB,VStartPos>>8);
OSD2CfgWr(OSD_PT_HEND_LSB,HEndPos&0x00FF);
OSD2CfgWr(OSD_PT_HEND_MSB,HEndPos>>8);
OSD2CfgWr(OSD_PT_VEND_LSB,VEndPos&0x00FF);
OSD2CfgWr(OSD_PT_VEND_MSB,VEndPos>>8);
} */
void OSD2Menu1Enable(void)
{
OSD2CfgWr(OSD_MENU1_ENABLE,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
}
void OSD2Menu2Enable(void)
{
OSD2CfgWr(OSD_MENU2_ENABLE,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
}
void OSD2Enable(void)
{
OSD2CfgWr(OSD_CTRL,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
}
void OSD2Disable(void)
{
OSD2CfgWr(OSD_CTRL,0x00);
}
void OSD2ClearSRam(void)
{
OSD2CfgWr(OSD_BLK_WRT_LSB,0x00);
OSD2CfgWr(OSD_BLK_WRT_MSB,0x00);
OSD2CfgWr(OSD_BLK_WRT_SADD_LSB,0x00);
OSD2CfgWr(OSD_BLK_WRT_SADD_MSB,0x00);
OSD2CfgWr(OSD_BLK_WRT_LENGTH,0xFF);
OSD2CfgWr(OSD_BLK_WRT_CTR,0x9f);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -