📄 lib_at91rm9200.c
字号:
}//*----------------------------------------------------------------------------//* \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 + -