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

📄 lib_at91rm9200_h.html

📁 AT91RM9200的USB相关ACM CDC的源代码包! AT91RM9200-BasicUSBPipe-ARM1_2-2_0.zip
💻 HTML
📖 第 1 页 / 共 5 页
字号:
	pSPI-><a href="AT91RM9200_SPI.html#SPI_CR">SPI_CR</a> = <a href="AT91RM9200_h.html#AT91C_SPI_SPIEN">AT91C_SPI_SPIEN</a>;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_Disable">AT91F_SPI_Disable</a></b></font>
<font color=#B22222>//* \brief Disable the <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SPI_Disable">AT91F_SPI_Disable</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI <font color=#B22222>// pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
	)
{
	<font color=#B22222>//* Write to the CR <font color=#0000FF>register</font></font>
	pSPI-><a href="AT91RM9200_SPI.html#SPI_CR">SPI_CR</a> = <a href="AT91RM9200_h.html#AT91C_SPI_SPIDIS">AT91C_SPI_SPIDIS</a>;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_CfgMode">AT91F_SPI_CfgMode</a></b></font>
<font color=#B22222>//* \brief Enable the <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SPI_CfgMode">AT91F_SPI_CfgMode</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI, <font color=#B22222>// pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
	<font color=#0000FF>int</font> mode)        <font color=#B22222>// mode <font color=#0000FF>register</font> </font>
{
	<font color=#B22222>//* Write to the MR <font color=#0000FF>register</font></font>
	pSPI-><a href="AT91RM9200_SPI.html#SPI_MR">SPI_MR</a> = mode;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_CfgPCS">AT91F_SPI_CfgPCS</a></b></font>
<font color=#B22222>//* \brief Switch to the correct PCS of <a href="AT91RM9200_SPI.html#SPI">SPI</a> Mode Register : Fixed Peripheral Selected</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SPI_CfgPCS">AT91F_SPI_CfgPCS</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI, <font color=#B22222>// pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
	<font color=#0000FF>char</font> PCS_Device) <font color=#B22222>// PCS of the Device</font>
{	
 	<font color=#B22222>//* Write to the MR <font color=#0000FF>register</font></font>
	pSPI-><a href="AT91RM9200_SPI.html#SPI_MR">SPI_MR</a> &= 0xFFF0FFFF;
	pSPI-><a href="AT91RM9200_SPI.html#SPI_MR">SPI_MR</a> |= ( (PCS_Device<<16) & <a href="AT91RM9200_h.html#AT91C_SPI_PCS">AT91C_SPI_PCS</a> );
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_ReceiveFrame">AT91F_SPI_ReceiveFrame</a></b></font>
<font color=#B22222>//* \brief Return 2 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> has been initialized with Buffer and Next Buffer, 1 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> has been initializaed with Next Buffer, 0 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> is busy</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_SPI_ReceiveFrame">AT91F_SPI_ReceiveFrame</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI,
	<font color=#0000FF>char</font> *pBuffer,
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szBuffer,
	<font color=#0000FF>char</font> *pNextBuffer,
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szNextBuffer )
{
	<font color=#0000FF>return</font> <a href="#AT91F_PDC_ReceiveFrame">AT91F_PDC_ReceiveFrame</a>(
		(<a href="AT91RM9200_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pSPI->SPI_RPR),
		pBuffer,
		szBuffer,
		pNextBuffer,
		szNextBuffer);
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_SendFrame">AT91F_SPI_SendFrame</a></b></font>
<font color=#B22222>//* \brief Return 2 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> has been initialized with Buffer and Next Buffer, 1 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> has been initializaed with Next Buffer, 0 <font color=#0000FF>if</font> <a href="AT91RM9200_PDC.html#PDC">PDC</a> is bSPIy</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_SPI_SendFrame">AT91F_SPI_SendFrame</a>(
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI,
	<font color=#0000FF>char</font> *pBuffer,
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szBuffer,
	<font color=#0000FF>char</font> *pNextBuffer,
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szNextBuffer )
{
	<font color=#0000FF>return</font> <a href="#AT91F_PDC_SendFrame">AT91F_PDC_SendFrame</a>(
		(<a href="AT91RM9200_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pSPI->SPI_RPR),
		pBuffer,
		szBuffer,
		pNextBuffer,
		szNextBuffer);
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_Close">AT91F_SPI_Close</a></b></font>
<font color=#B22222>//* \brief Close <a href="AT91RM9200_SPI.html#SPI">SPI</a>: disable IT disable transfert, close <a href="AT91RM9200_PDC.html#PDC">PDC</a></font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SPI_Close">AT91F_SPI_Close</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI)     <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
{
    <font color=#B22222>//* Reset all the Chip Select <font color=#0000FF>register</font></font>
    pSPI-><a href="AT91RM9200_SPI.html#SPI_CSR">SPI_CSR</a>[0] = 0 ;
    pSPI-><a href="AT91RM9200_SPI.html#SPI_CSR">SPI_CSR</a>[1] = 0 ;
    pSPI-><a href="AT91RM9200_SPI.html#SPI_CSR">SPI_CSR</a>[2] = 0 ;
    pSPI-><a href="AT91RM9200_SPI.html#SPI_CSR">SPI_CSR</a>[3] = 0 ;

    <font color=#B22222>//* Reset the <a href="AT91RM9200_SPI.html#SPI">SPI</a> mode</font>
    pSPI-><a href="AT91RM9200_SPI.html#SPI_MR">SPI_MR</a> = 0  ;

    <font color=#B22222>//* Disable all interrupts</font>
    pSPI-><a href="AT91RM9200_SPI.html#SPI_IDR">SPI_IDR</a> = 0xFFFFFFFF ;

    <font color=#B22222>//* Abort the Peripheral Data Transfers</font>
    <a href="#AT91F_PDC_Close">AT91F_PDC_Close</a>((<a href="AT91RM9200_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pSPI->SPI_RPR));

    <font color=#B22222>//* Disable receiver and transmitter and stop any activity immediately</font>
    pSPI-><a href="AT91RM9200_SPI.html#SPI_CR">SPI_CR</a> = <a href="AT91RM9200_h.html#AT91C_SPI_SPIDIS">AT91C_SPI_SPIDIS</a>;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_PutChar">AT91F_SPI_PutChar</a></b></font>
<font color=#B22222>//* \brief Send a character,does not check <font color=#0000FF>if</font> ready to send</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SPI_PutChar">AT91F_SPI_PutChar</a> (
	<a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI,
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> character,
             <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> cs_number )
{
    <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> value_for_cs;
    value_for_cs = (~(1 << cs_number)) & 0xF;  <font color=#B22222>//Place a zero among a 4 ONEs number</font>
    pSPI-><a href="AT91RM9200_SPI.html#SPI_TDR">SPI_TDR</a> = (character & 0xFFFF) | (value_for_cs << 16);
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_GetChar">AT91F_SPI_GetChar</a></b></font>
<font color=#B22222>//* \brief Receive a character,does not check <font color=#0000FF>if</font> a character is available</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>int</font> <a href="#AT91F_SPI_GetChar">AT91F_SPI_GetChar</a> (
	<font color=#0000FF>const</font> <a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI)
{
    <font color=#0000FF>return</font>((pSPI-><a href="AT91RM9200_SPI.html#SPI_RDR">SPI_RDR</a>) & 0xFFFF);
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_GetInterruptMaskStatus">AT91F_SPI_GetInterruptMaskStatus</a></b></font>
<font color=#B22222>//* \brief Return <a href="AT91RM9200_SPI.html#SPI">SPI</a> Interrupt Mask Status</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_SPI_GetInterruptMaskStatus">AT91F_SPI_GetInterruptMaskStatus</a>( <font color=#B22222>// \<font color=#0000FF>return</font> <a href="AT91RM9200_SPI.html#SPI">SPI</a> Interrupt Mask Status</font>
        <a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSpi) <font color=#B22222>// \arg  pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
{
        <font color=#0000FF>return</font> pSpi-><a href="AT91RM9200_SPI.html#SPI_IMR">SPI_IMR</a>;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_SPI_IsInterruptMasked">AT91F_SPI_IsInterruptMasked</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> <a href="AT91RM9200_SPI.html#SPI">SPI</a> Interrupt is Masked </font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>int</font> <a href="#AT91F_SPI_IsInterruptMasked">AT91F_SPI_IsInterruptMasked</a>(
        <a href="AT91RM9200_h.html#AT91PS_SPI">AT91PS_SPI</a> pSpi,   <font color=#B22222>// \arg  pointer to a <a href="AT91RM9200_SPI.html#SPI">SPI</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> flag) <font color=#B22222>// \arg  flag to be tested</font>
{
        <font color=#0000FF>return</font> (<a href="#AT91F_SPI_GetInterruptMaskStatus">AT91F_SPI_GetInterruptMaskStatus</a>(pSpi) & flag);
}

/* *****************************************************************************
                SOFTWARE API FOR <a href="AT91RM9200_TC.html#TC">TC</a>
   ***************************************************************************** */
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_TC_InterruptEnable">AT91F_TC_InterruptEnable</a></b></font>
<font color=#B22222>//* \brief Enable <a href="AT91RM9200_TC.html#TC">TC</a> Interrupt</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_TC_InterruptEnable">AT91F_TC_InterruptEnable</a>(
        <a href="AT91RM9200_h.html#AT91PS_TC">AT91PS_TC</a> pTc,   <font color=#B22222>// \arg  pointer to a <a href="AT91RM9200_TC.html#TC">TC</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> flag) <font color=#B22222>// \arg  <a href="AT91RM9200_TC.html#TC">TC</a> interrupt to be enabled</font>
{
        pTc-><a href="AT91RM9200_TC.html

⌨️ 快捷键说明

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