📄 lib_at91sam9260.h
字号:
//* ----------------------------------------------------------------------------
//* ATMEL Microcontroller Software Support - ROUSSET -
//* ----------------------------------------------------------------------------
//* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
//* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
//* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
//* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
//* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
//* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
//* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
//* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
//* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
//* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//* ----------------------------------------------------------------------------
//* File Name : lib_AT91SAM9260.h
//* Object : AT91SAM9260 inlined functions
//* Generated : AT91 SW Application Group 09/30/2005 (14:09:32)
//*
//* CVS Reference : /lib_pdc.h/1.2/Tue Jul 02 12:29:40 2002//
//* CVS Reference : /lib_dbgu.h/1.1/Fri Jan 31 12:18:40 2003//
//* CVS Reference : /lib_shdwc_6122A.h/1.1/Wed Oct 06 13:06:00 2004//
//* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:43:14 2005//
//* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//
//* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//
//* CVS Reference : /lib_pitc_6079A.h/1.2/Thu Nov 04 14:01:11 2004//
//* CVS Reference : /lib_CCR_SAM9260.h/0/dummy timestamp//
//* CVS Reference : /lib_hmatrix1_SAM9260.h/0/dummy timestamp//
//* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 08:12:38 2003//
//* CVS Reference : /lib_pmc_SAM9260.h/0/dummy timestamp//
//* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 06 09:39:19 2004//
//* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//
//* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 06 09:39:38 2004//
//* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 13:37:30 2004//
//* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:53 2002//
//* CVS Reference : /lib_mci.h/1.7/Thu May 27 08:47:43 2004//
//* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 06 09:38:30 2004//
//* CVS Reference : /lib_udp.h/1.5/Mon Aug 29 08:17:54 2005//
//* CVS Reference : /lib_aic.h/1.3/Fri Jul 12 07:46:11 2002//
//* ----------------------------------------------------------------------------
#ifndef lib_AT91SAM9260_H
#define lib_AT91SAM9260_H
/* *****************************************************************************
SOFTWARE API FOR MATRIX
***************************************************************************** */
#include "AT91SAM9260.h"
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Remap_ARM
//* \brief Enable Remap of ARM
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Remap_ARM (AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = AT91C_MATRIX_RCA926I | AT91C_MATRIX_RCA926D;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Disable_Remap_ARM
//* \brief Disable Remap of ARM
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Disable_Remap_ARM (
AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = 0x0000;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Remap_ARMI
//* \brief Enable Remap of ARM-I
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Remap_ARMI (
AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = AT91C_MATRIX_RCA926I;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Disable_Remap_ARMI
//* \brief Disable Remap of ARM-I
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Disable_Remap_ARMI (
AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = AT91C_MATRIX_RCA926I;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Remap_ARMD
//* \brief Enable Remap of ARM-D
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Remap_ARMD (
AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = AT91C_MATRIX_RCA926D;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_MATRIX_Disable_Remap_ARM-D
//* \brief Disable Remap of ARM-D
//*----------------------------------------------------------------------------
__inline void AT91F_MATRIX_Disable_Remap_ARMD (
AT91PS_MATRIX pMATRIX)
{
pMATRIX->MATRIX_MRCR = AT91C_MATRIX_RCA926D;
}
/* *****************************************************************************
SOFTWARE API FOR CCFG
***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_EnableSDRAMC
//* \brief Enable the Chip Select of the SDRAM Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_EnableSDRAMC (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA |= AT91C_EBI_CS1A_SDRAMC;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_DisableSDRAMC
//* \brief Disable the Chip Select of the SDRAM Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_DisableSDRAMC (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA &= ~AT91C_EBI_CS1A_SDRAMC;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_EnableSM_On_CS3
//* \brief Enable the Chip Select 3 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_EnableSM_On_CS3 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA |= AT91C_EBI_CS3A_SM;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_DisableSM_On_CS3
//* \brief Disable the Chip Select 3 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_DisableSM_On_CS3 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA &= ~AT91C_EBI_CS3A_SM;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_EnableCF_On_CS4
//* \brief Enable the Chip Select 4 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_EnableCF_On_CS4 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA |= AT91C_EBI_CS4A_CF;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_DisableCF_On_CS4
//* \brief Disable the Chip Select 4 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_DisableCF_On_CS4 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA &= ~AT91C_EBI_CS4A_CF;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_EnableCF_On_CS5
//* \brief Enable the Chip Select 5 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_EnableCF_On_CS5 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA |= AT91C_EBI_CS5A_CF;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_DisableCF_On_CS5
//* \brief Disable the Chip Select 5 for CF Controller
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_DisableCF_On_CS5 (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA &= ~AT91C_EBI_CS5A_CF;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_EnableEBIPULLUP
//* \brief Enable the EBI PULLUP
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_EnableEBIPULLUP (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA |= AT91C_EBI_DBPUC;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_EBI_DisableEBIPULLUP
//* \brief Disable the EBI PULLUP
//*----------------------------------------------------------------------------
__inline void AT91F_EBI_DisableEBIPULLUP (
AT91PS_CCFG pCCFG)
{
pCCFG->CCFG_EBICSA &= ~AT91C_EBI_DBPUC;
}
/* *****************************************************************************
SOFTWARE API FOR PDC
***************************************************************************** */
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_SetNextRx
//* \brief Set the next receive transfer descriptor
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_SetNextRx (
AT91PS_PDC pPDC, // \arg pointer to a PDC controller
char *address, // \arg address to the next bloc to be received
unsigned int bytes) // \arg number of bytes to be received
{
pPDC->PDC_RNPR = (unsigned int) address;
pPDC->PDC_RNCR = bytes;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_SetNextTx
//* \brief Set the next transmit transfer descriptor
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_SetNextTx (
AT91PS_PDC pPDC, // \arg pointer to a PDC controller
char *address, // \arg address to the next bloc to be transmitted
unsigned int bytes) // \arg number of bytes to be transmitted
{
pPDC->PDC_TNPR = (unsigned int) address;
pPDC->PDC_TNCR = bytes;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_SetRx
//* \brief Set the receive transfer descriptor
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_SetRx (
AT91PS_PDC pPDC, // \arg pointer to a PDC controller
char *address, // \arg address to the next bloc to be received
unsigned int bytes) // \arg number of bytes to be received
{
pPDC->PDC_RPR = (unsigned int) address;
pPDC->PDC_RCR = bytes;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_SetTx
//* \brief Set the transmit transfer descriptor
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_SetTx (
AT91PS_PDC pPDC, // \arg pointer to a PDC controller
char *address, // \arg address to the next bloc to be transmitted
unsigned int bytes) // \arg number of bytes to be transmitted
{
pPDC->PDC_TPR = (unsigned int) address;
pPDC->PDC_TCR = bytes;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_EnableTx
//* \brief Enable transmit
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_EnableTx (
AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
{
pPDC->PDC_PTCR = AT91C_PDC_TXTEN;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_EnableRx
//* \brief Enable receive
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_EnableRx (
AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
{
pPDC->PDC_PTCR = AT91C_PDC_RXTEN;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_DisableTx
//* \brief Disable transmit
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_DisableTx (
AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
{
pPDC->PDC_PTCR = AT91C_PDC_TXTDIS;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_DisableRx
//* \brief Disable receive
//*----------------------------------------------------------------------------
__inline void AT91F_PDC_DisableRx (
AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
{
pPDC->PDC_PTCR = AT91C_PDC_RXTDIS;
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PDC_IsTxEmpty
//* \brief Test if the current transfer descriptor has been sent
//*----------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -