csl_dpllaux.h
来自「dsp在音频处理中的运用」· C头文件 代码 · 共 91 行
H
91 行
#ifndef _CSL_DPLLAUX_H
#define _CSL_DPLLAUX_H
#ifdef __cplusplus
extern "C" {
#endif
/* Set the PLL Mode */
static inline
CSL_Status
CSL_dpllSetMode (
CSL_DpllHandle hDpll,
CSL_DpllMode mode
)
{
CSL_Status status = CSL_SOK;
if(mode == CSL_DPLL_MODE_BYPASS)
CSL_FINS(hDpll->regs->CTL,DPLL_CTL_PLL_ENABLE,0x0);
else if(mode == CSL_DPLL_MODE_LOCK)
CSL_FINS(hDpll->regs->CTL,DPLL_CTL_PLL_ENABLE,0x1);
else
status = CSL_ESYS_FAIL;/* If none of the above, then return error */
return status;
}
/* Based on the mode, set the clock multiplier and divider. */
static inline
void
CSL_dpllSetFrequency (
CSL_DpllHandle hDpll,
CSL_DpllHwSetup * hwsetup
)
{
if(CSL_FEXT(hDpll->regs->CTL,DPLL_CTL_PLL_ENABLE) ) { /* IF LOCK Mode */
/* pll multiplier */
CSL_FINS(hDpll->regs->CTL,DPLL_CTL_PLL_MULT,hwsetup->pllmult);
/* pll divider */
CSL_FINS(hDpll->regs->CTL,DPLL_CTL_PLL_DIV, hwsetup->plldiv);
} else
/* bypass divider */
CSL_FINS(hDpll->regs->CTL,DPLL_CTL_BYPASS_DIV,hwsetup->bypassdiv);
}
/* Get the PLL mode */
static inline
CSL_DpllMode
CSL_dpllGetMode (
CSL_DpllHandle hDpll
)
{
volatile CSL_DpllMode pllMode;
pllMode = (CSL_DpllMode)CSL_FEXT(hDpll->regs->CTL,DPLL_CTL_PLL_ENABLE);
return (pllMode);
}
/* Get the LOCK status */
static inline
CSL_DpllLock
CSL_dpllGetLockStatus (
CSL_DpllHandle hDpll
)
{
volatile CSL_DpllLock lockStatus;
lockStatus = (CSL_DpllLock)CSL_FEXT(hDpll->regs->CTL,DPLL_CTL_LOCK);
return (lockStatus);
}
/* Get the break status */
static inline
CSL_DpllLine
CSL_dpllGetBreakStatus (
CSL_DpllHandle hDpll
)
{
volatile CSL_DpllLine brkStatus;
brkStatus = (CSL_DpllLine)CSL_FEXT(hDpll->regs->CTL,DPLL_CTL_BREAKLN);
return (brkStatus);
}
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?