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

📄 tft.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 3 页
字号:
//--------------------------------------------------------------------------void TFT_AdjustTVMode(BYTE bMode){    if(__bTft_TVModePrev==bMode)        return;    //TFT_BackLight(FALSE);//  _btToggle_TFT=1;//        TFT_FreeRun(1);    switch (bMode)    {        case SETUP_SCREEN_TV_SYSTEM_AUTO:        case SETUP_SCREEN_TV_SYSTEM_NTSC:          printf("SETUP_SCREEN_TV_SYSTEM_NTSC");            __TFTSystemAttr.bSystem=EN_VID_MODE_NTSC;            __TFTSystemAttr.bSubSystem=COLOR_NTSC_M;                break;        case SETUP_SCREEN_TV_SYSTEM_PAL:          printf("SETUP_SCREEN_TV_SYSTEM_PAL");            __TFTSystemAttr.bSystem=EN_VID_MODE_PAL;            __TFTSystemAttr.bSubSystem=COLOR_PAL_BGDHI;        break;#ifdef PScan_mode//Digital_PANEL                case TFT_MODE_TFT_DIGITAL:          printf("SETUP_SCREEN_TV_SYSTEM_P_NTSC");            __TFTSystemAttr.bSystem=EN_VID_MODE_TFT_DIGITAL;            __TFTSystemAttr.bSubSystem=COLOR_NTSC_M;                break;#endif //Digital_PANEL        default:          printf("SETUP_SCREEN_TV_SYSTEM_NTSC");            __TFTSystemAttr.bSystem=EN_VID_MODE_NTSC;            __TFTSystemAttr.bSubSystem=COLOR_NTSC_M;                break;    }  __TFTSystemAttr.bSource=EN_LCD_VID_FORMAT_CCIR656;    TFT_Adjust_VideoAttr(__TFTSystemAttr.bSource,__TFTSystemAttr.bSystem);    TFT_Adjust_TvType(__TFTStatusInfo.bTvType);    __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_OFF;#ifdef SUPPORT_BATTERY_DETECTION    __TFTOSDStatusInfo.bBattery=TFT_OSD_BATTERY_OFF;#endif    __TFTOSDStatusInfo.bSetupMenu=TFT_OSD_SetupMenu_OFF;    __bTft_TVModePrev=bMode;    __dwTft_BackLight_Timer=__dwCountSystem+COUNT_1_SEC*2;//#ifdef LED_BackLight          #ifndef SUPPORT_TFT_DIGITAL_MODE     TFT_BackLight(TRUE);#endif}//--------------------------------------------------------------------------// Function    : TFT_AdjustInputSource// Description :set VP77 register to match video input source. It is Called when video input source has been changed // Input       ://--------------------------------------------------------------------------void TFT_AdjustInputSource(void){    if(__TFTStatusInfo.bReSetInputSource)    {        //clear all osd when av switch begin        __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_OFF;#ifdef SUPPORT_BATTERY_DETECTION        __TFTOSDStatusInfo.bBattery=TFT_OSD_BATTERY_OFF;#endif        __TFTOSDStatusInfo.bSetupMenu=TFT_OSD_SetupMenu_OFF;        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_UNLOCK;        __TFTStatusInfo.bReSetInputSource=0;        if(__TFTStatusInfo.bAv==TFT_AV_STATUS_AV) //external AV In        {            __TFTSystemAttr.bSource=EN_LCD_VID_FORMAT_CVBS;            Vipor_SetBlackScreen();        }          else //_sbAVInSW == dvd_STATUS        {        #ifdef SUPPORT_CCIR656                __TFTSystemAttr.bSource=EN_LCD_VID_FORMAT_CCIR656;  //Jeff 20060517 ADD here when USE CCIR656        #else              __TFTSystemAttr.bSource=EN_LCD_VID_FORMAT_SVIDEO;        #endif        }            __TFTSystemAttr.bSubSystem=0;        TFT_Adjust_VideoAttr(__TFTSystemAttr.bSource,__TFTSystemAttr.bSystem);        TFT_Adjust_TvType(__TFTStatusInfo.bTvType);        __dwTft_BackLight_Timer=__dwCountSystem+COUNT_2_SEC;        __bTft_TVModePrev=0xAf;    }}//--------------------------------------------------------------------------// Function    : TFT_SubSystem_Trigger// Description :trigger subsystem , not finished // Input       ://--------------------------------------------------------------------------#if 0BIT TFT_SubSystem_Trigger(BYTE bSystem, BYTE bSubSystem){    if(bSystem==EN_VID_MODE_NTSC)    {        Vipor_NTSC_VideoSubSystem(bSubSystem);        OS_DelayTime(COUNT_100_MSEC, FALSE);        return(Vipor_NTSC_GetColorBurstLocked());    }    else if(bSystem==EN_VID_MODE_PAL)    {        Vipor_PAL_VideoSubSystem(bSubSystem);        OS_DelayTime(COUNT_100_MSEC, FALSE);        return(Vipor_PAL_GetColorBurstLocked(bSubSystem));    }}#endif//--------------------------------------------------------------------------// Function    : TFT_AutoLockSignal// Description :Auto detect signal and set right VP77 register to match the input signal. It is only called as in AV STATUS // Input       ://--------------------------------------------------------------------------void TFT_AutoLockSignal(void){    if(!Vipor_GetVideoLocked())  //no signal    {        __TFTStatusInfo.bGetSignal=TFT_SIGNAL_STATUS_NoSignal;    }    else    {        __TFTStatusInfo.bGetSignal=TFT_SIGNAL_STATUS_GetSignal;    }    if(__TFTStatusInfo.bGetSignal==TFT_SIGNAL_STATUS_NoSignal)    {        if(__TFTOSDStatusInfo.bAv==TFT_OSD_AVStatus_OFF)        {            __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_ON;#ifdef TFT_SUPPORT_AVIN        TFTOSD_ShowAvStatus(TRUE);#endif //TFT_SUPPORT_AVIN            Vipor_SetBlackScreen();        }        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_UNLOCK;    }    else    {            if(__TFTSystemAttr.bSystem!=Vipor_GetVideoMode())            {                __TFTSystemAttr.bSystem=Vipor_GetVideoMode();                __TFTSystemAttr.bSubSystem=0;                TFT_Adjust_VideoAttr(__TFTSystemAttr.bSource,__TFTSystemAttr.bSystem);                TFT_Adjust_TvType(__TFTStatusInfo.bTvType);                __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_UNLOCK;            }            else            {                if(__TFTStatusInfo.bLockSignal==TFT_SIGNAL_STATUS_UNLOCK)                {                        //Vipor_AutoBiasControl();                        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_LOCK;                        Vipor_SetNormalOutput();                                                __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_OFF;#ifdef TFT_SUPPORT_AVIN        TFTOSD_ShowAvStatus(TRUE);#endif //TFT_SUPPORT_AVIN                        #if 0                                   if(TFT_SubSystem_Trigger(__TFTSystemAttr.bSystem,__TFTSystemAttr.bSubSystem))                    {                        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_LOCK;                        if(__TFTOSDStatusInfo.bAv==TFT_OSD_AVStatus_ON)                        {                            __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_OFF;    //                          COBY7300_OsdClearAV();                        }                        //Vipor_AutoBiasControl();  //Jeff 20060816                            //                  Vipor_SetNormalOutput();                    }                    else                    {                        __TFTSystemAttr.bSubSystem++;                        if((__TFTSystemAttr.bSystem==EN_VID_MODE_NTSC)&&(__TFTSystemAttr.bSubSystem>=COLOR_60_MAX))                        {                            __TFTSystemAttr.bSubSystem=COLOR_NTSC_M;                        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_LOCK;                    }                        if((__TFTSystemAttr.bSystem==EN_VID_MODE_PAL)&&(__TFTSystemAttr.bSubSystem>=COLOR_50_MAX))                        {                            __TFTSystemAttr.bSubSystem=COLOR_PAL_BGDHI;                        __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_LOCK;                    }                    }#endif                                      }            }    }}//--------------------------------------------------------------------------// Function    : TFT_Init_Variable// Description :iniitial variable// Input       ://--------------------------------------------------------------------------void TFT_Init_Variable(void){#ifdef SUPPORT_FLIP    __TFTStatusInfo.bFlip=EN_PANEL_FLIP_NORMAL;#endif    __TFTStatusInfo.bTvType=TFT_TVTYPE_STATUS_NORMAL;#ifdef SUPPORT_BATTERY_DETECTION    __TFTStatusInfo.bBattery=TFT_BATTERY_STATUS_HIGH;        __TFTStatusInfo.bBatteryPowerDown=TFT_BATTERY_STATUS_HIGH;#endif    __TFTStatusInfo.bBackLight=TFT_BACKLIGHT_STATUS_ON;    __TFTStatusInfo.bLockSignal=TFT_SIGNAL_STATUS_UNLOCK;    __TFTOSDStatusInfo.bAv=TFT_OSD_AVStatus_OFF;#ifdef SUPPORT_BATTERY_DETECTION    __TFTOSDStatusInfo.bBattery=TFT_OSD_BATTERY_OFF;#endif    __TFTOSDStatusInfo.bSetupMenu=TFT_OSD_SetupMenu_OFF;//  2. Select input source     __TFTStatusInfo.bAvPin= _TFT_ReadAvPIN();        __TFTStatusInfo.bAv=__TFTStatusInfo.bAvPin;    __TFTStatusInfo.bAvChaned=FALSE;    if(__TFTStatusInfo.bAv==TFT_AV_STATUS_AV)    {        __TFTSystemAttr .bSource=EN_LCD_VID_FORMAT_CVBS;        __TFTSystemAttr .bSystem=EN_VID_MODE_NTSC;        __TFTSystemAttr .bSubSystem=COLOR_NTSC_M;    }    else    {        #ifdef SUPPORT_CCIR656          __TFTSystemAttr.bSource=EN_LCD_VID_FORMAT_CCIR656;  //Jeff 20060517 ADD here when USE CCIR656        #else        __TFTSystemAttr .bSource=EN_LCD_VID_FORMAT_SVIDEO;        #endif        __TFTSystemAttr .bSystem=EN_VID_MODE_NTSC;        __TFTSystemAttr .bSubSystem=COLOR_NTSC_M;    }    __bTft_TVModePrev=0xAf;//SETUP_SCREEN_TV_SYSTEM_NTSC;    }//*******************************************************************************//--------------------------------------------------------------------------// Function    : TFT_Init_VP77// Description : power on initial vp77// Input       ://--------------------------------------------------------------------------void TFT_Init_VP77(void){    //LOAD OSD FONT        Vipor_LoadOsdFont();    //Move here for 952 OSD load err    //SET REG    TFT_Adjust_VideoAttr(__TFTSystemAttr.bSource,__TFTSystemAttr.bSystem);    TFT_Adjust_TvType(__TFTStatusInfo.bTvType);    Vipor_LoadGammaTable();    Vipor_OsdInit();}//*******************************************************************************//--------------------------------------------------------------------------// Function    : TFT_Init// Description : power on initial // Input       ://--------------------------------------------------------------------------void TFT_Init(void){//  1. Initial TFT controller#ifdef VP_API_CT909P    DWORD dwSaveInt;    OS_DISABLE_INTERRUPTS( dwSaveInt );    (*((volatile DWORD *)(0x80004064))) |= 0x00512224;    (*((volatile DWORD *)(0x80004068))) |= 0x000000C0;#ifdef SUPPORT_AV_IN     (*((volatile DWORD *)(0x80004078))) |= 0x00004000;  //Av in   #endif#ifdef Digital_PANEL    (*((volatile DWORD *)(0x80004058))) |= 0x0505A000;  //Digital panel#endif    OS_RESTORE_INTERRUPTS( dwSaveInt) ;#endif#ifdef CT951_PLATFORM        _TFT_Init_I2C();#endif    TFT_BackLight(0);    TFT_Init_Variable();    TFT_Init_VP77();    Vipor_SetFlipType(EN_PANEL_FLIP_NORMAL);//    Vipor_SetFlipType(EN_PANEL_FLIP_H);//    Vipor_SetFlipType(EN_PANEL_FLIP_V);//    Vipor_SetFlipType(EN_PANEL_FLIP_H_V);    if (__TFTStatusInfo.bAv==TFT_AV_STATUS_AV)    {        __bFWKey=KEY_POWER;    }}//*******************************************************************************//--------------------------------------------------------------------------// Function    : TFT_ProcessKey// Description : process input key. // Input       :bkey//--------------------------------------------------------------------------BYTE TFT_ProcessKey(){    BYTE bKey;#ifdef TFT_DEBUGif (KEY_MUTE == __bKey){__bKey = KEY_PICTURE;    //Vipor_OsdClearRow(0, 15, VIPOR_OSD_BLACK);    // OSD_BLACK=0#ifdef SUPPORT_BATTERY_DETECTION  TFT_BatteryAction();  TFTOSD_ShowBattery(TRUE);#endif  }#endif    if((__TFTStatusInfo.bDvdMonitorPowerDown)&&(__TFTStatusInfo.bAv==TFT_AV_STATUS_DVD))        return KEY_BYPASS;#ifdef SUPPORT_BATTERY_DETECTION    if (__btPowerDown && (__TFTStatusInfo.bBatteryPowerDown == TFT_BATTERY_STATUS_LOW))    {        return KEY_NO_KEY;    }#endif    bKey = TFTSetup_ProcessKey(__bKey);    switch(bKey)    {#ifdef TFT_DEBUG            case    KEY_TEST1:                printf("\nDVD In");                _sbAVInSW = 0;                __TFTStatusInfo.bReSetInputSource = TRUE;                __TFTStatusInfo.bAv = TFT_AV_STATUS_DVD;                bKey=KEY_NO_KEY;                break;            case    KEY_TEST2:                printf("\nExt AV In");                _sbAVInSW = 1;                __TFTStatusInfo.bReSetInputSource = TRUE;                __TFTStatusInfo.bAv = TFT_AV_STATUS_AV;                bKey=KEY_NO_KEY;                break;#endif#ifdef SUPPORT_FLIP        case KEY_TFT_REVERSE:            if(__TFTStatusInfo.bFlip==EN_PANEL_FLIP_NORMAL)            {                __TFTStatusInfo.bFlip=EN_PANEL_FLIP_V;            }            else            {                __TFTStatusInfo.bFlip=EN_PANEL_FLIP_NORMAL;            }            Vipor_SetFlipType(__TFTStatusInfo.bFlip);            bKey=KEY_NO_KEY;

⌨️ 快捷键说明

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