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

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

?? lib_at91rm9200.h

?? 9200 ads 下?。保常福埃丁★@卡 ads下的 測試程序
?? H
?? 第 1 頁 / 共 5 頁
字號:
	//* Write to the CR register
	pSPI->SPI_CR = AT91C_SPI_SPIEN;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_Disable
//* \brief Disable the SPI controller
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_Disable (
	AT91PS_SPI pSPI // pointer to a SPI controller
	)
{
	//* Write to the CR register
	pSPI->SPI_CR = AT91C_SPI_SPIDIS;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_CfgMode
//* \brief Enable the SPI controller
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_CfgMode (
	AT91PS_SPI pSPI, // pointer to a SPI controller
	int mode)        // mode register 
{
	//* Write to the MR register
	pSPI->SPI_MR = mode;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_CfgPCS
//* \brief Switch to the correct PCS of SPI Mode Register : Fixed Peripheral Selected
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_CfgPCS (
	AT91PS_SPI pSPI, // pointer to a SPI controller
	char PCS_Device) // PCS of the Device
{	
 	//* Write to the MR register
	pSPI->SPI_MR &= 0xFFF0FFFF;
	pSPI->SPI_MR |= ( (PCS_Device<<16) & AT91C_SPI_PCS );
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_ReceiveFrame
//* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is busy
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_SPI_ReceiveFrame (
	AT91PS_SPI pSPI,
	char *pBuffer,
	unsigned int szBuffer,
	char *pNextBuffer,
	unsigned int szNextBuffer )
{
	return AT91F_PDC_ReceiveFrame(
		(AT91PS_PDC) &(pSPI->SPI_RPR),
		pBuffer,
		szBuffer,
		pNextBuffer,
		szNextBuffer);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_SendFrame
//* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initializaed with Next Buffer, 0 if PDC is bSPIy
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_SPI_SendFrame(
	AT91PS_SPI pSPI,
	char *pBuffer,
	unsigned int szBuffer,
	char *pNextBuffer,
	unsigned int szNextBuffer )
{
	return AT91F_PDC_SendFrame(
		(AT91PS_PDC) &(pSPI->SPI_RPR),
		pBuffer,
		szBuffer,
		pNextBuffer,
		szNextBuffer);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_Close
//* \brief Close SPI: disable IT disable transfert, close PDC
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_Close (
	AT91PS_SPI pSPI)     // \arg pointer to a SPI controller
{
    //* Reset all the Chip Select register
    pSPI->SPI_CSR[0] = 0 ;
    pSPI->SPI_CSR[1] = 0 ;
    pSPI->SPI_CSR[2] = 0 ;
    pSPI->SPI_CSR[3] = 0 ;

    //* Reset the SPI mode
    pSPI->SPI_MR = 0  ;

    //* Disable all interrupts
    pSPI->SPI_IDR = 0xFFFFFFFF ;

    //* Abort the Peripheral Data Transfers
    AT91F_PDC_Close((AT91PS_PDC) &(pSPI->SPI_RPR));

    //* Disable receiver and transmitter and stop any activity immediately
    pSPI->SPI_CR = AT91C_SPI_SPIDIS;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_PutChar
//* \brief Send a character,does not check if ready to send
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_PutChar (
	AT91PS_SPI pSPI,
	unsigned int character,
             unsigned int cs_number )
{
    unsigned int value_for_cs;
    value_for_cs = (~(1 << cs_number)) & 0xF;  //Place a zero among a 4 ONEs number
    pSPI->SPI_TDR = (character & 0xFFFF) | (value_for_cs << 16);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_GetChar
//* \brief Receive a character,does not check if a character is available
//*----------------------------------------------------------------------------
__inline int AT91F_SPI_GetChar (
	const AT91PS_SPI pSPI)
{
    return((pSPI->SPI_RDR) & 0xFFFF);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_GetInterruptMaskStatus
//* \brief Return SPI Interrupt Mask Status
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_SPI_GetInterruptMaskStatus( // \return SPI Interrupt Mask Status
        AT91PS_SPI pSpi) // \arg  pointer to a SPI controller
{
        return pSpi->SPI_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_IsInterruptMasked
//* \brief Test if SPI Interrupt is Masked 
//*----------------------------------------------------------------------------
__inline int AT91F_SPI_IsInterruptMasked(
        AT91PS_SPI pSpi,   // \arg  pointer to a SPI controller
        unsigned int flag) // \arg  flag to be tested
{
        return (AT91F_SPI_GetInterruptMaskStatus(pSpi) & flag);
}

/* *****************************************************************************
                SOFTWARE API FOR TC
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_TC_InterruptEnable
//* \brief Enable TC Interrupt
//*----------------------------------------------------------------------------
__inline void AT91F_TC_InterruptEnable(
        AT91PS_TC pTc,   // \arg  pointer to a TC controller
        unsigned int flag) // \arg  TC interrupt to be enabled
{
        pTc->TC_IER = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_TC_InterruptDisable
//* \brief Disable TC Interrupt
//*----------------------------------------------------------------------------
__inline void AT91F_TC_InterruptDisable(
        AT91PS_TC pTc,   // \arg  pointer to a TC controller
        unsigned int flag) // \arg  TC interrupt to be disabled
{
        pTc->TC_IDR = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_TC_GetInterruptMaskStatus
//* \brief Return TC Interrupt Mask Status
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_TC_GetInterruptMaskStatus( // \return TC Interrupt Mask Status
        AT91PS_TC pTc) // \arg  pointer to a TC controller
{
        return pTc->TC_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_TC_IsInterruptMasked
//* \brief Test if TC Interrupt is Masked 
//*----------------------------------------------------------------------------
__inline int AT91F_TC_IsInterruptMasked(
        AT91PS_TC pTc,   // \arg  pointer to a TC controller
        unsigned int flag) // \arg  flag to be tested
{
        return (AT91F_TC_GetInterruptMaskStatus(pTc) & flag);
}

/* *****************************************************************************
                SOFTWARE API FOR PMC
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_CKGR_GetMainClock
//* \brief Return Main clock in Hz
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_CKGR_GetMainClock (
	AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
	unsigned int slowClock)  // \arg slowClock in Hz
{
	return ((pCKGR->CKGR_MCFR  & AT91C_CKGR_MAINF) * slowClock) >> 4;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_GetProcessorClock
//* \brief Return processor clock in Hz (for AT91RM3400 and AT91RM9200)
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PMC_GetProcessorClock (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
	unsigned int slowClock)  // \arg slowClock in Hz
{
	unsigned int reg = pPMC->PMC_MCKR;
	unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2));
	unsigned int pllDivider, pllMultiplier;

	switch (reg & AT91C_PMC_CSS) {
		case AT91C_PMC_CSS_SLOW_CLK: // Slow clock selected
			return slowClock / prescaler;
		case AT91C_PMC_CSS_MAIN_CLK: // Main clock is selected
			return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler;
		case AT91C_PMC_CSS_PLLA_CLK: // PLLA clock is selected
			reg = pCKGR->CKGR_PLLAR;
			pllDivider    = (reg  & AT91C_CKGR_DIVA);
			pllMultiplier = ((reg  & AT91C_CKGR_MULA) >> 16) + 1;
			if (reg & AT91C_CKGR_SRCA) // Source is Main clock
				return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler;
			else                       // Source is Slow clock
				return slowClock / pllDivider * pllMultiplier / prescaler;
		case AT91C_PMC_CSS_PLLB_CLK: // PLLB clock is selected
			reg = pCKGR->CKGR_PLLBR;
			pllDivider    = (reg  & AT91C_CKGR_DIVB);
			pllMultiplier = ((reg  & AT91C_CKGR_MULB) >> 16) + 1;
			return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler;
	}
	return 0;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_GetMasterClock
//* \brief Return master clock in Hz (just for AT91RM9200)
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PMC_GetMasterClock (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
	unsigned int slowClock)  // \arg slowClock in Hz
{
	return AT91F_PMC_GetProcessorClock(pPMC, pCKGR, slowClock) /
		(((pPMC->PMC_MCKR & AT91C_PMC_MDIV) >> 8)+1);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_EnablePeriphClock
//* \brief Enable peripheral clock
//*----------------------------------------------------------------------------
__inline void AT91F_PMC_EnablePeriphClock (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	unsigned int periphIds)  // \arg IDs of peripherals to enable
{
	pPMC->PMC_PCER = periphIds;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_DisablePeriphClock
//* \brief Enable peripheral clock
//*----------------------------------------------------------------------------
__inline void AT91F_PMC_DisablePeriphClock (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	unsigned int periphIds)  // \arg IDs of peripherals to enable
{
	pPMC->PMC_PCDR = periphIds;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_EnablePCK
//* \brief Enable peripheral clock
//*----------------------------------------------------------------------------
__inline void AT91F_PMC_EnablePCK (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	unsigned int pck,  // \arg Peripheral clock identifier 0 .. 7
	unsigned int ccs,  // \arg clock selection: AT91C_PMC_CSS_SLOW_CLK, AT91C_PMC_CSS_MAIN_CLK, AT91C_PMC_CSS_PLLA_CLK, AT91C_PMC_CSS_PLLB_CLK
	unsigned int pres) // \arg Programmable clock prescalar AT91C_PMC_PRES_CLK, AT91C_PMC_PRES_CLK_2, ..., AT91C_PMC_PRES_CLK_64
{
	pPMC->PMC_PCKR[pck] = ccs | pres;
	pPMC->PMC_SCER = (1 << pck) << 8;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PMC_DisablePCK
//* \brief Enable peripheral clock
//*----------------------------------------------------------------------------
__inline void AT91F_PMC_DisablePCK (
	AT91PS_PMC pPMC, // \arg pointer to PMC controller
	unsigned int pck)  // \arg Peripheral clock identifier 0 .. 7
{
	pPMC->PMC_SCDR = (1 << pck) << 8;
}

/* *****************************************************************************
                SOFTWARE API FOR PIO
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_PIO_CfgPeriph
//* \brief Enable pins to be drived by peripheral
//*----------------------------------------------------------------------------
__inline void AT91F_PIO_CfgPeriph(
	AT91PS_PIO pPio,             // \arg pointer to a PIO controller
	unsigned int periphAEnable,  // \arg PERIPH A to enable
	unsigned int periphBEnable)  // \arg PERIPH B to enable

{
	pPio->PIO_ASR = periphAEnable;
	pPio->PIO_BSR = periphBEnable;
	pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情丁香一区二区三区| 不卡av免费在线观看| 欧美主播一区二区三区| 国产精品国产自产拍在线| 国产精品亚洲一区二区三区在线| 51精品国自产在线| 日韩成人午夜精品| 欧美蜜桃一区二区三区| 蜜桃在线一区二区三区| 91精品国产综合久久精品app| 亚洲r级在线视频| 9191成人精品久久| 久久99精品久久久久久国产越南| 欧美一区二区不卡视频| 精东粉嫩av免费一区二区三区| 日韩欧美成人一区| 国产成人av在线影院| 亚洲欧洲在线观看av| 在线观看视频一区二区| 麻豆成人综合网| 国产精品素人一区二区| 在线区一区二视频| 国产在线精品国自产拍免费| 国产精品久久网站| 欧美一区二区三区的| 粉嫩高潮美女一区二区三区| 一区二区三区不卡视频在线观看| 欧美视频在线一区二区三区 | 国内外成人在线| 国产欧美一区二区精品久导航| 91色porny在线视频| 三级久久三级久久久| 国产欧美一区二区三区在线看蜜臀| 欧美色老头old∨ideo| 日本亚洲视频在线| 亚洲人成在线播放网站岛国 | 欧美综合久久久| 国产裸体歌舞团一区二区| 一区二区三区小说| 国产精品女人毛片| 久久综合色8888| 欧美精品自拍偷拍| 91国产免费观看| 91免费在线看| 波多野洁衣一区| 国产乱对白刺激视频不卡| 亚洲成人激情社区| 亚洲影院在线观看| 亚洲三级电影网站| 中文字幕亚洲成人| 久久精品夜夜夜夜久久| 精品国产乱码久久久久久闺蜜| 欧美一级片在线看| 日韩亚洲国产中文字幕欧美| 欧美日韩精品电影| 欧美在线观看一区| 欧美精品v国产精品v日韩精品| 欧美性大战久久| 欧美猛男超大videosgay| 制服丝袜亚洲色图| 26uuuu精品一区二区| 日韩欧美高清dvd碟片| 久久先锋影音av| 中文字幕免费不卡在线| 自拍偷自拍亚洲精品播放| 一区二区在线看| 美女视频一区二区| 国产99久久久久久免费看农村| 91在线云播放| 欧美电影在哪看比较好| 国产亚洲精品超碰| 亚洲一区二区三区国产| 日韩激情视频在线观看| 国产91色综合久久免费分享| 99热这里都是精品| 欧美va亚洲va| 91精品国产黑色紧身裤美女| 91丨porny丨国产入口| 欧美亚洲另类激情小说| 久久午夜电影网| 亚洲午夜激情网页| 精品亚洲免费视频| 欧美日韩亚洲国产综合| 久久免费电影网| 亚洲一区二区三区自拍| 蜜臀精品一区二区三区在线观看| 国产一区在线精品| 欧美日韩一级片网站| 欧美系列在线观看| 一本大道久久a久久综合婷婷| 欧美成人一区二区三区在线观看| 在线亚洲欧美专区二区| 国产日韩精品久久久| 日本最新不卡在线| 欧美精品v国产精品v日韩精品 | 麻豆精品一区二区三区| 色偷偷久久一区二区三区| 中文字幕av不卡| 成人午夜视频网站| 欧美国产乱子伦| 91视视频在线直接观看在线看网页在线看| 欧美一区二区三区在线视频 | 亚洲国产aⅴ天堂久久| 色欧美片视频在线观看 | 三级不卡在线观看| 欧美精品一卡两卡| 奇米影视一区二区三区小说| 6080日韩午夜伦伦午夜伦| 午夜国产精品一区| 日韩欧美国产一区在线观看| 精品一区二区免费在线观看| 久久网这里都是精品| 国产精品456露脸| 亚洲欧洲综合另类在线| 欧美日韩不卡一区二区| 久久99精品国产91久久来源| 久久美女艺术照精彩视频福利播放| 99久久99久久精品国产片果冻 | 亚洲另类一区二区| 91精品国产一区二区人妖| 国产一区在线不卡| 自拍偷拍亚洲综合| 日韩女优毛片在线| 91在线国内视频| 国内精品嫩模私拍在线| 亚洲精品国产一区二区三区四区在线 | 午夜电影网一区| 中文字幕免费不卡| 精品少妇一区二区三区在线播放| 99久久伊人久久99| 麻豆精品在线看| 亚洲国产日日夜夜| 国产精品欧美一级免费| 日韩午夜电影av| 欧美亚洲另类激情小说| 成人精品视频一区| 精品一区二区三区免费| 日韩电影免费在线看| 亚洲视频网在线直播| 2017欧美狠狠色| 欧美va在线播放| 欧美精品一卡两卡| 欧美三级电影在线看| 色婷婷综合视频在线观看| av电影在线观看完整版一区二区| 久久99国产精品久久99果冻传媒| 五月天中文字幕一区二区| 亚洲精品成a人| 亚洲精选视频在线| 亚洲精品高清在线观看| 亚洲一级在线观看| 亚洲国产精品一区二区尤物区| 亚洲三级在线观看| 日本不卡一区二区| 青青草原综合久久大伊人精品| 丝袜美腿亚洲综合| 美女视频黄久久| 国产suv精品一区二区三区 | 日韩av电影天堂| 免费人成在线不卡| 国产精品资源在线观看| 国产精品1区二区.| 色悠久久久久综合欧美99| 在线日韩一区二区| 久久综合五月天婷婷伊人| 国产人伦精品一区二区| 亚洲欧美日韩人成在线播放| 一区二区三区四区蜜桃| 久久国产尿小便嘘嘘尿| 成人福利在线看| 精品视频在线视频| 国产欧美日产一区| 偷拍一区二区三区四区| 国产馆精品极品| 538在线一区二区精品国产| 国产欧美一区二区精品忘忧草| 亚洲综合激情另类小说区| 久久精品99国产国产精| 在线观看日韩电影| 国产网站一区二区三区| 秋霞午夜鲁丝一区二区老狼| 成人激情校园春色| 亚洲精品一区二区三区蜜桃下载| 尤物视频一区二区| 丁香桃色午夜亚洲一区二区三区| 欧美日韩国产高清一区| 亚洲欧美日韩电影| 成人avav影音| 国产精品久久久久久久久动漫| 麻豆freexxxx性91精品| 欧美日韩成人激情| 亚洲成人自拍偷拍| 色狠狠一区二区三区香蕉| 1000精品久久久久久久久| 高清视频一区二区| 中文字幕欧美日韩一区| 成人91在线观看| 国产精品家庭影院| 91啪亚洲精品| 午夜精品福利一区二区蜜股av|