亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? csl_spiaux.h

?? 基于ti tms320c672x下音頻開發例子程式
?? H
?? 第 1 頁 / 共 3 頁
字號:
/** @file csl_spiAux.h
 *
 * @brief   Header file for functional layer of CSL
 *
 * Description
 *    - The defines inline function definitions
 *
 */

/*  ============================================================================
 *   Copyright (c) Texas Instruments Inc 2002, 2003, 2004
 *
 *   Use of this software is controlled by the terms and conditions found in the
 *   license agreement under which this software has been supplied.
 *   ===========================================================================
 */

/* =============================================================================
 *  Revision History
 *  ===============
 *  10-Sep-2004 Hs Added inline functions for query commands also.
 *  10-Sep-2004 Hs File Created from CSL_spiHwControl.c.
 *
 * =============================================================================
 */
#ifndef _CSLR_SPI_H_
#define _CSLR_SPI_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <csl_spi.h>


/** ============================================================================
 *   @n@b CSL_spiGetHwSetupPriFmt
 *
 *   @b Description
 *   @n This function gets the hardware setup of data format regs of the SPI.
 *
 *   @b Arguments
 *   @verbatim
            hSpi                    Handle to SPI instance
            fmtNum                  format number,
            *confFmt                pointer to config format

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiGetHwSetupPriFmt (hSpi, fmtNum, &confFmt);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiGetHwSetupPriFmt(
    CSL_SpiHandle                   hSpi,
    Uint8                           fmtNum,
    CSL_SpiHwSetupPriFmt            *confFmt
)
{

    Uint32 temp = hSpi->regs->SPIFMT[fmtNum];

    confFmt->wDelay   = CSL_FEXT(temp, SPI_SPIFMT_WDELAY);
    confFmt->preScale = CSL_FEXT(temp, SPI_SPIFMT_PRESCALE);
    confFmt->charLen  = CSL_FEXT(temp, SPI_SPIFMT_CHARLEN);
    confFmt->waitEna  = (CSL_SpiWaitEn)CSL_FEXT(temp, SPI_SPIFMT_WAITEN);
    confFmt->parity   = (CSL_SpiParity)CSL_FEXTR(temp, 23, 22);
    confFmt->phase    = (CSL_SpiClkPhase)CSL_FEXT(temp, SPI_SPIFMT_PHASE);
    confFmt->polarity = (CSL_SpiClkPolarity)
                    CSL_FEXT(temp, SPI_SPIFMT_POLARITY);
    confFmt->shiftDir = (CSL_SpiShDir)
                    CSL_FEXT(temp, SPI_SPIFMT_SHIFTDIR);
}


/** ============================================================================
 *   @n@b CSL_spiGetHwSetupCptInt
 *
 *   @b Description
 *   @n This function gets the hardware setup of interrupt levels of the SPI
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *intVal         pointer to the interrupt level

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiGetHwSetupCptInt (hSpi, &intVal);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiGetHwSetupCptInt(
    CSL_SpiHandle                   hSpi,
    Uint32                          *intVal
)
{
    *intVal = hSpi->regs->SPILVL;
}


/** ============================================================================
 *   @n@b CSL_spiGetHwSetupGen
 *
 *   @b Description
 *   @n This function gets the general hardware setup of the SPI module.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *genPtr         pointer to the structure

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiGetHwSetupGen (hSpi, &genPtr);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiGetHwSetupGen(
    CSL_SpiHandle                   hSpi,
    CSL_SpiHwSetupGen               *genPtr
)
{
    CSL_SpiRegsOvly regsPtr = hSpi->regs;
    Uint32 temp;

    genPtr->protocol = (CSL_SpiProtocol)CSL_FEXT(regsPtr->MIBSPIE,
                                                 SPI_MIBSPIE_MIBSPIENA);
    genPtr->opMode   = (CSL_SpiOpMod)CSL_FEXTR(regsPtr->SPIGCR1, 1, 0);
    genPtr->enaHiZ   = (CSL_SpiEnaHiZ)CSL_FEXT(regsPtr->SPIINT0,
                                                 SPI_SPIINT0_ENABLEHIGHZ);

    temp = regsPtr->SPIDELAY;
    genPtr->c2tDelay = CSL_FEXT(temp, SPI_SPIDELAY_C2TDELAY);
    genPtr->t2cDelay = CSL_FEXT(temp, SPI_SPIDELAY_T2CDELAY);
    genPtr->t2eTmout = CSL_FEXT(temp, SPI_SPIDELAY_T2EDELAY);
    genPtr->c2eTmout = CSL_FEXT(temp, SPI_SPIDELAY_C2EDELAY);
}

/** ============================================================================
 *   @n@b CSL_spiGetHwSetupGpio
 *
 *   @b Description
 *   @n This function gets the hardware setup of Global Pin config regs of SPI.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            gpioType        GPIO type
            *value          return value

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiGetHwSetupGpio (hSpi, gpioType, &value);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiGetHwSetupGpio(
    CSL_SpiHandle                   hSpi,
    CSL_SpiGpioType                gpioType,
    Uint16                          *value
)
{
    switch (gpioType) {
        case CSL_SPI_GPIOTYPE_FUNC:
            *value = hSpi->regs->SPIPC0;
            break;

        case CSL_SPI_GPIOTYPE_DIR:
            *value = hSpi->regs->SPIPC1;
            break;

        case CSL_SPI_GPIOTYPE_PULLCTRL:
            *value = hSpi->regs->SPIPC7;
            break;

        case CSL_SPI_GPIOTYPE_OPNDRAIN:
            *value = hSpi->regs->SPIPC6;
            break;
    }
}

/** ============================================================================
 *   @n@b CSL_spiGetHwSetupCptFmtCtrl
 *
 *   @b Description
 *   @n This function gets the hardwar setup of the DAT1 reg of the SPI module.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *fmtCtrlPtr     pointer to the format controller structure

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiGetHwSetupCptFmtCtrl (hSpi, &fmtCtrlPtr);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiGetHwSetupCptFmtCtrl(
    CSL_SpiHandle                   hSpi,
    CSL_SpiHwSetupFmtCtrl           *fmtCtrlPtr
)
{
    Uint32 temp = hSpi->regs->SPIDAT1;

    fmtCtrlPtr->csHold = (CSL_SpiCsHold)CSL_FEXT(temp, SPI_SPIDAT1_CSHOLD);
    fmtCtrlPtr->wDel   = (CSL_SpiWDelayEn)CSL_FEXT(temp, SPI_SPIDAT1_WDEL);
    fmtCtrlPtr->fmtSel = (CSL_SpiFmtSel)CSL_FEXT(temp, SPI_SPIDAT1_DFSEL);
    fmtCtrlPtr->cSel   = CSL_FEXT(temp, SPI_SPIDAT1_CSNR);
}

/** ============================================================================
 *   @n@b CSL_spiPwrStat
 *
 *   @b Description
 *   @n This function gets the power down mode of the SPI module.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *pwrMod         pointer to the power down mode value

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiPwrStat (hSpi, &pwrMod);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiPwrStat(
    /** pointer to the object that holds reference to the
     * instance of SPI requested after the call */
    CSL_SpiHandle                   hSpi,
    CSL_SpiPwrStat                  *pwrMod
)
{
    *pwrMod = (CSL_SpiPwrStat)CSL_FEXT(hSpi->regs->SPIGCR1, SPI_SPIGCR1_POWERDOWN);
}


/** ============================================================================
 *   @n@b CSL_spiPinVal
 *
 *   @b Description
 *   @n This function returns the value of pin control reg 2 of the SPI module.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *pinVal         pointer to the SPI PC2 register content value

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiPinVal (hSpi, &pinVal);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiPinVal(
    /** pointer to the object that holds reference to the
     * instance of SPI requested after the call */
    CSL_SpiHandle                   hSpi,
    Uint32                          *pinVal
)
{
    *pinVal = hSpi->regs->SPIPC2;
}


/** ============================================================================
 *   @n@b CSL_spiIntEnabled
 *
 *   @b Description
 *   @n This function returns the interrupt register value of the SPI module.
 *
 *   @b Arguments
 *   @verbatim
            hSpi            Handle to SPI instance
            *intVal         pointer to the interrupt reg content value

     @endverbatim
 *
 *   <b> Return Value </b>  None
 *
 *   <b> Pre Condition </b>
 *   @n  None
 *
 *   <b> Post Condition </b>
 *    @n None
 *
 *   @b Modifies
 *   @n  None
 *
 *   @b Example
 *   @verbatim

        CSL_spiIntEnabled (hSpi, &intVal);

     @endverbatim
 * ===========================================================================
 */
static inline
void CSL_spiIntEnabled(
    /** pointer to the object that holds reference to the
     * instance of SPI requested after the call */
    CSL_SpiHandle                   hSpi,
    Uint32                          *intVal
)
{
    *intVal = CSL_FEXTR(hSpi->regs->SPIINT0, 8, 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品综合免费视频观看| 久久精品一区蜜桃臀影院| 亚洲色图在线视频| 成人在线综合网站| 欧美一区二区三区小说| 亚洲成人激情社区| 91视频在线看| 亚洲欧美日韩久久精品| 99久久精品情趣| 中文字幕巨乱亚洲| 国产精品性做久久久久久| 欧美变态凌虐bdsm| 九色综合狠狠综合久久| 日韩欧美色电影| 激情文学综合网| 国产精品无遮挡| 91国偷自产一区二区三区成为亚洲经典| 国产日本亚洲高清| 精品一区二区在线免费观看| 欧美日韩亚洲综合一区 | 国产精品一区二区久久不卡| 国产午夜精品一区二区三区视频 | 欧美日韩在线播放三区四区| 日韩电影在线一区二区三区| 国产视频视频一区| 91丨porny丨蝌蚪视频| 青青草原综合久久大伊人精品| 亚洲精选免费视频| 色诱亚洲精品久久久久久| 欧美精品18+| 玖玖九九国产精品| 国产精品美女久久久久久久久| 99久久国产综合色|国产精品| 亚洲丝袜制服诱惑| 在线看不卡av| 久久成人免费网| 一区二区三区中文字幕| 久久综合狠狠综合久久激情| 一道本成人在线| 国产99久久精品| 亚洲1区2区3区4区| 国产精品毛片a∨一区二区三区| 日韩一二在线观看| 欧美一区二区三级| 在线观看不卡视频| 欧美亚洲综合色| 欧美日韩在线播放三区| 欧美三级电影精品| 欧美伊人久久久久久久久影院| 麻豆成人av在线| 日韩福利电影在线| 亚洲成人免费电影| 亚洲第四色夜色| 一区二区高清视频在线观看| 综合在线观看色| 国产精品传媒视频| 亚洲欧美日本在线| 亚洲综合免费观看高清完整版在线 | 欧美视频精品在线观看| 在线视频国内一区二区| 欧美日韩国产a| 91.xcao| www国产成人| 亚洲久本草在线中文字幕| 婷婷一区二区三区| 激情久久五月天| 不卡一卡二卡三乱码免费网站| 国产不卡视频在线播放| 不卡区在线中文字幕| 91色视频在线| aaa亚洲精品| 欧美丝袜自拍制服另类| 91麻豆精品在线观看| 欧美日韩在线一区二区| 亚洲国产精品黑人久久久| 亚洲最色的网站| 国产精品一区在线| 欧美在线视频你懂得| 色视频成人在线观看免| 色婷婷香蕉在线一区二区| 日韩一级高清毛片| 最近日韩中文字幕| 美女国产一区二区三区| 色综合久久综合网欧美综合网 | 天天综合网天天综合色| 国产馆精品极品| 欧美日韩高清一区| 亚洲天天做日日做天天谢日日欢| 视频一区国产视频| 91网站在线观看视频| 国产丝袜在线精品| 美腿丝袜一区二区三区| 欧美日韩一区二区三区四区| 国产精品久久二区二区| 国产夫妻精品视频| 久久综合给合久久狠狠狠97色69| 天天影视涩香欲综合网| 欧美三级乱人伦电影| 亚洲成人福利片| 成人免费观看av| 日韩三级伦理片妻子的秘密按摩| 综合久久一区二区三区| 九色|91porny| 久久综合网色—综合色88| 久久精品国产在热久久| 在线播放91灌醉迷j高跟美女 | 欧美久久一二三四区| 久久国产日韩欧美精品| 欧美成人免费网站| 五月天一区二区三区| 91麻豆国产精品久久| 亚洲电影一级黄| 91精品国产入口| 久久国产综合精品| 国产亚洲综合在线| 91久久一区二区| 亚洲成av人片一区二区三区| 欧美一二三四区在线| 99久久亚洲一区二区三区青草| 夜夜精品视频一区二区| 337p日本欧洲亚洲大胆精品| 色哟哟日韩精品| 麻豆成人在线观看| 日韩理论在线观看| 欧美日韩久久久一区| 成人性生交大片免费看中文| 亚洲已满18点击进入久久| 日韩午夜av电影| 欧美性一二三区| 99v久久综合狠狠综合久久| 国产精品一区二区久久精品爱涩| 亚洲国产日日夜夜| 日本一区二区三区dvd视频在线| 欧美电影一区二区三区| 极品美女销魂一区二区三区| 国产精品国产自产拍高清av王其| 欧美色图一区二区三区| 国产成人av影院| 九九久久精品视频| 偷窥少妇高潮呻吟av久久免费| 国产精品青草综合久久久久99| 久久女同精品一区二区| 欧美va亚洲va国产综合| 日韩欧美国产成人一区二区| 欧美日韩日日摸| 欧美日韩在线亚洲一区蜜芽| 99久久久久免费精品国产| 国产一区二区成人久久免费影院 | 日韩一区二区三区在线| 精品视频一区二区三区免费| 国产成人亚洲综合a∨猫咪| 日韩中文字幕区一区有砖一区| 亚洲免费av在线| 亚洲精品成人在线| 亚洲一区在线观看免费 | 国产乱码精品一品二品| 激情欧美一区二区| 国产老女人精品毛片久久| 美日韩一区二区三区| 爽好久久久欧美精品| 蓝色福利精品导航| 国产一区二区影院| 91亚洲精品乱码久久久久久蜜桃| 国产精品正在播放| 成人久久久精品乱码一区二区三区| 一本色道久久综合亚洲精品按摩| 欧美精选午夜久久久乱码6080| 精品国产乱码久久久久久久| 51久久夜色精品国产麻豆| 欧美一区二区三区免费视频| 久久免费电影网| 国产精品素人视频| 亚洲第一福利一区| 国产在线一区观看| 91捆绑美女网站| 精品乱人伦一区二区三区| 亚洲最大成人网4388xx| 亚洲成人动漫av| 国产乱子伦视频一区二区三区| 国产91丝袜在线观看| 欧美日韩国产一区二区三区地区| 久久久久国产精品麻豆ai换脸 | 在线观看精品一区| 2024国产精品| 亚洲精品国产a| 国产精品18久久久久久久久久久久 | 亚洲一区二区三区免费视频| www.欧美日韩| 国产亚洲精品福利| 久久精品国产精品亚洲精品| 在线一区二区三区四区五区 | 亚洲伊人色欲综合网| 成人一区在线观看| 久久毛片高清国产| 精品一区二区日韩| 欧美肥胖老妇做爰| 亚洲成人精品在线观看| 欧美日韩亚洲综合| 五月婷婷另类国产| 7777精品伊人久久久大香线蕉经典版下载 |