⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtv018.c

📁 MTV018驱动源程序。用于车载LCD TV的OSD菜单显示源程序。并且包括了I2C的源程序。
💻 C
📖 第 1 页 / 共 5 页
字号:
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],4);
}
/*-----------------------------------------------------------------------------*/
//声音OSD指示条后数据(平衡)
void DispSoundBarDataRL(uchar AdjustDispRam)
{
    uchar Buf[5];

    AdjustDispRam <<= 1;//*2

    if(bFMDoubleSizeID)//
        Buf[0] = OSD_ADDR_ROW_9;
    else
        Buf[0] = OSD_ADDR_ROW_10;
    Buf[1] = OSD_COLUMN_23;
    Buf[2] = 0xa7;//"]"
    if(AdjustDispRam == 14)
    {
        Buf[3] = 1;
        Buf[4] = 1;
    }
    else if(AdjustDispRam >14)
    {
        Buf[3] = OSD_R;
        Buf[4] = ((AdjustDispRam-14)>>1)+1;
    }
    else
    {
        Buf[3] = OSD_L;
        Buf[4] = ((15-AdjustDispRam)>>1)+1;
    }
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],4);
}

/*-----------------------------------------------------------------------------*/
//显示开关量前半部分
void DispSwitchAdjustFront(uchar code *pCode)
{
    uchar Buf[3];
    uchar i;

    i = 0x47;
    do
    {
        Buf[0] = 0x8A;
        Buf[1] = i;
        Buf[2] = *pCode;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
        i++;
        pCode++;
    }while(i<0x50);
}

/*-----------------------------------------------------------------------------*/
//显示开关量后半部分
void DispSwitchAdjustRear(uchar code *pCode)
{
    uchar Buf[3];
    uchar i;

    i = 0x50;
    do
    {
        Buf[0] = 0x8A;
        Buf[1] = i;
        Buf[2] = *pCode;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
        i++;
        pCode++;
    }while(i<0x5A);
}
/*-----------------------------------------------------------------------------*/
//选中值闪烁程序;人口参数R5;DATA_OK_BLINK:
void DataOKBlink(uchar ucBlink)
{
    uchar Buf[3];
    uchar i;

    i = 7;
    Buf[0] = 0xAA;//行地址
    do
    {
        Buf[1] = i;
        if(ucBlink == 0)//字符属性
            Buf[2] = b00000010B;
        else
            Buf[2] = b00001010B;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
        i++;
    }while(i<16);
    Buf[0] = 0xAA;
    do
    {
        Buf[1] = i;
        if(ucBlink == 0)
            Buf[2] = b00001010B;
        else
            Buf[2] = b00000010B;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
        i++;
    }while(i<26);
}
/********************************************************************************************************
 Descriptions:          ALL SOUND paramters ADJUST:
 input parameters:      the parameter which needed adjust
 Returned value:        the parameter adjusted
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
uchar AllSoundAdjust(uchar ucParam)
{
    if(ucRemValue == REM_MENU_RIGHT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        if(ucParam < 14)
            ucParam++;
    }
    if(ucRemValue == REM_MENU_LEFT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        if(ucParam > 0)
            ucParam--;
    }
    if(ucParam>14)
        ucParam = 14;
    return ucParam;
}
/********************************************************************************************************
 Descriptions:          需传递被调量到人口参数R4,出口参数也在R4中,ALL_SWITCH_ADJUST:
 input parameters:      the parameter which needed adjust
 Returned value:        the parameter adjusted
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
uchar AllSwitchAdjust(uchar ucParam)
{
    if(ucRemValue == REM_MENU_RIGHT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        ucParam = 0;
    }
    if(ucRemValue == REM_MENU_LEFT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        ucParam = 1;
    }
    return ucParam;
}
/********************************************************************************************************
 Descriptions:          //ALL_SIM_ADJUST:;需传递被调量为人口参数到R4;出口参数也在ADJUST_DISP_RAM中
 input parameters:      the parameter which needed adjust
 Returned value:        the parameter adjusted
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
uchar AllSimAdjust(uchar ucParam)
{
    if(ucRemValue == REM_MENU_RIGHT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        if(ucParam < 31)
            ucParam++;
    }
    if(ucRemValue == REM_MENU_LEFT)
    {
        ucRemValue = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        if(ucParam > 0)
            ucParam--;
    }
    if(ucParam>31)
        ucParam = 31;
    return ucParam;
}
/********************************************************************************************************
 Descriptions:          OSD_DIRECT_VOLUME:
 input parameters:      None
 Returned value:        None
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
void OSDDirectVolume(void)
{
    uchar Buf[4];

    if(ucRemValue == REM_DISC_UP)
    {
        bKeyMuteID = 1;//按键静音标志(=0静音)
        bDirectVolumeID = 1;
        ucRemValue = REM_INVALID;
        //ucRemShadow = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;
        ucVolume++;
        if(ucVolume > VOLUME_MAX)
            ucVolume = VOLUME_MAX;
        DispBar(ucVolume);      // 显示中间调整条
        DispBarData(ucVolume);  //显示指示条后数据
        SimAdjustAttr();// 模拟量调整显示属性
        Buf[0] = 0x8A;      //恢复行地址
        Buf[1] = 0x45;      //恢复列地址(C模式)
        Buf[2] = 0xD8;      //字符  音量图标
        Buf[3] = 0xD9;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],3);
        SendSoundDataPT2313();//送声音参数到PT2313
    }
    if(ucRemValue == REM_DISC_DOWN)
    {
        bKeyMuteID = 1;//按键静音标志(=0静音)
        bDirectVolumeID = 1;
        ucRemValue = REM_INVALID;
        //ucRemShadow = REM_INVALID;
        bRemUseID = 0;
        ucOSDAutoClearTime = OSD_AUTO_CLEAR_TIME;

        if(ucVolume != 0)
              ucVolume--;
        DispBar(ucVolume);      // 显示中间调整条
        DispBarData(ucVolume);  //显示指示条后数据
        SimAdjustAttr();// 模拟量调整显示属性
        Buf[0] = 0x8A;      //恢复行地址
        Buf[1] = 0x45;      //恢复列地址(C模式)
        Buf[2] = 0xD8;      //字符  音量图标
        Buf[3] = 0xD9;
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],3);
        SendSoundDataPT2313();//送声音参数到PT2313
    }
}
/*-----------------------------------------------------------------------------*/
 // 显示指示条
void DispBar(uchar AdjustDispRam)
{
    uchar Buf[3];
    uchar ucCol,i;

    if(bFMDoubleSizeID)//显示RADIO时双倍尺寸
        Buf[0] = OSD_ADDR_ROW_9;
    else
        Buf[0] = OSD_ADDR_ROW_10;
    Buf[1] =  OSD_COLUMN_7;
    Buf[2] = 0x9f; //显示[
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);

    if(bFMDoubleSizeID)//显示RADIO时双倍尺寸
        Buf[0] = OSD_ADDR_ROW_9;
    else
        Buf[0] = OSD_ADDR_ROW_10;
    ucCol =  OSD_COLUMN_8;
    i = 0;
    do
    {
        Buf[1] = ucCol;
        if(AdjustDispRam > i*2)
        {
            if((AdjustDispRam-i*2)==1)
                 Buf[2] = 0xa3;//填充一半
            else
                 Buf[2] = 0xA0;//全填充
        }
        else
        {
            Buf[2] = 0xA6;//不填充
        }
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
        ucCol++;
        i++;
    }while(ucCol < OSD_COLUMN_23);
}
/*-----------------------------------------------------------------------------*/
//显示指示条后数据
void DispBarData(uchar AdjustDispRam)
{
    uchar Buf[5];

    if(bFMDoubleSizeID)//显示RADIO时双倍尺寸
        Buf[0] = OSD_ADDR_ROW_9;
    else
        Buf[0] = OSD_ADDR_ROW_10;
    Buf[1] = OSD_COLUMN_23;
    Buf[2] = 0xa7;
    Buf[3] = AdjustDispRam/10 +1;
    Buf[4] = AdjustDispRam%10 +1;
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],4);
}
/*-----------------------------------------------------------------------------*/
// 模拟量调整显示属性
void SimAdjustAttr(void)
{
    uchar Buf[3];
    uchar i;

    if(bFMDoubleSizeID)//显示RADIO时双倍尺寸
        Buf[0] = 0xa9;
    else
        Buf[0] = 0xaa;
    for(i=1;i<29;i++)
    {
        Buf[1] = i;          //列地址(C模式)
        Buf[2] = b00000010B; //字符属性
        ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
    }
}
/********************************************************************************************************
 Descriptions:          Blue picture of whole LCD:
 input parameters:      None
 Returned value:        None
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
void BluePic(void)
{
    uchar Buf[5];
    Buf[0] = 0xAF;
    Buf[1] = 0x49;
    Buf[2] = 0x0E;
    Buf[3] = 0x14;
    Buf[4] = 0xF9;
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],4);
}
/********************************************************************************************************
 Descriptions:          Clear blue picture of whole LCD:
 input parameters:      None
 Returned value:        None
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
void ClearBluePic(void)
{
    uchar Buf[3];
    Buf[0] = OSD_ATTR_ROW_15;
    Buf[1] = OSD_COLUMN_10;
    Buf[2] = OSD_NC;
    ISendStr(MTV018_ADDR,Buf[0],&Buf[1],2);
}
/********************************************************************************************************
 Descriptions:          RUN_CHANGE_SOUND_CH, and display OSD on LCD 执行声音通道切换
 input parameters:      ucVideoCH:   AV1_CH, AV2_CH, FM_CH, TV_CH, DVDBOX_CH
                        ucAudioParam:AUDIO_MUTE,AUDIO_RR,AUDIO_LL,AUDIO_RL
 Returned value:        None
 Used global variables: None
 Calling modules:       None
 Created by:            xjj 2006/01/20
-------------------------------------------------------------------------------------------------------
 Modified by:
********************************************************************************************************/
void RunChangeSoundCH(uchar ucVideoCH, uchar ucAudioParam)
{
    uchar Buf[5];

    SelectSW1OfM52795(ucVideoCH,ucAudioParam,V_AMP_0DB);
    SelectSW2OfM52795(ucVideoCH,ucAudioParam,V_AMP_0DB);

    if(!bMainMenuOn)
    {
        if(ucAudioParam == AUDIO_RL)
        {
            Buf[0] =  OSD_ADDR_ROW_2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -