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

📄 vp.c

📁 Bitek 公司 bit1611b模拟屏驱动芯片外接MCU驱动DEMO源码
💻 C
📖 第 1 页 / 共 2 页
字号:
       .................................... */
    YUV_SetBrightness(tsEYD.bBrightness);
    YUV_SetContrast(tsEYD.bContrast);
    YUV_SetSaturation(tsEYD.bSaturation);
    YUV_SetHue(tsEYD.bHue);
    YUV_SetSharpness(tsEYD.bSharpness);

    /* ....................................
        Video Processor
       .................................... */
    VP_SetBlackLevel(tsEGD.bBlackLevel);
    VP_SetBrightness(tsEGD.bBrightness);
    VP_SetContrast(tsEGD.bContrast);

    // To adjust VP
    VP_SetImageFilter(tsEGD.bImage_Filter);

    // To restore VP TCON mode !
    VP_SetTCON_Mode(tsEGD.bTCON_Mode);
} // VP_SetColorStandard
#endif


#if (VP_SET_BRIGHTNESS)
/* -------------------------------------------------------------------
    Name: VP_SetBrightness -
    Purpose: This function sets the VP Brightness.
    Passed: 0x00..0xFF
    Returns: None.
    Notes: [1]63
   ------------------------------------------------------------------- */
void VP_SetBrightness (UB8 bBrightness)
{
    BITEK_TxByte(VP_MAD, VP_07C_BRIGHTNESS_R, bBrightness);
    BITEK_TxByte(VP_MAD, VP_07D_BRIGHTNESS_G, bBrightness);
    BITEK_TxByte(VP_MAD, VP_07E_BRIGHTNESS_B, bBrightness);
} // VP_SetBrightness
#endif


#if (VP_SET_CONTRAST)
/* -------------------------------------------------------------------
    Name: VP_SetContrast -
    Purpose: This function sets the VP Contrast.
    Passed: 0x00..0xFF
    Returns: None.
    Notes: [1]63
   ------------------------------------------------------------------- */
void VP_SetContrast (UB8 bContrast)
{
    BITEK_TxByte(VP_MAD, VP_07F_CONTRAST_R, bContrast);
    BITEK_TxByte(VP_MAD, VP_080_CONTRAST_G, bContrast);
    BITEK_TxByte(VP_MAD, VP_081_CONTRAST_B, bContrast);
} // VP_SetContrast
#endif


#if (VP_SET_IMAGE_FILTER)
/* -------------------------------------------------------------------
    Name: VP_SetImageFilter -
    Purpose: To set Image Filter.
    Passed: 
        0..8 (High smoothness..Low smoothness, Bypass, Low sharpness,..High sharpness)
        0..3    = Smoothness
        4       = Bypass
        5..8    = Sharpness
    Returns:
    Notes: [1]67
   ------------------------------------------------------------------- */
void VP_SetImageFilter (UB8 bImageFilter)
{
    UB8 bData;


    if (bImageFilter == IMAGE_FILTER_NORMAL)
    {
        // Bypass
        // 0xxx xxxx
        bData = BITEK_RxByte(VP_MAD, VP_08B_IMAGE_ATTR) & ~VP_MASK_FILTER_EN;
    }
    else
    {
        bData = BITEK_RxByte(VP_MAD, VP_08B_IMAGE_ATTR) & ~VP_MASK_FILTER_TYPE;
        bData |= VP_MASK_FILTER_EN;


        if (bImageFilter < IMAGE_FILTER_NORMAL)
        {
            // Smothness
            // 1000 xxxx
            // 1011 xxxx
            bData = bData | ((3 - bImageFilter) << 4);
        }
        else if (bImageFilter > IMAGE_FILTER_NORMAL)
        {
            // Sharpness
            // 1100 xxxx
            // 1111 xxxx
            bData = bData | ((bImageFilter - 1) << 4);
        }
    }

    BITEK_TxByte(VP_MAD, VP_08B_IMAGE_ATTR, bData);
} /* VP_SetImageFilter */
#endif


#if (VP_SET_PWM_DUTY)
/* -------------------------------------------------------------------
    Name: VP_SetPWM_DUTY -
    Purpose: This function sets the VP PWM Duty.
    Passed:
    Returns: None.
    Notes: [1]74
   ------------------------------------------------------------------- */
void VP_SetPWM_DUTY (
UB8     bPWM,       // 1..4
UW16    wDUTY       // 0..511
)
{
    switch (bPWM)
    {
        case 1:
            BITEK_TxWord(VP_MAD, VP_0E20E3_PWM1_DUTY, wDUTY);
            break;

        case 2:
            BITEK_TxWord(VP_MAD, VP_0E80E9_PWM2_DUTY, wDUTY);
            break;

        case 3:
            BITEK_TxByte(VP_MAD, VP_0EC_PWM3_DUTY, wDUTY);
            break;

        case 4:
            BITEK_TxByte(VP_MAD, VP_0EE_PWM4_DUTY, wDUTY);
            break;
    } // switch

} // VP_SetPWM_DUTY
#endif


#if (VP_SET_PWM_FREQ)
/* -------------------------------------------------------------------
    Name: VP_SetPWM_FREQ -
    Purpose: This function sets the VP PWM Frequency.
    Passed:
    Returns: None.
    Notes: [1]74
   ------------------------------------------------------------------- */
void VP_SetPWM_FREQ (
UB8     bPWM,       // 1..4
UW16    wFREQ       // 0..511
)
{
    UB8 bData;


    switch (bPWM)
    {
        case 1:
            BITEK_TxByte(VP_MAD, VP_0E00E1_PWM1_FREQ, wFREQ);

            bData = BITEK_RxByte(VP_MAD, VP_0E1_PWM1_ATTR) & ~VP_MASK_PWM1_FREQ_MSB;
            wFREQ >>= 4;                        // 8 -> 4
            wFREQ &= VP_MASK_PWM1_FREQ_MSB;
            BITEK_TxByte(VP_MAD, VP_0E1_PWM1_ATTR, bData | wFREQ);
            break;

        case 2:
            BITEK_TxByte(VP_MAD, VP_0E50E7_PWM2_FREQ, wFREQ);

            bData = BITEK_RxByte(VP_MAD, VP_0E7_PWM2_ATTR) & ~VP_MASK_PWM2_FREQ_MSB;
            wFREQ >>= 4;                        // 8 -> 4
            wFREQ &= VP_MASK_PWM2_FREQ_MSB;
            BITEK_TxByte(VP_MAD, VP_0E7_PWM2_ATTR, bData | wFREQ);
            break;

        case 3:
            BITEK_TxByte(VP_MAD, VP_0EB_PWM3_FREQ, wFREQ);
            break;

        case 4:
            BITEK_TxByte(VP_MAD, VP_0ED_PWM4_FREQ, wFREQ);
            break;
    } // switch
} // VP_SetPWM_FREQ
#endif


#if (VP_SET_PWM_REF)
/* -------------------------------------------------------------------
    Name: VP_SetPWM_REF -
    Purpose: This function sets the VP PWM REF.
    Passed:
    Returns: None.
    Notes: [1]86
   ------------------------------------------------------------------- */
void VP_SetPWM_REF (
UB8     bPWM,       // 1..2
UW16    wREF        // 0..1023
)
{
    UB8 bData;


    switch (bPWM)
    {
        case 1:
            // LSB
            BITEK_TxByte(VP_MAD, VP_0DF0E1_PWM1_REF, wREF);

            bData = BITEK_RxByte(VP_MAD, VP_0E1_PWM1_ATTR) & ~VP_MASK_PWM1_REF_MSB;
            wREF >>= 8;                         // 8 -> 0
            wREF &= VP_MASK_PWM1_REF_MSB;
            BITEK_TxByte(VP_MAD, VP_0E1_PWM1_ATTR, bData | wREF);
            break;

        case 2:
            BITEK_TxByte(VP_MAD, VP_0E40E7_PWM2_REF, wREF);

            bData = BITEK_RxByte(VP_MAD, VP_0E7_PWM2_ATTR) & ~VP_MASK_PWM2_REF_MSB;
            wREF >>= 8;                         // 8 -> 0
            wREF &= VP_MASK_PWM2_REF_MSB;
            BITEK_TxByte(VP_MAD, VP_0E7_PWM2_ATTR, bData | wREF);
            break;
    } // switch

} // VP_SetPWM_REF
#endif


#if (VP_SET_TCON_MODE)
/* -------------------------------------------------------------------
    Name: VP_SetTCON_Mode -
    Purpose: To set the video processor TCON Mode.
    Passed:
        UB8 bTCON_Mode  TCON_MODE_RU    or
                        TCON_MODE_LU    or
                        TCON_MODE_LD    or
                        TCON_MODE_RD
    Returns: None.
    Notes:
   ------------------------------------------------------------------- */
void VP_SetTCON_Mode (UB8 bTCON_Mode)
{
	UB8 b24;


    b24 = BITEK_RxByte(VP_MAD, VP_024_OUTPUT_DATAPATH) & VP_MASK_ACTIVE_TOTAL;

    switch (bTCON_Mode)
    {
        case TCON_MODE_RU:
            BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH,  b24 | 0x0F);
            BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO,  0x05);
            SPI_TxByte(0x05, 0x13);
            break;

        case TCON_MODE_LU:
            BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH,  b24 | 0x8B);
            BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO,  0x15);
            SPI_TxByte(0x05, 0x12);
            break;

        case TCON_MODE_LD:
            BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH,  b24 | 0x53);
            BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO,  0x15);
            SPI_TxByte(0x05, 0x10);
            break;

        case TCON_MODE_RD:
            BITEK_TxByte(VP_MAD, VP_024_OUTPUT_DATAPATH,  b24 | 0xC3);
            BITEK_TxByte(VP_MAD, VP_07B_RGBOUT_DLYO,  0x15);
            SPI_TxByte(0x05, 0x11);
            break;
    } // switch
} // VP_SetTCON_Mode
#endif


#if (VP_SET_TESTPATTERN)
/* -------------------------------------------------------------------
    Name: VP_SetTestPattern -
    Purpose: VP Background and Test Pattern.
    Passed:
    Returns: None
    Notes: [1]40
   ------------------------------------------------------------------- */
void VP_SetTestPattern (
UB8 bColorR,
UB8 bColorG,
UB8 bColorB,
UB8 bPatternType,   // Pattern Type
UB8 bMode           // Freerun/Background
)
{
    UB8     b40;


    b40 = BITEK_RxByte(VP_MAD, VP_040_TESTPAT_ATTR) & (VP_MASK_PATTERN_HV | VP_MASK_PATTERN_DIR);

    BITEK_TxByte(VP_MAD, VP_03C_TESTPAT_R, bColorR);
    BITEK_TxByte(VP_MAD, VP_03D_TESTPAT_G, bColorG);
    BITEK_TxByte(VP_MAD, VP_03E_TESTPAT_B, bColorB);

    BITEK_TxByte(VP_MAD, VP_040_TESTPAT_ATTR, b40 | bMode | bPatternType);
} /* VP_SetTestPattern */
#endif



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

    Description:

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

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

⌨️ 快捷键说明

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