📄 lib_at91rm9200_h.html
字号:
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_RTC_InterruptDisable">AT91F_RTC_InterruptDisable</a></b></font>
<font color=#B22222>//* \brief Disable <a href="AT91RM9200_RTC.html#RTC">RTC</a> Interrupt</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_RTC_InterruptDisable">AT91F_RTC_InterruptDisable</a>(
<a href="AT91RM9200_h.html#AT91PS_RTC">AT91PS_RTC</a> pRtc, <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_RTC.html#RTC">RTC</a> controller</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> flag) <font color=#B22222>// \arg <a href="AT91RM9200_RTC.html#RTC">RTC</a> interrupt to be disabled</font>
{
pRtc-><a href="AT91RM9200_RTC.html#RTC_IDR">RTC_IDR</a> = flag;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_RTC_GetInterruptMaskStatus">AT91F_RTC_GetInterruptMaskStatus</a></b></font>
<font color=#B22222>//* \brief Return <a href="AT91RM9200_RTC.html#RTC">RTC</a> Interrupt Mask Status</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_RTC_GetInterruptMaskStatus">AT91F_RTC_GetInterruptMaskStatus</a>( <font color=#B22222>// \<font color=#0000FF>return</font> <a href="AT91RM9200_RTC.html#RTC">RTC</a> Interrupt Mask Status</font>
<a href="AT91RM9200_h.html#AT91PS_RTC">AT91PS_RTC</a> pRtc) <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_RTC.html#RTC">RTC</a> controller</font>
{
<font color=#0000FF>return</font> pRtc-><a href="AT91RM9200_RTC.html#RTC_IMR">RTC_IMR</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_RTC_IsInterruptMasked">AT91F_RTC_IsInterruptMasked</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> <a href="AT91RM9200_RTC.html#RTC">RTC</a> Interrupt is Masked </font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>int</font> <a href="#AT91F_RTC_IsInterruptMasked">AT91F_RTC_IsInterruptMasked</a>(
<a href="AT91RM9200_h.html#AT91PS_RTC">AT91PS_RTC</a> pRtc, <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_RTC.html#RTC">RTC</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_RTC_GetInterruptMaskStatus">AT91F_RTC_GetInterruptMaskStatus</a>(pRtc) & flag);
}
/* *****************************************************************************
SOFTWARE API FOR <a href="AT91RM9200_SSC.html#SSC">SSC</a>
***************************************************************************** */
<font color=#B22222>//* Define the standard I2S mode configuration</font>
<font color=#B22222>//* Configuration to set in the <a href="AT91RM9200_SSC.html#SSC">SSC</a> Transmit Clock Mode Register</font>
<font color=#B22222>//* Parameters : nb_bit_by_slot : 8, 16 or 32 bits</font>
<font color=#B22222>//* nb_slot_by_frame : number of channels</font>
<font color=#008200>#define</font> AT91C_I2S_ASY_MASTER_TX_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
<a href="AT91RM9200_h.html#AT91C_SSC_CKS_DIV">AT91C_SSC_CKS_DIV</a> +\
<a href="AT91RM9200_h.html#AT91C_SSC_CKO_CONTINOUS">AT91C_SSC_CKO_CONTINOUS</a> +\
<a href="AT91RM9200_h.html#AT91C_SSC_CKG_NONE">AT91C_SSC_CKG_NONE</a> +\
<a href="AT91RM9200_h.html#AT91C_SSC_START_FALL_RF">AT91C_SSC_START_FALL_RF</a> +\
<a href="AT91RM9200_h.html#AT91C_SSC_STTOUT">AT91C_SSC_STTOUT</a> +\
((1<<16) & <a href="AT91RM9200_h.html#AT91C_SSC_STTDLY">AT91C_SSC_STTDLY</a>) +\
((((nb_bit_by_slot*nb_slot_by_frame)/2)-1) <<24))
<font color=#B22222>//* Configuration to set in the <a href="AT91RM9200_SSC.html#SSC">SSC</a> Transmit Frame Mode Register</font>
<font color=#B22222>//* Parameters : nb_bit_by_slot : 8, 16 or 32 bits</font>
<font color=#B22222>//* nb_slot_by_frame : number of channels</font>
<font color=#008200>#define</font> AT91C_I2S_ASY_TX_FRAME_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
(nb_bit_by_slot-1) +\
<a href="AT91RM9200_h.html#AT91C_SSC_MSBF">AT91C_SSC_MSBF</a> +\
(((nb_slot_by_frame-1)<<8) & <a href="AT91RM9200_h.html#AT91C_SSC_DATNB">AT91C_SSC_DATNB</a>) +\
(((nb_bit_by_slot-1)<<16) & <a href="AT91RM9200_h.html#AT91C_SSC_FSLEN">AT91C_SSC_FSLEN</a>) +\
<a href="AT91RM9200_h.html#AT91C_SSC_FSOS_NEGATIVE">AT91C_SSC_FSOS_NEGATIVE</a>)
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_SetBaudrate">AT91F_SSC_SetBaudrate</a></b></font>
<font color=#B22222>//* \brief Set the baudrate according to the CPU clock</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SSC_SetBaudrate">AT91F_SSC_SetBaudrate</a> (
<a href="AT91RM9200_h.html#AT91PS_SSC">AT91PS_SSC</a> pSSC, <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SSC.html#SSC">SSC</a> controller</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mainClock, <font color=#B22222>// \arg peripheral clock</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> speed) <font color=#B22222>// \arg <a href="AT91RM9200_SSC.html#SSC">SSC</a> baudrate</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> baud_value;
<font color=#B22222>//* Define the baud rate divisor <font color=#0000FF>register</font></font>
<font color=#0000FF>if</font> (speed == 0)
baud_value = 0;
<font color=#0000FF>else</font>
{
baud_value = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) (mainClock * 10)/(2*speed);
<font color=#0000FF>if</font> ((baud_value % 10) >= 5)
baud_value = (baud_value / 10) + 1;
<font color=#0000FF>else</font>
baud_value /= 10;
}
pSSC-><a href="AT91RM9200_SSC.html#SSC_CMR">SSC_CMR</a> = baud_value;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_Configure">AT91F_SSC_Configure</a></b></font>
<font color=#B22222>//* \brief Configure <a href="AT91RM9200_SSC.html#SSC">SSC</a></font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SSC_Configure">AT91F_SSC_Configure</a> (
<a href="AT91RM9200_h.html#AT91PS_SSC">AT91PS_SSC</a> pSSC, <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SSC.html#SSC">SSC</a> controller</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> syst_clock, <font color=#B22222>// \arg System Clock Frequency</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> baud_rate, <font color=#B22222>// \arg Expected Baud Rate Frequency</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> clock_rx, <font color=#B22222>// \arg Receiver Clock Parameters</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mode_rx, <font color=#B22222>// \arg mode Register to be programmed</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> clock_tx, <font color=#B22222>// \arg Transmitter Clock Parameters</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mode_tx) <font color=#B22222>// \arg mode Register to be programmed</font>
{
<font color=#B22222>//* Disable interrupts</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_IDR">SSC_IDR</a> = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) -1;
<font color=#B22222>//* Reset receiver and transmitter</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_CR">SSC_CR</a> = <a href="AT91RM9200_h.html#AT91C_SSC_SWRST">AT91C_SSC_SWRST</a> | <a href="AT91RM9200_h.html#AT91C_SSC_RXDIS">AT91C_SSC_RXDIS</a> | <a href="AT91RM9200_h.html#AT91C_SSC_TXDIS">AT91C_SSC_TXDIS</a> ;
<font color=#B22222>//* Define the Clock Mode Register</font>
<a href="#AT91F_SSC_SetBaudrate">AT91F_SSC_SetBaudrate</a>(pSSC, syst_clock, baud_rate);
<font color=#B22222>//* Write the Receive Clock Mode Register</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_RCMR">SSC_RCMR</a> = clock_rx;
<font color=#B22222>//* Write the Transmit Clock Mode Register</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_TCMR">SSC_TCMR</a> = clock_tx;
<font color=#B22222>//* Write the Receive Frame Mode Register</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_RFMR">SSC_RFMR</a> = mode_rx;
<font color=#B22222>//* Write the Transmit Frame Mode Register</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_TFMR">SSC_TFMR</a> = mode_tx;
<font color=#B22222>//* Clear Transmit and Receive Counters</font>
<a href="#AT91F_PDC_Open">AT91F_PDC_Open</a>((<a href="AT91RM9200_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pSSC->SSC_RPR));
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_EnableRx">AT91F_SSC_EnableRx</a></b></font>
<font color=#B22222>//* \brief Enable receiving datas</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SSC_EnableRx">AT91F_SSC_EnableRx</a> (
<a href="AT91RM9200_h.html#AT91PS_SSC">AT91PS_SSC</a> pSSC) <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SSC.html#SSC">SSC</a> controller</font>
{
<font color=#B22222>//* Enable receiver</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_CR">SSC_CR</a> = <a href="AT91RM9200_h.html#AT91C_SSC_RXEN">AT91C_SSC_RXEN</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_DisableRx">AT91F_SSC_DisableRx</a></b></font>
<font color=#B22222>//* \brief Disable receiving datas</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SSC_DisableRx">AT91F_SSC_DisableRx</a> (
<a href="AT91RM9200_h.html#AT91PS_SSC">AT91PS_SSC</a> pSSC) <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SSC.html#SSC">SSC</a> controller</font>
{
<font color=#B22222>//* Disable receiver</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_CR">SSC_CR</a> = <a href="AT91RM9200_h.html#AT91C_SSC_RXDIS">AT91C_SSC_RXDIS</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_EnableTx">AT91F_SSC_EnableTx</a></b></font>
<font color=#B22222>//* \brief Enable sending datas</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_SSC_EnableTx">AT91F_SSC_EnableTx</a> (
<a href="AT91RM9200_h.html#AT91PS_SSC">AT91PS_SSC</a> pSSC) <font color=#B22222>// \arg pointer to a <a href="AT91RM9200_SSC.html#SSC">SSC</a> controller</font>
{
<font color=#B22222>//* Enable transmitter</font>
pSSC-><a href="AT91RM9200_SSC.html#SSC_CR">SSC_CR</a> = <a href="AT91RM9200_h.html#AT91C_SSC_TXEN">AT91C_SSC_TXEN</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_SSC_DisableTx">AT91F_SSC_DisableTx</a></b></font>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -