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

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

?? lib_at91sam7s64a.h

?? 此例程為將ADC轉換的值通過開發版上的UART在超級終端顯示出來。用的芯片是Atmel的AT91SAM7S系列
?? H
?? 第 1 頁 / 共 5 頁
字號:
//*----------------------------------------------------------------------------
//* \fn    AT91F_PDC_ReceiveFrame
//* \brief Close PDC: disable TX and RX reset transfer descriptors
//*----------------------------------------------------------------------------
__inline static  unsigned int AT91F_PDC_ReceiveFrame (
	AT91PS_PDC pPDC,
	char *pBuffer,
	unsigned int szBuffer,
	char *pNextBuffer,
	unsigned int szNextBuffer )
{
	if (AT91F_PDC_IsRxEmpty(pPDC)) {
		//* Buffer and next buffer can be initialized
		AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer);
		AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer);
		return 2;
	}
	else if (AT91F_PDC_IsNextRxEmpty(pPDC)) {
		//* Only one buffer can be initialized
		AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer);
		return 1;
	}
	else {
		//* All buffer are in use...
		return 0;
	}
}
/* *****************************************************************************
                SOFTWARE API FOR DBGU
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_InterruptEnable
//* \brief Enable DBGU Interrupt
//*----------------------------------------------------------------------------
__inline static  void AT91F_DBGU_InterruptEnable(
        AT91PS_DBGU pDbgu,   // \arg  pointer to a DBGU controller
        unsigned int flag) // \arg  dbgu interrupt to be enabled
{
        pDbgu->DBGU_IER = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_InterruptDisable
//* \brief Disable DBGU Interrupt
//*----------------------------------------------------------------------------
__inline static  void AT91F_DBGU_InterruptDisable(
        AT91PS_DBGU pDbgu,   // \arg  pointer to a DBGU controller
        unsigned int flag) // \arg  dbgu interrupt to be disabled
{
        pDbgu->DBGU_IDR = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_GetInterruptMaskStatus
//* \brief Return DBGU Interrupt Mask Status
//*----------------------------------------------------------------------------
__inline static  unsigned int AT91F_DBGU_GetInterruptMaskStatus( // \return DBGU Interrupt Mask Status
        AT91PS_DBGU pDbgu) // \arg  pointer to a DBGU controller
{
        return pDbgu->DBGU_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_DBGU_IsInterruptMasked
//* \brief Test if DBGU Interrupt is Masked 
//*----------------------------------------------------------------------------
__inline static  int AT91F_DBGU_IsInterruptMasked(
        AT91PS_DBGU pDbgu,   // \arg  pointer to a DBGU controller
        unsigned int flag) // \arg  flag to be tested
{
        return (AT91F_DBGU_GetInterruptMaskStatus(pDbgu) & flag);
}

/* *****************************************************************************
                SOFTWARE API FOR SSC
   ***************************************************************************** */
//* Define the standard I2S mode configuration

//* Configuration to set in the SSC Transmit Clock Mode Register
//* Parameters :  nb_bit_by_slot : 8, 16 or 32 bits
//* 			  nb_slot_by_frame : number of channels
#define AT91C_I2S_ASY_MASTER_TX_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
									   AT91C_SSC_CKS_DIV   +\
                            		   AT91C_SSC_CKO_CONTINOUS      +\
                            		   AT91C_SSC_CKG_NONE    +\
                                       AT91C_SSC_START_FALL_RF +\
                           			   AT91C_SSC_STTOUT  +\
                            		   ((1<<16) & AT91C_SSC_STTDLY) +\
                            		   ((((nb_bit_by_slot*nb_slot_by_frame)/2)-1) <<24))


//* Configuration to set in the SSC Transmit Frame Mode Register
//* Parameters : nb_bit_by_slot : 8, 16 or 32 bits
//* 			 nb_slot_by_frame : number of channels
#define AT91C_I2S_ASY_TX_FRAME_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
									(nb_bit_by_slot-1)  +\
                            		AT91C_SSC_MSBF   +\
                            		(((nb_slot_by_frame-1)<<8) & AT91C_SSC_DATNB)  +\
                            		(((nb_bit_by_slot-1)<<16) & AT91C_SSC_FSLEN) +\
                            		AT91C_SSC_FSOS_NEGATIVE)


//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_SetBaudrate
//* \brief Set the baudrate according to the CPU clock
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_SetBaudrate (
        AT91PS_SSC pSSC,        // \arg pointer to a SSC controller
        unsigned int mainClock, // \arg peripheral clock
        unsigned int speed)     // \arg SSC baudrate
{
        unsigned int baud_value;
        //* Define the baud rate divisor register
        if (speed == 0)
           baud_value = 0;
        else
        {
           baud_value = (unsigned int) (mainClock * 10)/(2*speed);
           if ((baud_value % 10) >= 5)
                  baud_value = (baud_value / 10) + 1;
           else
                  baud_value /= 10;
        }

        pSSC->SSC_CMR = baud_value;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_Configure
//* \brief Configure SSC
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_Configure (
             AT91PS_SSC pSSC,          // \arg pointer to a SSC controller
             unsigned int syst_clock,  // \arg System Clock Frequency
             unsigned int baud_rate,   // \arg Expected Baud Rate Frequency
             unsigned int clock_rx,    // \arg Receiver Clock Parameters
             unsigned int mode_rx,     // \arg mode Register to be programmed
             unsigned int clock_tx,    // \arg Transmitter Clock Parameters
             unsigned int mode_tx)     // \arg mode Register to be programmed
{
    //* Disable interrupts
	pSSC->SSC_IDR = (unsigned int) -1;

    //* Reset receiver and transmitter
	pSSC->SSC_CR = AT91C_SSC_SWRST | AT91C_SSC_RXDIS | AT91C_SSC_TXDIS ;

    //* Define the Clock Mode Register
	AT91F_SSC_SetBaudrate(pSSC, syst_clock, baud_rate);

     //* Write the Receive Clock Mode Register
	pSSC->SSC_RCMR =  clock_rx;

     //* Write the Transmit Clock Mode Register
	pSSC->SSC_TCMR =  clock_tx;

     //* Write the Receive Frame Mode Register
	pSSC->SSC_RFMR =  mode_rx;

     //* Write the Transmit Frame Mode Register
	pSSC->SSC_TFMR =  mode_tx;

    //* Clear Transmit and Receive Counters
	AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR));


}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_EnableRx
//* \brief Enable receiving datas
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_EnableRx (
	AT91PS_SSC pSSC)     // \arg pointer to a SSC controller
{
    //* Enable receiver
    pSSC->SSC_CR = AT91C_SSC_RXEN;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_DisableRx
//* \brief Disable receiving datas
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_DisableRx (
	AT91PS_SSC pSSC)     // \arg pointer to a SSC controller
{
    //* Disable receiver
    pSSC->SSC_CR = AT91C_SSC_RXDIS;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_EnableTx
//* \brief Enable sending datas
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_EnableTx (
	AT91PS_SSC pSSC)     // \arg pointer to a SSC controller
{
    //* Enable  transmitter
    pSSC->SSC_CR = AT91C_SSC_TXEN;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_DisableTx
//* \brief Disable sending datas
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_DisableTx (
	AT91PS_SSC pSSC)     // \arg pointer to a SSC controller
{
    //* Disable  transmitter
    pSSC->SSC_CR = AT91C_SSC_TXDIS;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_EnableIt
//* \brief Enable SSC IT
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_EnableIt (
	AT91PS_SSC pSSC, // \arg pointer to a SSC controller
	unsigned int flag)   // \arg IT to be enabled
{
	//* Write to the IER register
	pSSC->SSC_IER = flag;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_DisableIt
//* \brief Disable SSC IT
//*----------------------------------------------------------------------------
__inline static  void AT91F_SSC_DisableIt (
	AT91PS_SSC pSSC, // \arg pointer to a SSC controller
	unsigned int flag)   // \arg IT to be disabled
{
	//* Write to the IDR register
	pSSC->SSC_IDR = flag;
}

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

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_SendFrame
//* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been initialized with Next Buffer, 0 if PDC is busy
//*----------------------------------------------------------------------------
__inline static  unsigned int AT91F_SSC_SendFrame(
	AT91PS_SSC pSSC,
	char *pBuffer,
	unsigned int szBuffer,
	char *pNextBuffer,
	unsigned int szNextBuffer )
{
	return AT91F_PDC_SendFrame(
		(AT91PS_PDC) &(pSSC->SSC_RPR),
		pBuffer,
		szBuffer,
		pNextBuffer,
		szNextBuffer);
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_GetInterruptMaskStatus
//* \brief Return SSC Interrupt Mask Status
//*----------------------------------------------------------------------------
__inline static  unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status
        AT91PS_SSC pSsc) // \arg  pointer to a SSC controller
{
        return pSsc->SSC_IMR;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SSC_IsInterruptMasked
//* \brief Test if SSC Interrupt is Masked 
//*----------------------------------------------------------------------------
__inline static  int AT91F_SSC_IsInterruptMasked(
        AT91PS_SSC pSsc,   // \arg  pointer to a SSC controller
        unsigned int flag) // \arg  flag to be tested
{
        return (AT91F_SSC_GetInterruptMaskStatus(pSsc) & flag);
}

/* *****************************************************************************
                SOFTWARE API FOR SPI
   ***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_Open
//* \brief Open a SPI Port
//*----------------------------------------------------------------------------
__inline static  unsigned int AT91F_SPI_Open (
        const unsigned int null)  // \arg
{
        /* NOT DEFINED AT THIS MOMENT */
        return ( 0 );
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_CfgCs
//* \brief Configure SPI chip select register
//*----------------------------------------------------------------------------
__inline static  void AT91F_SPI_CfgCs (
	AT91PS_SPI pSPI,     // pointer to a SPI controller
	int cs,     // SPI cs number (0 to 3)
 	int val)   //  chip select register
{
	//* Write to the CSR register
	*(pSPI->SPI_CSR + cs) = val;
}

//*----------------------------------------------------------------------------
//* \fn    AT91F_SPI_EnableIt
//* \brief Enable SPI interrupt
//*----------------------------------------------------------------------------
__inline static  void AT91F_SPI_EnableIt (
	AT91PS_SPI pSPI,     // pointer to a SPI controller
	unsigned int flag)   // IT to be enabled

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区不卡| 色哟哟国产精品| 欧美成人女星排行榜| 美腿丝袜亚洲色图| 精品国产乱码久久久久久免费| 精品一区二区三区日韩| 久久综合九色综合久久久精品综合| 国产伦精品一区二区三区免费迷 | 午夜激情综合网| 欧美精品粉嫩高潮一区二区| 蜜臀久久久久久久| 国产亚洲女人久久久久毛片| 91免费国产在线观看| 香港成人在线视频| 2014亚洲片线观看视频免费| 99r精品视频| 日本不卡1234视频| 欧美极品美女视频| 在线免费av一区| 久久激情综合网| |精品福利一区二区三区| 欧美亚洲综合久久| 国产精品自在在线| 一区二区三区成人在线视频| 欧美第一区第二区| 99久久国产综合色|国产精品| 午夜视频在线观看一区二区三区| 精品国产91九色蝌蚪| 色综合久久99| 激情五月婷婷综合网| 亚洲日本乱码在线观看| 日韩欧美国产一区二区三区| 99精品久久久久久| 久久99精品久久久久久国产越南| 亚洲视频中文字幕| 欧美精品一区二区不卡| 欧美午夜精品久久久| 国产精品白丝av| 日韩精品乱码免费| 国产精品理伦片| 精品国产伦一区二区三区观看方式| 91免费看`日韩一区二区| 国产在线看一区| 首页综合国产亚洲丝袜| 专区另类欧美日韩| 国产亚洲美州欧州综合国| 宅男在线国产精品| 欧美午夜影院一区| 白白色 亚洲乱淫| 国产精品乡下勾搭老头1| 日本一道高清亚洲日美韩| 亚洲手机成人高清视频| 国产网红主播福利一区二区| 欧美一级欧美一级在线播放| 色哟哟一区二区在线观看| 国产乱码精品一区二区三| 日韩一区欧美二区| 香蕉影视欧美成人| 一区二区高清视频在线观看| 中文字幕av免费专区久久| 久久久久久久久99精品| 日韩精品一区国产麻豆| 6080午夜不卡| 欧美精品自拍偷拍动漫精品| 91黄色免费观看| 91福利资源站| 91久久线看在观草草青青 | 一区二区三区国产精华| 国产精品视频麻豆| 日本一区二区三级电影在线观看 | 在线观看视频一区| 91网上在线视频| 97se狠狠狠综合亚洲狠狠| 国产福利不卡视频| 国产成a人亚洲| 国产69精品一区二区亚洲孕妇| 国产综合久久久久影院| 国产在线观看免费一区| 国产精品一区三区| 国产成人av福利| 懂色中文一区二区在线播放| 成人午夜视频免费看| 国产69精品一区二区亚洲孕妇| 从欧美一区二区三区| 99久久婷婷国产综合精品| 99国产一区二区三精品乱码| 色综合中文字幕国产| 欧美性大战久久| 欧美日精品一区视频| 欧美日韩电影在线| 欧美一级搡bbbb搡bbbb| 精品国产一区二区在线观看| 久久久国际精品| 国产精品毛片久久久久久久| 亚洲人午夜精品天堂一二香蕉| 亚洲欧美视频在线观看视频| 亚洲午夜久久久久久久久电影院| 亚洲电影在线播放| 久久国产综合精品| 岛国精品一区二区| 欧美亚洲一区三区| 日韩欧美在线1卡| 国产精品欧美久久久久无广告 | 激情伊人五月天久久综合| 国产99久久久国产精品潘金| 91在线小视频| 91精品黄色片免费大全| 久久久久久久久久久久久久久99| 国产精品成人免费在线| 日欧美一区二区| 国产不卡在线播放| 欧美高清激情brazzers| 久久久久久久精| 一区二区三国产精华液| 久久国产生活片100| av在线播放一区二区三区| 欧美日韩国产一级| 国产精品色婷婷| 午夜在线电影亚洲一区| 国产传媒日韩欧美成人| 欧美在线视频日韩| 久久久久久影视| 五月婷婷久久综合| 成人av电影免费观看| 日韩一区二区三区精品视频| 国产精品三级视频| 麻豆精品在线播放| 色婷婷综合五月| 久久女同精品一区二区| 亚洲小说欧美激情另类| 国产成人在线视频网站| 在线不卡一区二区| 亚洲日本丝袜连裤袜办公室| 国产伦精一区二区三区| 6080亚洲精品一区二区| 一区二区三区日韩精品视频| 国产精品88av| 欧美mv和日韩mv的网站| 亚洲午夜视频在线| eeuss国产一区二区三区| 欧美精品一区二区不卡| 亚洲第一电影网| 色婷婷综合久久| 国产精品久久午夜夜伦鲁鲁| 国产一区999| 日韩欧美一二区| 日本亚洲欧美天堂免费| 日本高清免费不卡视频| 中文字幕一区日韩精品欧美| 黄色精品一二区| 精品日产卡一卡二卡麻豆| 日日欢夜夜爽一区| 欧美人狂配大交3d怪物一区| 一区二区三区免费看视频| 91亚洲精华国产精华精华液| 国产色一区二区| 国产一区二区三区精品视频| 日韩精品一区二区三区中文精品| 性做久久久久久久久| 欧美男同性恋视频网站| 亚洲午夜av在线| 欧洲色大大久久| 亚洲国产综合91精品麻豆| 色天天综合色天天久久| 亚洲男人天堂av| 在线视频一区二区三区| 亚洲一区二区三区四区在线| 色噜噜夜夜夜综合网| 亚洲在线观看免费| 欧美在线观看一区| 亚洲成人动漫一区| 欧美一区二区三区在线视频| 日本不卡的三区四区五区| 日韩精品专区在线影院重磅| 久久99精品国产麻豆婷婷| wwwwxxxxx欧美| 福利91精品一区二区三区| 国产精品国产精品国产专区不片| 99久久久国产精品| 亚洲激情自拍偷拍| 欧美日韩成人在线| 青青草国产成人av片免费| 精品少妇一区二区三区在线视频| 国产精品资源在线看| 国产精品久久久久永久免费观看 | 欧美v日韩v国产v| 精品一区二区综合| 中文字幕精品一区二区三区精品| 成人av在线看| 亚洲韩国精品一区| 精品久久人人做人人爰| 成人综合婷婷国产精品久久蜜臀 | 欧美高清激情brazzers| 久久精品国产澳门| 亚洲国产高清在线| 在线精品视频一区二区三四| 日韩精品久久久久久| 久久蜜臀中文字幕| 91浏览器打开| 日本亚洲一区二区|