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

📄 yuv.c

📁 Bitek 公司 bit1611b模拟屏驱动芯片外接MCU驱动DEMO源码
💻 C
📖 第 1 页 / 共 2 页
字号:
        case YUV_ID_CVBS_11:
        case YUV_ID_CVBS_21:
        case YUV_ID_YC_Y12C22:
            if (bYUV_SB & VP_MASK_FIDT)
                return( YUV_CS_NTSC );                  // 60 Hz
            else
                return( YUV_CS_PAL );                   // 50 Hz
            break;
    }
} // YUV_GetColorStandard


#if (YUV_SET_BLACKLEVEL)
/* -------------------------------------------------------------------
    Name: YUV_SetBlackLevel - (YUV_01_BIT1611B)
    Purpose: To set the brightness of Video Decoder.
    Passed:
        UB8 bBrightness = 0..255
    Returns: None.
    Notes: [1]98
   ------------------------------------------------------------------- */
void YUV_SetBlackLevel (UB8 bBlackLevel)
{
    BITEK_TxByte(YUV_MAD, VP_108_DVP_BLACKLEVEL, bBlackLevel);
} // YUV_SetBlackLevel
#endif


#if (YUV_SET_BRIGHTNESS)
/* -------------------------------------------------------------------
    Name: YUV_SetBrightness - (YUV_01_BIT1611B)
    Purpose: To set the brightness of Video Decoder.
    Passed:
        UB8 bBrightness = 0..255
    Returns: None.
    Notes: [1]98
   ------------------------------------------------------------------- */
void YUV_SetBrightness (UB8 bBrightness)
{
    BITEK_TxByte(YUV_MAD, VP_106_DVP_BRIGHTNESS, bBrightness ^ 0x80);
} // YUV_SetBrightness
#endif


#if (YUV_SET_CONTRAST)
/* -------------------------------------------------------------------
    Name: YUV_SetContrast - (YUV_01_BIT1611B)
    Purpose: To set the contrast of Video Decoder.
    Passed:
        UB8 bContrast = 0..255
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetContrast (UB8 bContrast)
{
    BITEK_TxByte(YUV_MAD, VP_107_DVP_CONTRAST, bContrast);
} // YUV_SetContrast
#endif


#if (YUV_SET_HUE)
/* -------------------------------------------------------------------
    Name: YUV_SetHue - (YUV_01_BIT1611B)
    Purpose: To set the hue of Video Decoder.
    Passed:
        UW16 bHue = 0..255
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetHue (UB8 bHue)
{
    BITEK_TxByte(YUV_MAD, VP_10A_DVP_HUE, bHue);
} // YUV_SetHue
#endif


#if (YUV_SET_SATURATION)
/* -------------------------------------------------------------------
    Name: YUV_SetSaturation - (YUV_01_BIT1611B)
    Purpose: To set the saturation of Video Decoder.
    Passed:
        UB8 bSaturation = 0..127
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetSaturation (UB8 bSaturation)
{
    BITEK_TxByte(YUV_MAD, VP_109_DVP_SATURATION, bSaturation);
} // YUV_SetSaturation
#endif


#if (YUV_SET_SHARPNESS)
/* -------------------------------------------------------------------
    Name: YUV_SetSharpness - (YUV_01_BIT1611B)
    Purpose: To set the sharpness of Video Decoder.
    Passed:
        UB8 bSharpness = 0..0x7F
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetSharpness (UB8 bSharpness)
{
    #ifdef NOT_JUNK
    switch (tsEYD.bYUV_ID)
    {
        case YUV_ID_CVBS_11:
        case YUV_ID_CVBS_21:
        case YUV_ID_YC_Y12C22:
            BITEK_TxByte(YUV_MAD, VP_105_LUMA_ATTR, bSharpness);
            break;
    }
    #endif

    // [V00049] Revised by JC 11:51PM  2006/03/09
    /*
         R08B[7:4]     R103[2] R105[6:5]
           1011        0       0 0
           1010        0       0 1
           1001        0       1 0
           1000        1       0 0
           0111        0       1 1
           1100        1       0 1
           1101        1       1 0
           1110        1       1 1
           1111
    */

    UB8 CODE abLUT_Sharpness[ 51 ] =
    {
                    // R08B[7:4] R103[2] R105[6:5]
        0xB0,       //  0   1011      x000           0
        0xA0,       //  0   1010      x000           1
        0x70,       //  0   0111      x000           2
        0x90,       //  0   1001      x000           3
        0xB1,       //  1   1011      x001           4
        0x80,       //  0   1000      x000           5
        0xA1,       //  1   1010      x001           6
        0xC0,       //  0   1100      x000           7
        0x91,       //  1   1001      x001           8
        0x81,       //  1   1000      x001           9
        0xB2,       //  2   1011      x010           10
        0x71,       //  1   0111      x001           11
        0xD0,       //  0   1101      x000           12
        0xA2,       //  2   1010      x010           13
        0xC1,       //  1   1100      x001           14
        0xE0,       //  0   1110      x000           15
        0x82,       //  2   1000      x010           16
        0x92,       //  2   1001      x010           17
        0x72,       //  2   0111      x010           18
        0xD1,       //  1   1101      x001           19
        0xC2,       //  2   1100      x010           20
        0xA4,       //  3   1010      x100           21
        0x84,       //  3   1000      x100           22
        0x94,       //  3   1001      x100           23
        0xA5,       //  5   1010      x101           24
        0x74,       //  3   0111      x100           25
        0xD1,       //  1   1101      x001           26
        0xC2,       //  2   1100      x010           27
        0x75,       //  5   0111      x101           28
        0x76,       //  6   0111      x110           29
        0xA6,       //  6   1010      x110           30
        0x95,       //  5   1001      x101           31
        0xE1,       //  1   1110      x001           32
        0x85,       //  5   1000      x101           33
        0x96,       //  6   1001      x110           34
        0xD2,       //  2   1101      x010           35
        0x86,       //  6   1000      x110           36
        0xE2,       //  2   1110      x010           37
        0xC4,       //  3   1100      x100           38
        0x87,       //  7   1000      x111           39
        0xC5,       //  5   1100      x101           40
        0xC6,       //  6   1100      x110           41
        0xD4,       //  3   1101      x100           42
        0x97,       //  7   1001      x111           43
        0xD5,       //  5   1101      x101           44
        0x77,       //  7   0111      x111           45
        0xD6,       //  6   1101      x110           46
        0xE4,       //  3   1110      x100           47
        0xE5,       //  5   1110      x101           48
        0xC7,       //  7   1100      x111           49
        0xE6,       //  6   1110      x110           50
    };

    UB8 bData;


    bSharpness %= 51;

    // To setup register R08B[7:4] !
    bData = BITEK_RxByte(YUV_MAD, VP_08B_IMAGE_ATTR) & 0x0F;

    BITEK_TxByte(YUV_MAD,
                 VP_08B_IMAGE_ATTR,
                 (abLUT_Sharpness[ bSharpness ] & 0xF0) | bData);

    // To setup register R103[2] !
    bData = BITEK_RxByte(YUV_MAD, VP_103_LUMA_PATH3) & 0xFB;

    BITEK_TxByte(YUV_MAD,
                 VP_103_LUMA_PATH3,
                 (abLUT_Sharpness[ bSharpness ] & 0x04) | bData);

    // To setup register R105[6:5] !
    bData = BITEK_RxByte(YUV_MAD, VP_105_LUMA_ATTR) & 0x9F;

    BITEK_TxByte(YUV_MAD,
                 VP_103_LUMA_PATH3,
                 ((abLUT_Sharpness[ bSharpness ] << 5) & 0x60) | bData);


} // YUV_SetSharpness
#endif


#if (YUV_SET_SKINTONE)
/* -------------------------------------------------------------------
    Name: YUV_SetSkinTone - (YUV_01_BIT1611B)
    Purpose: To set the skin tone of Video Decoder.
    Passed:
        UB8 bSkinTone
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetSkinTone (UB8 bSkinTone)
{
    bSkinTone = bSkinTone;
} // YUV_SetSkinTone
#endif


/* -------------------------------------------------------------------
    Name: YUV_SetSourceMode - (YUV_01_BIT1611B)
    Purpose: To set YUV source mode with 100pF.
    Passed: bSourceID = 0...
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void YUV_SetSourceMode (UB8 bSourceID)
{

    // 0x102:
    //  7       6       5       4       3       2       1       0
    //  GAIN2   SEL2    ADC2    GAIN1   SEL1    ADC1    ANY     ANC
    //  0       0       0       0       1       1       0       0      = CVBS11 0x0C
    //  0       0       0       0       0       1       0       0      = CVBS12 0x04
    //  0       1       1       0       0       0       1       0      = CVBS21 0x62
    //  0       0       1       0       0       0       1       0      = CVBS22 0x22
    //  0       0       1       0       0       1       0       0      = Y12C22 0x24

    // 0x103:
    //  7       6       5       4       3       2       1       0
    //  VD_MON  x       ACLAMP2 ACLAMP1 YC_EN   PREF_EN CHT_SEL CHT_EN
    //                  TYPE    TYPE
    //  0       0       0       0       0       1       1       1      = CVBS11 0x07
    //  0       0       0       0       0       1       1       1      = CVBS12 0x07
    //  0       0       0       0       0       1       1       1      = CVBS21 0x07
    //  0       0       0       0       0       1       1       1      = CVBS22 0x07
    //  0       0       1       0       1       0       0       0      = Y12C22 0x28

/*
        CVBS                            S-Video
        AIN11   AIN12   AIN21   AIN22   Y11+C21 Y12+C22 C11+Y21 C12+Y22
0x101   0x7C    0x7C    0x7C    0x7C    0x7C    0x7C    0x7C    0x7C
0x102   0x0C    0x04    0x62    0x22    0x6C    0x24    0x6F    0x27
0x103   0x07    0x07    0x07    0x07    0x28    0x28    0x18    0x18
0x129   0x00    0x00    0x01    0x01    0x00    0x00    0x01    0x01
*/


    switch (bSourceID)
    {
        case YUV_ID_CVBS_11:
            BITEK_TxByte(YUV_MAD, VP_101_AFE_ATTR,      0x7C);
            BITEK_TxByte(YUV_MAD, VP_102_DVP_ATTR,      0x0C);
            BITEK_TxByte(YUV_MAD, VP_103_LUMA_PATH3,    0x07);
            BITEK_TxByte(YUV_MAD, VP_129_AAGC_ATTR,     0x00);
            break;

        case YUV_ID_CVBS_21:
            BITEK_TxByte(YUV_MAD, VP_101_AFE_ATTR,      0x7C);
            BITEK_TxByte(YUV_MAD, VP_102_DVP_ATTR,      0x62);
            BITEK_TxByte(YUV_MAD, VP_103_LUMA_PATH3,    0x07);
            BITEK_TxByte(YUV_MAD, VP_129_AAGC_ATTR,     0x01);
            break;

        case YUV_ID_YC_Y12C22:
            BITEK_TxByte(YUV_MAD, VP_101_AFE_ATTR,      0x7C);
            BITEK_TxByte(YUV_MAD, VP_102_DVP_ATTR,      0x24);
            BITEK_TxByte(YUV_MAD, VP_103_LUMA_PATH3,    0x28);
            BITEK_TxByte(YUV_MAD, VP_129_AAGC_ATTR,     0x00);
            break;
    }
} // YUV_SetSourceMode



/* -------------------------------------------------------------------
    Name:  -
    Purpose: .
    Passed: None.
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */


/* **********************************************************************

    Description:

   ********************************************************************** */


/* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */

⌨️ 快捷键说明

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