_csl_h3asetafconfig.c

来自「TI达芬奇dm644x各硬件模块测试代码」· C语言 代码 · 共 81 行

C
81
字号
/** @file _csl_h3aSetAfConfig.c
 *
 *  @brief    File for functional layer of CSL API @a CSL_h3aSetAfConfig()
 *
 *  Description
 *    - The @a CSL_h3aSetAfConfig() function definition & it's associated
 *      functions
 *
 *  @date 26th May, 2005
 *  @author Jesse Villarreal
 */

#include <csl_h3a_aux.h>

#pragma CODE_SECTION (CSL_h3aSetAfConfig, ".text:csl_section:h3a");

/** @brief Sets the AF parameters for the H3A module
 *	
 */
CSL_Status  CSL_h3aSetAfConfig(
    /** Pointer to the object that holds reference to the
     *  instance of H3A requested after the call 
	 */
    CSL_H3aHandle                         hH3a,
    /** Sets the AF parameters for the H3A module
	 */
    CSL_H3aAfConfig						   *config
	){
	
    CSL_H3aRegsOvly h3aRegs =  hH3a->regs; 
	CSL_Status   status=CSL_SOK;
    if(config == NULL) return (CSL_ESYS_INVPARAMS);

	/** Set H3A AF engine configuration */

	CSL_h3aAfAlawEn(hH3a, config->alawEnable);
	CSL_h3aAfMedianEn(hH3a, config->medEnable);
	CSL_h3aSetAfAccMode(hH3a, config->fvMode);
	CSL_h3aSelectAfRgbPosWin(hH3a, config->rgbPosition);

	h3aRegs->AFPAX1 =		CSL_FMK(H3A_AFPAX1_PAXW,((config->paxWidth>>1)-1))	|
							CSL_FMK(H3A_AFPAX1_PAXH,((config->paxHeight>>1)-1));
	h3aRegs->AFPAX2 =		CSL_FMK(H3A_AFPAX2_AFINCV,((config->paxLineIncr>>1)-1))	|
							CSL_FMK(H3A_AFPAX2_PAXVC,(config->paxVertCount-1))	|
							CSL_FMK(H3A_AFPAX2_PAXHC,(config->paxHorzCount-1));
	h3aRegs->AFPAXSTART =	CSL_FMK(H3A_AFPAXSTART_PAXSH,config->paxStartH)	|
							CSL_FMK(H3A_AFPAXSTART_PAXSV,config->paxStartV);
	h3aRegs->AFIIRSH =		CSL_FMK(H3A_AFIIRSH_IIRSH,config->iirStartH);

	status = CSL_h3aSetAfAddr(hH3a, config->sdramAddress);

	/** IIR filter coefficients entries */
	h3aRegs->AFCOEF010 =	CSL_FMK(H3A_AFCOEF010_COEFF0,config->iirCoef_0[0])	|
			                CSL_FMK(H3A_AFCOEF010_COEFF1,config->iirCoef_0[1]);
	h3aRegs->AFCOEF032 =	CSL_FMK(H3A_AFCOEF032_COEFF2,config->iirCoef_0[2])	|
			                CSL_FMK(H3A_AFCOEF032_COEFF3,config->iirCoef_0[3]);
	h3aRegs->AFCOEFF054 =	CSL_FMK(H3A_AFCOEFF054_COEFF4,config->iirCoef_0[4])	|
			                CSL_FMK(H3A_AFCOEFF054_COEFF5,config->iirCoef_0[5]);
	h3aRegs->AFCOEFF076=	CSL_FMK(H3A_AFCOEFF076_COEFF6,config->iirCoef_0[6])	|
			                CSL_FMK(H3A_AFCOEFF076_COEFF7,config->iirCoef_0[7]);
	h3aRegs->AFCOEFF098 =	CSL_FMK(H3A_AFCOEFF098_COEFF8,config->iirCoef_0[8])	|
			                CSL_FMK(H3A_AFCOEFF098_COEFF9,config->iirCoef_0[9]);
	h3aRegs->AFCOEFF0010 =	CSL_FMK(H3A_AFCOEFF0010_COEFF10,config->iirCoef_0[10]);


	h3aRegs->AFCOEF110 =	CSL_FMK(H3A_AFCOEF110_COEFF0,config->iirCoef_1[0])	|
			                CSL_FMK(H3A_AFCOEF110_COEFF1,config->iirCoef_1[1]);
	h3aRegs->AFCOEF132 =	CSL_FMK(H3A_AFCOEF132_COEFF2,config->iirCoef_1[2])	|
			                CSL_FMK(H3A_AFCOEF132_COEFF3,config->iirCoef_1[3]);
	h3aRegs->AFCOEFF154 =	CSL_FMK(H3A_AFCOEFF154_COEFF4,config->iirCoef_1[4])	|
			                CSL_FMK(H3A_AFCOEFF154_COEFF5,config->iirCoef_1[5]);
	h3aRegs->AFCOEFF176 =	CSL_FMK(H3A_AFCOEFF176_COEFF6,config->iirCoef_1[6])	|
			                CSL_FMK(H3A_AFCOEFF176_COEFF7,config->iirCoef_1[7]);
	h3aRegs->AFCOEFF198 =	CSL_FMK(H3A_AFCOEFF198_COEFF8,config->iirCoef_1[8])	|
			                CSL_FMK(H3A_AFCOEFF198_COEFF9,config->iirCoef_1[9]);
	h3aRegs->AFCOEFF1010 =	CSL_FMK(H3A_AFCOEFF1010_COEFF10,config->iirCoef_1[10]);


    return status;
}

⌨️ 快捷键说明

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