亚洲欧美第一页_禁久久精品乱码_粉嫩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同城在线观看| 色美美综合视频| 91免费小视频| 久久久久久久久99精品| 久久色在线视频| 国产午夜一区二区三区| 中文字幕精品一区二区精品绿巨人| 久久久精品免费免费| 奇米777欧美一区二区| 韩日av一区二区| 国产一区欧美一区| 国产91丝袜在线观看| 一本大道久久a久久精二百| 欧美伊人久久久久久午夜久久久久| 欧美亚洲国产怡红院影院| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 三级在线观看一区二区| 免费观看日韩av| 欧美日韩日日夜夜| 欧美不卡激情三级在线观看| 久久久天堂av| 国产综合色产在线精品| 精品久久久久久久久久久久久久久久久 | 日韩精品三区四区| 欧美丝袜丝nylons| 亚洲福利视频三区| 久久国产剧场电影| 色婷婷久久久久swag精品 | 一区二区三区日韩精品视频| 首页欧美精品中文字幕| 777奇米成人网| 国产精品福利一区| 91视频一区二区| 一区二区三区鲁丝不卡| 精品视频在线视频| 婷婷亚洲久悠悠色悠在线播放 | 91蜜桃在线免费视频| 一区二区在线电影| 国产黄色精品视频| 日韩欧美国产一区二区在线播放| 亚洲欧美激情插| 国产成人综合亚洲91猫咪| 国产精品天天看| 免费不卡在线视频| 久久综合99re88久久爱| 成人动漫一区二区三区| 日韩精品一区二区三区中文精品| 精品亚洲欧美一区| 欧美综合亚洲图片综合区| 国产精品国产自产拍在线| 欧美亚洲综合在线| 奇米888四色在线精品| 国产亚洲综合av| 欧美视频中文一区二区三区在线观看| 日本美女一区二区三区| 欧美视频你懂的| 久久99精品久久久久久动态图| 国产视频一区在线播放| 在线影院国内精品| 久久99国产精品麻豆| 中文字幕中文字幕一区| 欧美情侣在线播放| 亚洲大片精品永久免费| 在线观看亚洲精品视频| 经典三级在线一区| 一区二区在线电影| 久久久影视传媒| 欧美精品乱码久久久久久按摩| 一区二区三区四区在线| 久久久夜色精品亚洲| 欧美三级在线播放| 成人国产精品免费观看动漫| 午夜亚洲国产au精品一区二区| 久久精品在线免费观看| 91精品国产色综合久久ai换脸| 成人午夜碰碰视频| 久久99久久99精品免视看婷婷| 亚洲图片激情小说| 欧美精品一区二区三区蜜桃 | 久久久久国产精品麻豆| 精品视频一区二区不卡| 丁香婷婷综合色啪| 美美哒免费高清在线观看视频一区二区| 亚洲欧洲av一区二区三区久久| 一本到不卡免费一区二区| 国产一区二区美女诱惑| 日韩国产欧美在线播放| 亚洲国产视频在线| 综合色天天鬼久久鬼色| 欧美激情中文字幕| 2021久久国产精品不只是精品| 欧美无乱码久久久免费午夜一区| 99免费精品视频| 亚洲成人777| 一区二区三区在线观看网站| 国产精品国产精品国产专区不片| 久久婷婷国产综合精品青草| 欧美一级一区二区| 日韩一卡二卡三卡国产欧美| 国产传媒日韩欧美成人| 国内精品在线播放| 欧美a级理论片| 日本一不卡视频| 免费成人在线视频观看| 美国一区二区三区在线播放| 日韩av网站在线观看| 日日噜噜夜夜狠狠视频欧美人 | 精品一区二区三区欧美| 经典三级一区二区| 国模大尺度一区二区三区| 国产综合久久久久影院| 国模娜娜一区二区三区| 国产精品一区二区黑丝| 一区二区视频在线| 一区二区三区91| 亚洲成av人片| 日本女人一区二区三区| 精品一区二区影视| 国产91精品免费| 色综合久久天天综合网| 欧美日韩一级片在线观看| 3d成人h动漫网站入口| 欧美精品久久99| 欧美一区二区精品| 欧美mv日韩mv国产网站| 欧美激情综合五月色丁香| 亚洲婷婷综合久久一本伊一区| 一区二区在线电影| 奇米影视一区二区三区小说| 国产伦精品一区二区三区视频青涩 | 亚洲一区免费视频| 国产精品午夜免费| 一区二区三区中文字幕| 日韩电影在线观看一区| 国产麻豆欧美日韩一区| 一道本成人在线| 日韩亚洲欧美成人一区| 国产精品久久一级| 午夜欧美大尺度福利影院在线看| 精品一区二区在线观看| 99久久99久久免费精品蜜臀| 国产91精品露脸国语对白| 在线免费观看不卡av| 日韩欧美精品在线| 亚洲同性gay激情无套| 免费人成在线不卡| 成人动漫在线一区| 91精品国产欧美一区二区| 国产亚洲va综合人人澡精品| 亚洲自拍偷拍图区| 国产不卡视频一区二区三区| 欧美性大战久久久| 久久久91精品国产一区二区精品 | 一区二区三区国产精华| 国产一区二区久久| 欧美色图在线观看| 中文字幕高清不卡| 麻豆久久久久久| 91久久精品国产91性色tv| 久久天天做天天爱综合色| 亚洲动漫第一页| 粉嫩aⅴ一区二区三区四区| 欧美视频日韩视频在线观看| 欧美国产精品一区二区三区| 日本成人在线电影网| 91在线观看一区二区| 久久久久久久综合日本| 日本va欧美va精品发布| 欧美午夜宅男影院| 亚洲乱码国产乱码精品精小说| 国产精品资源网| 日韩一区二区免费视频| 亚洲a一区二区| 色网综合在线观看| 国产精品久久久久一区| 国产一区二区在线观看视频| 日韩视频免费观看高清完整版在线观看| 亚洲区小说区图片区qvod| 成人国产精品视频| 欧美激情在线一区二区三区| 国产一区二区视频在线| 欧美一区二区三区四区久久| 亚洲国产精品久久人人爱蜜臀| 一本到不卡精品视频在线观看| 国产精品久久久久久久久免费丝袜 | 五月天激情综合| 欧美日韩中文国产| 亚洲大片精品永久免费| 欧美日韩精品免费观看视频| 亚洲第一在线综合网站| 欧美片网站yy| 日韩福利电影在线| 日韩美女一区二区三区四区| 美脚の诱脚舐め脚责91|