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

📄 llc_previewer.c

📁 the preview code includes auto focus, auto whitebalance. it is on TI DM6437 platform
💻 C
📖 第 1 页 / 共 5 页
字号:
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_0_1);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[0][1] != x)
        {
            llcPrevDebugErrorStatus = 43;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_0_2,
            (Uint32)prevConfigParams->whiteBalanceParam.position[0][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_0_2);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[0][2] != x)
        {
            llcPrevDebugErrorStatus = 44;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_0_3,
            (Uint32)prevConfigParams->whiteBalanceParam.position[0][3]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_0_3);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[0][3] != x)
        {
            llcPrevDebugErrorStatus = 45;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_1_0,
            (Uint32)prevConfigParams->whiteBalanceParam.position[1][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_1_0);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[1][0] != x)
        {
            llcPrevDebugErrorStatus = 46;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_1_1,
            (Uint32)prevConfigParams->whiteBalanceParam.position[1][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_1_1);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[1][1] != x)
        {
            llcPrevDebugErrorStatus = 47;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_1_2,
            (Uint32)prevConfigParams->whiteBalanceParam.position[1][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_1_2);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[1][2] != x)
        {
            llcPrevDebugErrorStatus = 48;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_1_3,
            (Uint32)prevConfigParams->whiteBalanceParam.position[1][3]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_1_3);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[1][3] != x)
        {
            llcPrevDebugErrorStatus = 49;
        }
#endif /* PREVIEWER_DEBUG */

        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_2_0,
            (Uint32)prevConfigParams->whiteBalanceParam.position[2][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_2_0);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[2][0] != x)
        {
            llcPrevDebugErrorStatus = 50;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_2_1,
            (Uint32)prevConfigParams->whiteBalanceParam.position[2][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_2_1);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[2][1] != x)
        {
            llcPrevDebugErrorStatus = 51;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_2_2,
            (Uint32)prevConfigParams->whiteBalanceParam.position[2][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_2_2);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[2][2] != x)
        {
            llcPrevDebugErrorStatus = 52;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_2_3,
            (Uint32)prevConfigParams->whiteBalanceParam.position[2][3]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_2_3);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[2][3] != x)
        {
            llcPrevDebugErrorStatus = 53;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_3_0,
            (Uint32)prevConfigParams->whiteBalanceParam.position[3][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_3_0);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[3][0] != x)
        {
            llcPrevDebugErrorStatus = 54;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_3_1,
            (Uint32)prevConfigParams->whiteBalanceParam.position[3][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_3_1);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[3][1] != x)
        {
            llcPrevDebugErrorStatus = 55;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_3_2,
            (Uint32)prevConfigParams->whiteBalanceParam.position[3][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_3_2);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[3][2] != x)
        {
            llcPrevDebugErrorStatus = 56;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->WBSEL, PREV_WBSEL_3_3,
            (Uint32)prevConfigParams->whiteBalanceParam.position[3][3]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->WBSEL, PREV_WBSEL_3_3);
        if ((Uint32)prevConfigParams->whiteBalanceParam.position[3][3] != x)
        {
            llcPrevDebugErrorStatus = 57;
        }
#endif /* PREVIEWER_DEBUG */

        /*  Set CFA Coefficients */
        if ((Uint32)0 != (prevConfigParams->features
                & PSP_PREVIEWER_CFA))
        {
            /* enable CFA interpolation in pcr */
            CSL_FINS(prevRegs->PCR, PREV_PCR_CFAEN,
                (Uint32)CSL_PREV_PCR_CFAEN_ENABLE);
#ifdef PREVIEWER_DEBUG
            x = CSL_FEXT(prevRegs->PCR, PREV_PCR_CFAEN);
            if ((Uint32)CSL_PREV_PCR_CFAEN_ENABLE != x)
            {
                llcPrevDebugErrorStatus = 58;
            }
#endif /* PREVIEWER_DEBUG */

            /* Set coefficients of Gamma correction */
            /* Set table address for red gamma */
            CSL_FINS(prevRegs->SET_TBL_ADDRESS, PREV_SET_TBL_ADDRESS_ADDR,
                (Uint32)LLC_PREVIEWER_CFA_COEFF_START_ADDR);
#ifdef PREVIEWER_DEBUG
            x = CSL_FEXT(prevRegs->SET_TBL_ADDRESS,
                PREV_SET_TBL_ADDRESS_ADDR);
            if ((Uint32)LLC_PREVIEWER_CFA_COEFF_START_ADDR != x)
            {
                llcPrevDebugErrorStatus = 59;
            }
#endif /* PREVIEWER_DEBUG */
            /* set data */
            for(i=0; i <= (LLC_PREVIEWER_CFA_COEFF_END_ADDR
                    - LLC_PREVIEWER_CFA_COEFF_START_ADDR); i++)
            {
                prevRegs->SET_TBL_DATA
                    = (Uint32)prevConfigParams->cfaCoeffsParam.coeffs[i];
                /* Address is auto incremented */
            }
#ifdef PREVIEWER_DEBUG
            CSL_FINS(prevRegs->SET_TBL_ADDRESS, PREV_SET_TBL_ADDRESS_ADDR,
                (Uint32)LLC_PREVIEWER_CFA_COEFF_START_ADDR);
            /* get data */
            for(i=0; i <= (LLC_PREVIEWER_CFA_COEFF_END_ADDR
                    - LLC_PREVIEWER_CFA_COEFF_START_ADDR); i++)
            {
                x = prevRegs->SET_TBL_DATA;
                if ((Uint8)prevConfigParams->cfaCoeffsParam.coeffs[i] != x)
                {
                    llcPrevDebugErrorStatus = 60;
                }
                /* Address is auto incremented */
            }
#endif /* PREVIEWER_DEBUG */

            /* set horizontal and vertical threshold */
            CSL_FINS(prevRegs->CFA, PREV_CFA_GRADTH_HOR,
                (Uint32)prevConfigParams->cfaCoeffsParam.hThreshold);
#ifdef PREVIEWER_DEBUG
            x = CSL_FEXT(prevRegs->CFA, PREV_CFA_GRADTH_HOR);
            if ((Uint32)prevConfigParams->cfaCoeffsParam.hThreshold != x)
            {
                llcPrevDebugErrorStatus = 61;
            }
#endif /* PREVIEWER_DEBUG */
            CSL_FINS(prevRegs->CFA, PREV_CFA_GRADTH_VER,
                (Uint32)prevConfigParams->cfaCoeffsParam.vThreshold);
#ifdef PREVIEWER_DEBUG
            x = CSL_FEXT(prevRegs->CFA, PREV_CFA_GRADTH_VER);
            if ((Uint32)prevConfigParams->cfaCoeffsParam.vThreshold != x)
            {
                llcPrevDebugErrorStatus = 62;
            }
#endif /* PREVIEWER_DEBUG */
        }

        /* Setting black adjustment offsets */
        CSL_FINS(prevRegs->BLKADJOFF, PREV_BLKADJOFF_B,
            (Uint32)prevConfigParams->blackAdjParam.blueAdj);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->BLKADJOFF, PREV_BLKADJOFF_B);
        if ((Uint32)prevConfigParams->blackAdjParam.blueAdj != x)
        {
            llcPrevDebugErrorStatus = 63;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->BLKADJOFF, PREV_BLKADJOFF_G,
            (Uint32)prevConfigParams->blackAdjParam.greenAdj);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->BLKADJOFF, PREV_BLKADJOFF_G);
        if ((Uint32)prevConfigParams->blackAdjParam.greenAdj != x)
        {
            llcPrevDebugErrorStatus = 64;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->BLKADJOFF, PREV_BLKADJOFF_R,
            (Uint32)prevConfigParams->blackAdjParam.redAdj);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->BLKADJOFF, PREV_BLKADJOFF_R);
        if ((Uint32)prevConfigParams->blackAdjParam.redAdj != x)
        {
            llcPrevDebugErrorStatus = 65;
        }
#endif /* PREVIEWER_DEBUG */

        /* setting RGB2RGB blending */
        CSL_FINS(prevRegs->RGB_MAT1, PREV_RGB_MAT1_MTX_RR,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[0][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT1, PREV_RGB_MAT1_MTX_RR);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[0][0] != x)
        {
            llcPrevDebugErrorStatus = 66;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT1, PREV_RGB_MAT1_MTX_GR,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[0][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT1, PREV_RGB_MAT1_MTX_GR);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[0][1] != x)
        {
            llcPrevDebugErrorStatus = 67;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT2, PREV_RGB_MAT2_MTX_BR,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[0][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT2, PREV_RGB_MAT2_MTX_BR);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[0][2] != x)
        {
            llcPrevDebugErrorStatus = 68;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT2, PREV_RGB_MAT2_MTX_RG,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[1][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT2, PREV_RGB_MAT2_MTX_RG);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[1][0] != x)
        {
            llcPrevDebugErrorStatus = 69;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT3, PREV_RGB_MAT3_MTX_GG,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[1][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT3, PREV_RGB_MAT3_MTX_GG);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[1][1] != x)
        {
            llcPrevDebugErrorStatus = 70;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT3, PREV_RGB_MAT3_MTX_BG,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[1][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT3, PREV_RGB_MAT3_MTX_BG);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[1][2] != x)
        {
            llcPrevDebugErrorStatus = 71;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT4, PREV_RGB_MAT4_MTX_RB,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[2][0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT4, PREV_RGB_MAT4_MTX_RB);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[2][0] != x)
        {
            llcPrevDebugErrorStatus = 72;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT4, PREV_RGB_MAT4_MTX_GB,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[2][1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT4, PREV_RGB_MAT4_MTX_GB);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[2][1] != x)
        {
            llcPrevDebugErrorStatus = 73;
        }
#endif /* PREVIEWER_DEBUG */
        CSL_FINS(prevRegs->RGB_MAT5, PREV_RGB_MAT5_MTX_BB,
            (Uint32)prevConfigParams->rgbBlendingParam.blending[2][2]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_MAT5, PREV_RGB_MAT5_MTX_BB);
        if ((Uint32)prevConfigParams->rgbBlendingParam.blending[2][2] != x)
        {
            llcPrevDebugErrorStatus = 74;
        }
#endif /* PREVIEWER_DEBUG */
        /* Writing offset of RGB2RGB blending */
        CSL_FINS(prevRegs->RGB_OFF1, PREV_RGB_OFF1_MTX_OFFR,
            (Uint32)prevConfigParams->rgbBlendingParam.offset[0]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_OFF1, PREV_RGB_OFF1_MTX_OFFR);
        if ((Uint32)prevConfigParams->rgbBlendingParam.offset[0] != x)
        {
            llcPrevDebugErrorStatus = 75;
        }
#endif /* PREVIEWER_DEBUG */

        CSL_FINS(prevRegs->RGB_OFF1, PREV_RGB_OFF1_MTX_OFFG,
            (Uint32)prevConfigParams->rgbBlendingParam.offset[1]);
#ifdef PREVIEWER_DEBUG
        x = CSL_FEXT(prevRegs->RGB_OFF1, PREV_RGB_OFF1_MTX_OFFG);
        if ((Uint32)prevConfigParams->rgbBlendingParam.offset[1] != x)
        {
            llcPrevDebugErrorStatus = 76;
        }

⌨️ 快捷键说明

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