csl_timeraux.h

来自「dsp在音频处理中的运用」· C头文件 代码 · 共 162 行

H
162
字号
#ifndef _CSL_TIMERAUX_H
#define _CSL_TIMERAUX_H

#include <cslr_timer.h>
#include <csl_timer.h>

#ifdef __cplusplus
extern "C" {
#endif

static inline
void
    CSL_timerStart (
        CSL_TimerHandle hTimer
)
{
    CSL_FINST(hTimer->regs->CNTL, TIMER_CNTL_ST, START);
}


static inline
void
    CSL_timerStop (
        CSL_TimerHandle hTimer
)
{
    CSL_FINST(hTimer->regs->CNTL, TIMER_CNTL_ST, STOP);
}


static inline
void
    CSL_timerSetPeriod (
        CSL_TimerHandle hTimer,
        CSL_TimerCount  count
)
{
    hTimer->regs->LOAD = count;
}


static inline
void
    CSL_timerSetPrescale (
        CSL_TimerHandle     hTimer,
        CSL_TimerPrescale   prescale
)
{
    CSL_FINS(hTimer->regs->CNTL, TIMER_CNTL_PTV, prescale);
}


static inline
CSL_TimerPrescale
    CSL_timerGetPrescale (
        CSL_TimerHandle     hTimer
)
{
    return (CSL_TimerPrescale) CSL_FEXT(hTimer->regs->CNTL, TIMER_CNTL_PTV);
}



static inline
void
    CSL_timerSetLoadMode (
        CSL_TimerHandle     hTimer,
        CSL_TimerLoadMode   mode
)
{
    CSL_FINS(hTimer->regs->CNTL, TIMER_CNTL_AR, mode);
}


static inline
CSL_TimerLoadMode
    CSL_timerGetLoadMode (
        CSL_TimerHandle     hTimer
)
{
    return (CSL_TimerLoadMode) CSL_FEXT(hTimer->regs->CNTL, TIMER_CNTL_AR);
}


static inline
void
    CSL_timerSetEmuMode (
        CSL_TimerHandle     hTimer,
        CSL_TimerEmuMode    emuMode
)
{
    CSL_FINS(hTimer->regs->CNTL, TIMER_CNTL_FREE, emuMode);
}


static inline
CSL_TimerEmuMode
    CSL_timerGetEmuMode (
        CSL_TimerHandle     hTimer
)
{
    return  (CSL_TimerEmuMode) CSL_FEXT(hTimer->regs->CNTL, TIMER_CNTL_FREE);
}


static inline
void
    CSL_timerExtlClock (
        CSL_TimerHandle     hTimer,
        CSL_TimerExtClock   extlClk
)
{
    CSL_FINS(hTimer->regs->CNTL, TIMER_CNTL_CLKEN, extlClk);
}


static inline
CSL_TimerExtClock
    CSL_timerGetExtlClock (
        CSL_TimerHandle     hTimer
)
{
    return (CSL_TimerExtClock) CSL_FEXT(hTimer->regs->CNTL, TIMER_CNTL_CLKEN);
}


static inline
Uint32
    CSL_timerGetCount (
        CSL_TimerHandle hTimer
)
{
    return (Uint32) hTimer->regs->READ;
}


static inline
Bool
    CSL_timerIsRunning (
        CSL_TimerHandle hTimer
)
{
    return CSL_FEXT(hTimer->regs->CNTL, TIMER_CNTL_ST);
}


static inline
void
    CSL_timerRegReset (
        CSL_TimerHandle hTimer
)
{
    hTimer->regs->CNTL = CSL_TIMER_CNTL_RESETVAL;
    hTimer->regs->LOAD = CSL_TIMER_LOAD_RESETVAL;
}

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

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