📄 _csl_h3asetafconfig.c
字号:
/** @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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -