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

📄 tft.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "internal.h"#include "customer.h"#include "winav.h"#ifdef CT950_STYLE//#include "rtcdrv.h"//#define TFT_SHOW_TIME#endif#ifdef SUPPORT_TFT//#define VIPOR_CT675#ifdef CT909P_IC_SYSTEM  #define VP_API_CT909P#else  #define VP_API_CT909#endif//#define TFT_SUPPORT_AVIN// LLY3.07, porting CZ-YHTang code to use define for AV In feature.#ifdef TFT_SUPPORT_AVIN#define USE_CVBS_TABLE#endif  // #ifdef TFT_SUPPORT_AVIN#ifdef SUPPORT_CCIR656#define USE_CCIR656_TABLE//#define SUPPORT_BATTERY_DETECTION#else   // #ifdef SUPPORT_CCIR656#define USE_SVIDEO_TABLE#endif  // #ifdef SUPPORT_CCIR656#ifdef SUPPORT_TFT_DIGITAL_MODE  #define Digital_PANEL   #define PScan_mode#endif #ifndef REGTABLE#define     REGTABLE "VD\Regtable_CT950.H" //Set TFT include register table . Jeff VD 1.23 Add#endif#include REGTABLE/*#ifdef VP_API_CT909P#if (DECODER_SYSTEM == DMP952A_EVAL)   #include "VD\Regtable_CT952.H"  #elif (DECODER_SYSTEM == DVD909P_A_EVAL)   #include "VD\Regtable_CT909P_A.H"#elif (DECODER_SYSTEM == DVD909P_EVAL_P3)   #include "VD\Regtable_CT909P.H"   #elif (DECODER_SYSTEM == DMP955A_EVAL)   #include "VD\Regtable_CT955.H"#elif ((DECODER_SYSTEM == DMP956A_EVAL)||(DECODER_SYSTEM == DVD956A_DEV)) //#ifdef SUPPORT_TFT_DIGITAL_MODE  #define Digital_PANEL  #define PScan_mode  #include "VD\Regtable_CT956.H"  //#else  //#define PScan_mode  //#include "VD\Regtable_CT955.H"    //#endif#endif #else  #include "VD\Regtable_CT950.H"#endif //VP_API_CT909P*/#include "CC.h"#include "setup.h"#include "tft.h"#include "input.h"#include "utl.h"#include "HAL.h"#include "SERVO.h"#include "navigate.h"//#define SetPicture_ALL#define MUSTEK_RING_BRIGHT#include "VD\viporfunc.c"#include "VD\ViporOSD.C"#include "tftsetup.c" //#define TFT_DEBUG//#define Light_detect#ifdef CT951_PLATFORM //CoCo2.38 //Jeff check 20070320#define PIN_SDAT   20#define PIN_SCLK   21#endif // #ifndef CT951_PLATFORMI2C_CONFIG  I2C_Config;BYTE        _sbAVInSW = FALSE;BYTE        __bTft_TVModePrev = 0;extern     BIT _btAVIN; //Jeff 20060705 Add for AV inDWORD __dwTft_BackLight_Timer = 0xffffffff;#ifdef SUPPORT_BATTERY_DETECTIONDWORD  __dwTtfLowBattTime = 0xffffffff;BYTE   __bBatterty_POWER=0;#endifTFTSTATUS __TFTStatusInfo = {#ifdef SUPPORT_BATTERY_DETECTION                             TFT_BATTERY_STATUS_HIGH,                             TFT_BATTERY_STATUS_HIGH,#endif                             TFT_TVTYPE_STATUS_NORMAL,#ifdef SUPPORT_FLIP                             EN_PANEL_FLIP_NORMAL,#endif                             TFT_BACKLIGHT_STATUS_ON,                             TFT_AV_STATUS_DVD,                             TFT_AV_STATUS_DVD,                             FALSE,                             TFT_SIGNAL_STATUS_UNLOCK,                             TFT_SIGNAL_STATUS_NoSignal,                             0,                             0};TFTOSDSTATUS        __TFTOSDStatusInfo;TFTSYSTEMATTRIBUTE  __TFTSystemAttr;TFTPICATTRIBUTE     __TFTPicAttr;void _TFT_Init_I2C(void);BYTE _TFT_ReadAvPIN(void);#ifdef SUPPORT_BATTERY_DETECTIONvoid TFT_BatteryAction(void);#endif#ifdef TFT_SUPPORT_AVINvoid TFTOSD_ShowAvStatus(BYTE bShow);//***********************************************************************************************BYTE code TFTOSD_AV_String[] ={    _VIPOR_A,    _VIPOR_V,    _VIPOR_EOF};//--------------------------------------------------------------------------// Function    : TFTOSD_ShowAvStatus// Description : show  osd ''AV"  or clear it// Input       :TRUE:show osd, false: clear osd//--------------------------------------------------------------------------void TFTOSD_ShowAvStatus(BYTE bShow){    if(bShow)    {        Vipor_PrintString(0,        0,        VIPOR_OSD_GREEN,        (BYTE*) &TFTOSD_AV_String);    }    else    {        Vipor_OsdClearRow( 0,  0, VIPOR_OSD_BLACK);    }}#endif // #ifdef TFT_SUPPORT_AVIN#ifdef SUPPORT_BATTERY_DETECTIONBYTE code TFTOSD_Battery_String[] ={        _VIPOR_L,        _VIPOR_O,        _VIPOR_W,        _VIPOR__,        _VIPOR_B,        _VIPOR_A,        _VIPOR_T,        _VIPOR_T,        _VIPOR_E,        _VIPOR_R,        _VIPOR_Y,        _VIPOR_EOF};//--------------------------------------------------------------------------// Function    : TFTOSD_ShowBattery// Description : show  osd ''LOW BATTERY"  or clear it// Input       :TRUE:show osd, false: clear osd//--------------------------------------------------------------------------void TFTOSD_ShowBattery(BYTE bShow){    BYTE i;    BYTE code *dptr = TFTOSD_Battery_String;    BYTE __bBatterty_POWER = Vipor_BATTERY_State();        __bBatterty_POWER = __bBatterty_POWER * 127 /1000;    for(i=0; i<12; i++)      gbTrmBuf[i]=*dptr++;    //gbTrmBuf[8]=__bBatterty_POWER/100;    //__bBatterty_POWER -= (gbTrmBuf[8]*100);    /*    gbTrmBuf[8]=(__bBatterty_POWER)/10;    __bBatterty_POWER -= (gbTrmBuf[8]*10);    gbTrmBuf[9] = _VIPOR_V;    gbTrmBuf[10]=__bBatterty_POWER;    gbTrmBuf[8]++;    //gbTrmBuf[9]++;    gbTrmBuf[10]++;    gbTrmBuf[11]=_VIPOR_EOF;    bShow = 1;    */        if (bShow && !__bBatterty_POWER)        {                            Vipor_PrintString(12,                0,                VIPOR_OSD_RED,                (BYTE*) &gbTrmBuf[0]);        }        else        {                Vipor_OsdClearRow( 12,  12, VIPOR_OSD_BLACK);        }}#endif // #ifdef SUPPORT_BATTERY_DETECTION//--------------------------------------------------------------------------// Function    : TFT_BackLight// Description : control backlight on or off// Input       :TRUE:turn on backlight, false: turn off backlight//--------------------------------------------------------------------------void TFT_IO_BackLight(BYTE flag){      // Add code to turn off back light   #if 0   if (flag==TRUE)   {   	HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 1);		 printf("BackLight_On\n");   }   else   {   	HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 0);		printf("BackLight_Off\n");   }   #else   if (flag==TRUE)   {   	HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 0);		 printf("BackLight_On\n");   }   else   {   	HAL_WriteGPIO(TFT_BACKLIGHT_GRP, PIN_TFT_BACKLIGHT, 1);		printf("BackLight_Off\n");   }   #endif}void TFT_BackLight(BYTE flag){    if (flag)     Vipor_SetBlackLight_ON();    else     Vipor_SetBlackLight_OFF();      TFT_IO_BackLight(flag);   // Add code to turn off back light}void TFT_FreeRun(BIT flag){    if (flag)    {//      printf("SetBlackScreen\n");      Vipor_SetBlackScreen();    }    else     {//      printf("SetNormalOutput\n");      Vipor_SetNormalOutput();    }}    //--------------------------------------------------------------------------// Function    : TFT_Adjust_VideoAttr// Description :according input signal attribute to set VP77 register// Input       :bSource:CVBS or SVIDEO; bSystem:NTSC or PAL//--------------------------------------------------------------------------void TFT_Adjust_VideoAttr(BYTE bSource, BYTE bSystem)  // because  the  regtable default subsystem is 0,  so we don't need to add bSubSystem param{        TFT_BackLight(0);    if (bSource == EN_LCD_VID_FORMAT_CVBS)    {        if(bSystem==EN_VID_MODE_NTSC)            Vipor_SetVideo_CVBS_NTSC();        else if(bSystem==EN_VID_MODE_PAL)            Vipor_SetVideo_CVBS_PAL();    }    else if(bSource==EN_LCD_VID_FORMAT_SVIDEO)    {        if(bSystem==EN_VID_MODE_NTSC)            Vipor_SetVideo_SVIDEO_NTSC();        else if(bSystem==EN_VID_MODE_PAL)            Vipor_SetVideo_SVIDEO_PAL();    }    else if(bSource==EN_LCD_VID_FORMAT_CCIR656)  //Jeff 20060517 ADD here when USE CCIR656    {        if(bSystem==EN_VID_MODE_NTSC)          Vipor_CCIR656_NTSC();        else if(bSystem==EN_VID_MODE_PAL)            Vipor_CCIR656_PAL();  #ifdef PScan_mode//Digital_PANEL        else if(bSystem==EN_VID_MODE_TFT_DIGITAL)            Vipor_CCIR656_NTSC_P();#endif //Digital_PANEL            /*        else if(bSystem==EN_VID_MODE_TFT_ANALOG)                ;            */    }    TFTSetup_SetPicAttr();    Vipor_OsdInit();//  TFT_BackLight(1);}//--------------------------------------------------------------------------// Function    : TFT_Adjust_TvType// Description :set vp77 register to Adjust TFT PANEL display size// Input       :bTvType: 16:9 or 4:3//--------------------------------------------------------------------------void TFT_Adjust_TvType(BYTE bTvType){#ifdef MUSTEK_PF_A700_OLD #ifndef SUPPORT_6X4    {    extern BYTE __bMMMenuID, __bThumbnailMode;    extern IMAGE_FRAME_SETUPINFO __ImageFrameSetupInfo;    if(__ImageFrameSetupInfo.bDisplayType == SETUP_DISPLAY_TYPE_4_3)    //if(__SetupInfo.bAspectRatio == SETUP_SCREEN_TV_TYPE_LB)    {        if((__bAttrPlay==ATTR_JPG) && (__bMMMenuID==0) && !__bThumbnailMode)   // MM_MENU_NONE = 0        {            if(bTvType != TFT_TVTYPE_STATUS_43LB)            {               bTvType=TFT_TVTYPE_STATUS_43LB;            }        }        else        {            if(bTvType != TFT_TVTYPE_STATUS_NORMAL)            {                bTvType=TFT_TVTYPE_STATUS_NORMAL;            }        }    }    } #endif#endif      if (__TFTStatusInfo.bAv==TFT_AV_STATUS_AV)    {     if(bTvType==TFT_TVTYPE_STATUS_NORMAL)        {         Vipor_SetAspect_16_9_CVBS();        }     else        {         Vipor_SetAspect_4_3_CVBS();        }    }    else    {    if(bTvType==TFT_TVTYPE_STATUS_NORMAL)        {        Vipor_SetAspect_16_9();        }    else        {        Vipor_SetAspect_4_3();        }}}//--------------------------------------------------------------------------// Function    : TFT_AdjustTVMode// Description :set VP77 register to match video format. It is Called by hal.c when video format is changed  // Input       :bMode:NTSC OR PAL

⌨️ 快捷键说明

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