⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib_at91rm9200.c

📁 基于K9 AT91RM9200 学习板的loader源码
💻 C
📖 第 1 页 / 共 5 页
字号:
}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_B_RegisterSelection//* \brief PIO B Register Selection //*---------------------------------------------------------------------------- void AT91F_PIO_B_RegisterSelection(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  pio B register selection {        pPio->PIO_BSR = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_Get_AB_RegisterStatus//* \brief Return PIO Interrupt Status//*---------------------------------------------------------------------------- unsigned int AT91F_PIO_Get_AB_RegisterStatus( // \return PIO AB Register Status        AT91PS_PIO pPio) // \arg  pointer to a PIO controller{        return pPio->PIO_ABSR;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_IsAB_RegisterSet//* \brief Test if PIO AB Register is Set//*---------------------------------------------------------------------------- int AT91F_PIO_IsAB_RegisterSet(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  flag to be tested{        return (AT91F_PIO_Get_AB_RegisterStatus(pPio) & flag);}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_OutputWriteEnable//* \brief Output Write Enable PIO//*---------------------------------------------------------------------------- void AT91F_PIO_OutputWriteEnable(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  pio output write to be enabled{        pPio->PIO_OWER = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_OutputWriteDisable//* \brief Output Write Disable PIO//*---------------------------------------------------------------------------- void AT91F_PIO_OutputWriteDisable(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  pio output write to be disabled{        pPio->PIO_OWDR = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_GetOutputWriteStatus//* \brief Return PIO Output Write Status//*---------------------------------------------------------------------------- unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status        AT91PS_PIO pPio) // \arg  pointer to a PIO controller{        return pPio->PIO_OWSR;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_IsOutputWriteSet//* \brief Test if PIO OutputWrite is Set//*---------------------------------------------------------------------------- int AT91F_PIO_IsOutputWriteSet(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  flag to be tested{        return (AT91F_PIO_GetOutputWriteStatus(pPio) & flag);}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_GetCfgPullup//* \brief Return PIO Configuration Pullup//*---------------------------------------------------------------------------- unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup         AT91PS_PIO pPio) // \arg  pointer to a PIO controller{        return pPio->PIO_PPUSR;}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_IsOutputDataStatusSet//* \brief Test if PIO Output Data Status is Set //*---------------------------------------------------------------------------- int AT91F_PIO_IsOutputDataStatusSet(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  flag to be tested{        return (AT91F_PIO_GetOutputDataStatus(pPio) & flag);}//*----------------------------------------------------------------------------//* \fn    AT91F_PIO_IsCfgPullupStatusSet//* \brief Test if PIO Configuration Pullup Status is Set//*---------------------------------------------------------------------------- int AT91F_PIO_IsCfgPullupStatusSet(        AT91PS_PIO pPio,   // \arg  pointer to a PIO controller        unsigned int flag) // \arg  flag to be tested{        return (~AT91F_PIO_GetCfgPullup(pPio) & flag);}/* *****************************************************************************                SOFTWARE API FOR TWI   ***************************************************************************** *///*----------------------------------------------------------------------------//* \fn    AT91F_TWI_EnableIt//* \brief Enable TWI IT//*---------------------------------------------------------------------------- void AT91F_TWI_EnableIt (	AT91PS_TWI pTWI, // \arg pointer to a TWI controller	unsigned int flag)   // \arg IT to be enabled{	//* Write to the IER register	pTWI->TWI_IER = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_TWI_DisableIt//* \brief Disable TWI IT//*---------------------------------------------------------------------------- void AT91F_TWI_DisableIt (	AT91PS_TWI pTWI, // \arg pointer to a TWI controller	unsigned int flag)   // \arg IT to be disabled{	//* Write to the IDR register	pTWI->TWI_IDR = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_TWI_Configure//* \brief Configure TWI in master mode//*---------------------------------------------------------------------------- void AT91F_TWI_Configure ( AT91PS_TWI pTWI )          // \arg pointer to a TWI controller{    //* Disable interrupts	pTWI->TWI_IDR = (unsigned int) -1;    //* Reset peripheral	pTWI->TWI_CR = AT91C_TWI_SWRST;	//* Set Master mode	pTWI->TWI_CR = AT91C_TWI_MSEN | AT91C_TWI_SVDIS;}//*----------------------------------------------------------------------------//* \fn    AT91F_TWI_GetInterruptMaskStatus//* \brief Return TWI Interrupt Mask Status//*---------------------------------------------------------------------------- unsigned int AT91F_TWI_GetInterruptMaskStatus( // \return TWI Interrupt Mask Status        AT91PS_TWI pTwi) // \arg  pointer to a TWI controller{        return pTwi->TWI_IMR;}//*----------------------------------------------------------------------------//* \fn    AT91F_TWI_IsInterruptMasked//* \brief Test if TWI Interrupt is Masked //*---------------------------------------------------------------------------- int AT91F_TWI_IsInterruptMasked(        AT91PS_TWI pTwi,   // \arg  pointer to a TWI controller        unsigned int flag) // \arg  flag to be tested{        return (AT91F_TWI_GetInterruptMaskStatus(pTwi) & flag);}/* *****************************************************************************                SOFTWARE API FOR USART   ***************************************************************************** *///*----------------------------------------------------------------------------//* \fn    AT91F_US_Baudrate//* \brief Caluculate baud_value according to the main clock and the baud rate//*---------------------------------------------------------------------------- unsigned int AT91F_US_Baudrate (	const unsigned int main_clock, // \arg peripheral clock	const unsigned int baud_rate)  // \arg UART baudrate{	unsigned int baud_value = ((main_clock*10)/(baud_rate * 16));	if ((baud_value % 10) >= 5)		baud_value = (baud_value / 10) + 1;	else		baud_value /= 10;	return baud_value;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_SetBaudrate//* \brief Set the baudrate according to the CPU clock//*---------------------------------------------------------------------------- void AT91F_US_SetBaudrate (	AT91PS_USART pUSART,    // \arg pointer to a USART controller	unsigned int mainClock, // \arg peripheral clock	unsigned int speed)     // \arg UART baudrate{	//* Define the baud rate divisor register	pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed);}//*----------------------------------------------------------------------------//* \fn    AT91F_US_SetTimeguard//* \brief Set USART timeguard//*---------------------------------------------------------------------------- void AT91F_US_SetTimeguard (	AT91PS_USART pUSART,    // \arg pointer to a USART controller	unsigned int timeguard) // \arg timeguard value{	//* Write the Timeguard Register	pUSART->US_TTGR = timeguard ;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_EnableIt//* \brief Enable USART IT//*---------------------------------------------------------------------------- void AT91F_US_EnableIt (	AT91PS_USART pUSART, // \arg pointer to a USART controller	unsigned int flag)   // \arg IT to be enabled{	//* Write to the IER register	pUSART->US_IER = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_DisableIt//* \brief Disable USART IT//*---------------------------------------------------------------------------- void AT91F_US_DisableIt (	AT91PS_USART pUSART, // \arg pointer to a USART controller	unsigned int flag)   // \arg IT to be disabled{	//* Write to the IER register	pUSART->US_IDR = flag;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_Configure//* \brief Configure USART//*---------------------------------------------------------------------------- void AT91F_US_Configure (	AT91PS_USART pUSART,     // \arg pointer to a USART controller	unsigned int mainClock,  // \arg peripheral clock	unsigned int mode ,      // \arg mode Register to be programmed	unsigned int baudRate ,  // \arg baudrate to be programmed	unsigned int timeguard ) // \arg timeguard to be programmed{    //* Disable interrupts    pUSART->US_IDR = (unsigned int) -1;    //* Reset receiver and transmitter    pUSART->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS ;	//* Define the baud rate divisor register	AT91F_US_SetBaudrate(pUSART, mainClock, baudRate);	//* Write the Timeguard Register	AT91F_US_SetTimeguard(pUSART, timeguard);    //* Clear Transmit and Receive Counters    AT91F_PDC_Open((AT91PS_PDC) &(pUSART->US_RPR));    //* Define the USART mode    pUSART->US_MR = mode  ;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_EnableRx//* \brief Enable receiving characters//*---------------------------------------------------------------------------- void AT91F_US_EnableRx (	AT91PS_USART pUSART)     // \arg pointer to a USART controller{    //* Enable receiver    pUSART->US_CR = AT91C_US_RXEN;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_EnableTx//* \brief Enable sending characters//*---------------------------------------------------------------------------- void AT91F_US_EnableTx (	AT91PS_USART pUSART)     // \arg pointer to a USART controller{    //* Enable  transmitter    pUSART->US_CR = AT91C_US_TXEN;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_ResetRx//* \brief Reset Receiver and re-enable it//*---------------------------------------------------------------------------- void AT91F_US_ResetRx (	AT91PS_USART pUSART)     // \arg pointer to a USART controller{	//* Reset receiver	pUSART->US_CR = AT91C_US_RSTRX;    //* Re-Enable receiver    pUSART->US_CR = AT91C_US_RXEN;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_ResetTx//* \brief Reset Transmitter and re-enable it//*---------------------------------------------------------------------------- void AT91F_US_ResetTx (	AT91PS_USART pUSART)     // \arg pointer to a USART controller{	//* Reset transmitter	pUSART->US_CR = AT91C_US_RSTTX;    //* Enable transmitter    pUSART->US_CR = AT91C_US_TXEN;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_DisableRx//* \brief Disable Receiver//*---------------------------------------------------------------------------- void AT91F_US_DisableRx (	AT91PS_USART pUSART)     // \arg pointer to a USART controller{    //* Disable receiver    pUSART->US_CR = AT91C_US_RXDIS;}//*----------------------------------------------------------------------------//* \fn    AT91F_US_DisableTx//* \brief Disable Transmitter//*---------------------------------------------------------------------------- void AT91F_US_DisableTx (	AT91PS_USAR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -