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

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

?? lib_at91sam7s64.h

?? freertosV4.40 是一種small的嵌入式系統。利于嵌入式開好者入門學習嵌入式操作系統。通過對于源碼的學習可以很好的掌握freertos的運行機制。
?? H
?? 第 1 頁 / 共 5 頁
字號:
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_DisableIt (
	AT91PS_SPI pSPI, // pointer to a SPI controller
	unsigned int flag) // IT to be disabled
{
	//* Write to the IDR register
	pSPI->SPI_IDR = flag;
}

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

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_Enable
//* \brief Enable the SPI controller
//*----------------------------------------------------------------------------
__inline void AT91F_SPI_Enable (
	AT91PS_SPI pSPI // pointer to a SPI controller
	)
{
	//* 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 PWMC
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_GetStatus
//* \brief Return PWM Interrupt Status
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PWMC_GetStatus( // \return PWM Interrupt Status
	AT91PS_PWMC pPWM) // pointer to a PWM controller
{
	return pPWM->PWMC_SR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_InterruptEnable
//* \brief Enable PWM Interrupt
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_InterruptEnable(
        AT91PS_PWMC pPwm,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  PWM interrupt to be enabled
{
        pPwm->PWMC_IER = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_InterruptDisable
//* \brief Disable PWM Interrupt
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_InterruptDisable(
        AT91PS_PWMC pPwm,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  PWM interrupt to be disabled
{
        pPwm->PWMC_IDR = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_GetInterruptMaskStatus
//* \brief Return PWM Interrupt Mask Status
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PWMC_GetInterruptMaskStatus( // \return PWM Interrupt Mask Status
        AT91PS_PWMC pPwm) // \arg  pointer to a PWM controller
{
        return pPwm->PWMC_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_IsInterruptMasked
//* \brief Test if PWM Interrupt is Masked
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PWMC_IsInterruptMasked(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  flag to be tested
{
	return (AT91F_PWMC_GetInterruptMaskStatus(pPWM) & flag);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_IsStatusSet
//* \brief Test if PWM Interrupt is Set
//*----------------------------------------------------------------------------
__inline unsigned int AT91F_PWMC_IsStatusSet(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  flag to be tested
{
	return (AT91F_PWMC_GetStatus(pPWM) & flag);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_CfgChannel
//* \brief Test if PWM Interrupt is Set
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_CfgChannel(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int channelId, // \arg PWM channel ID
        unsigned int mode, // \arg  PWM mode
        unsigned int period, // \arg PWM period
        unsigned int duty) // \arg PWM duty cycle
{
	pPWM->PWMC_CH[channelId].PWMC_CMR = mode;
	pPWM->PWMC_CH[channelId].PWMC_CDTYR = duty;
	pPWM->PWMC_CH[channelId].PWMC_CPRDR = period;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_StartChannel
//* \brief Enable channel
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_StartChannel(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  Channels IDs to be enabled
{
	pPWM->PWMC_ENA = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_StopChannel
//* \brief Disable channel
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_StopChannel(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int flag) // \arg  Channels IDs to be enabled
{
	pPWM->PWMC_DIS = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_PWM_UpdateChannel
//* \brief Update Period or Duty Cycle
//*----------------------------------------------------------------------------
__inline void AT91F_PWMC_UpdateChannel(
        AT91PS_PWMC pPWM,   // \arg  pointer to a PWM controller
        unsigned int channelId, // \arg PWM channel ID
        unsigned int update) // \arg  Channels IDs to be enabled
{
	pPWM->PWMC_CH[channelId].PWMC_CUPDR = update;
}

/* *****************************************************************************
                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;
}

//*----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女视频| 国产精品中文欧美| 日本vs亚洲vs韩国一区三区| 日本色综合中文字幕| 韩国av一区二区三区| 99精品久久只有精品| 欧美老女人第四色| 久久欧美一区二区| 亚洲精品免费在线观看| 麻豆成人在线观看| aaa欧美色吧激情视频| 正在播放一区二区| 国产精品美女久久福利网站| 日韩黄色一级片| 国产成人综合亚洲网站| 在线欧美日韩精品| 国产亚洲精品超碰| 亚洲高清中文字幕| 高清在线观看日韩| 欧美一区二区在线免费播放| 国产精品伦一区| 日本vs亚洲vs韩国一区三区二区| 成人免费毛片嘿嘿连载视频| 欧美乱妇20p| 国产精品你懂的在线| 日本最新不卡在线| 色婷婷亚洲婷婷| 久久综合色天天久久综合图片| 亚洲欧美日韩久久| 国产一区二区三区四| 欧美精品三级在线观看| 国产精品亲子伦对白| 老司机精品视频导航| 日本久久一区二区| 国产情人综合久久777777| 午夜精品福利久久久| 色综合天天综合网天天看片| 欧美电视剧在线观看完整版| 亚洲自拍偷拍九九九| 懂色一区二区三区免费观看| 日韩亚洲欧美一区| 亚洲3atv精品一区二区三区| 99视频在线观看一区三区| 精品国产伦一区二区三区免费| 亚洲国产综合视频在线观看| 99热这里都是精品| 欧美国产激情一区二区三区蜜月| 久久er99热精品一区二区| 欧美性猛片xxxx免费看久爱| 中文字幕亚洲在| 国产一区二区三区电影在线观看 | 国产欧美一区二区精品性色| 五月天视频一区| 在线欧美日韩精品| 亚洲欧美色一区| www.视频一区| 欧美国产精品中文字幕| 国产激情一区二区三区| 日韩一区二区在线看片| 日韩vs国产vs欧美| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲资源中文字幕| 91亚洲精品久久久蜜桃| 综合中文字幕亚洲| 99国产精品久久久久久久久久久 | 成人午夜视频福利| 国产校园另类小说区| 久久国产剧场电影| 欧美一二三四在线| 男人的j进女人的j一区| 91精品国产色综合久久ai换脸| 亚洲午夜电影网| 欧美日韩久久久久久| 亚洲国产精品久久不卡毛片| 欧美四级电影网| 五月婷婷激情综合| 日韩欧美一级二级三级| 麻豆91精品视频| 精品99一区二区三区| 国产成人福利片| 国产精品你懂的在线欣赏| 97se狠狠狠综合亚洲狠狠| 亚洲人123区| 欧美在线短视频| 天堂蜜桃91精品| 欧美xingq一区二区| 久久精品国内一区二区三区| 亚洲精品一区二区三区香蕉| 国产精品自拍三区| 国产精品不卡一区| 91成人国产精品| 天堂va蜜桃一区二区三区 | 国产一区二区在线观看免费| 国产欧美日韩久久| 一本色道久久综合亚洲91| 亚洲成人动漫一区| 精品福利一区二区三区| 成人99免费视频| 亚洲综合免费观看高清完整版在线 | 欧美激情一区二区三区蜜桃视频| 99综合影院在线| 午夜伦理一区二区| 欧美成人综合网站| 成人激情校园春色| 亚洲成av人片| 久久嫩草精品久久久久| 91亚洲男人天堂| 婷婷中文字幕一区三区| 久久久影视传媒| 91九色最新地址| 久久99热99| 亚洲视频图片小说| 欧美一区二区三区男人的天堂| 国产精品亚洲一区二区三区妖精 | 9色porny自拍视频一区二区| 亚洲3atv精品一区二区三区| 久久先锋资源网| 色美美综合视频| 国产真实乱对白精彩久久| 亚洲欧美日韩国产成人精品影院| 91精品国产色综合久久| 成人免费观看视频| 亚洲成人动漫在线观看| 国产欧美日韩另类视频免费观看| 欧美日韩视频在线观看一区二区三区| 麻豆久久一区二区| 亚洲九九爱视频| 久久网站最新地址| 欧美人体做爰大胆视频| 99久久精品情趣| 蜜桃视频在线一区| 亚洲精品菠萝久久久久久久| 26uuu欧美| 欧美日韩一二区| 成人性生交大片| 麻豆精品新av中文字幕| 亚洲精品亚洲人成人网在线播放| 精品日韩成人av| 欧美午夜在线观看| 成人一区二区三区视频在线观看| 日本特黄久久久高潮| 亚洲欧美偷拍卡通变态| 国产亚洲成av人在线观看导航 | 久久不见久久见免费视频1| 亚洲欧美另类综合偷拍| 国产网红主播福利一区二区| 91精品国产色综合久久ai换脸 | 男人的天堂久久精品| 一区二区免费视频| 亚洲电影一区二区| 中文成人av在线| 欧美一区二区三区视频在线 | 性欧美疯狂xxxxbbbb| 国产精品传媒在线| 久久久高清一区二区三区| 欧美高清一级片在线| 91福利资源站| 99精品欧美一区二区三区小说| 国产精品亚洲第一| 久久国产精品免费| 日韩影院在线观看| 亚洲福利一区二区| 亚洲一区在线观看免费观看电影高清| 国产精品久久久久久久午夜片 | 成人免费黄色大片| 国产一区二区不卡老阿姨| 理论电影国产精品| 奇米亚洲午夜久久精品| 日日夜夜精品视频天天综合网| 亚洲精品自拍动漫在线| 中文字幕中文字幕一区| 国产精品人妖ts系列视频| 久久久久久久久久久电影| 日韩欧美国产电影| 欧美久久一二三四区| 欧美久久久久久蜜桃| 欧美日韩精品是欧美日韩精品| 欧洲精品一区二区三区在线观看| 色久综合一二码| 色94色欧美sute亚洲线路一久 | 一区二区三区欧美日| 亚洲欧美激情一区二区| 亚洲欧美电影一区二区| 亚洲天堂成人在线观看| 自拍av一区二区三区| 亚洲免费av网站| 亚洲综合丝袜美腿| 亚洲成人先锋电影| 蜜臀久久99精品久久久久久9| 日韩电影在线观看网站| 蜜臀精品一区二区三区在线观看 | 26uuu亚洲| 日本一区二区免费在线| 中文字幕一区二区三区四区| 国产精品久久99| 亚洲精品国产无套在线观| 亚洲一区影音先锋| 日韩高清一级片| 精品一区二区综合| 丰满少妇久久久久久久|