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

📄 lib_at91m55800a_h.html

📁 eb55评估板例程 for ads
💻 HTML
📖 第 1 页 / 共 5 页
字号:

<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="AT91M55800A_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="AT91M55800A_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="AT91M55800A_h.html#AT91PS_SPI">AT91PS_SPI</a> pSPI)
{
    <font color=#0000FF>return</font>((pSPI-><a href="AT91M55800A_SPI.html#SPI_RDR">SPI_RDR</a>) & 0xFFFF);
}
/* *****************************************************************************
                SOFTWARE API FOR <a href="AT91M55800A_APMC.html#APMC">APMC</a>
   ***************************************************************************** */
<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_EnablePeriphClock">AT91F_APMC_EnablePeriphClock</a></b></font>
<font color=#B22222>//* \brief Enable peripheral clock</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_APMC_EnablePeriphClock">AT91F_APMC_EnablePeriphClock</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC, <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> periphIds)  <font color=#B22222>// \arg IDs of peripherals to enable</font>
{
        pAPMC-><a href="AT91M55800A_APMC.html#APMC_PCER">APMC_PCER</a> = periphIds;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_DisablePeriphClock">AT91F_APMC_DisablePeriphClock</a></b></font>
<font color=#B22222>//* \brief Enable peripheral clock</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_APMC_DisablePeriphClock">AT91F_APMC_DisablePeriphClock</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC, <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> periphIds)  <font color=#B22222>// \arg IDs of peripherals to enable</font>
{
        pAPMC-><a href="AT91M55800A_APMC.html#APMC_PCDR">APMC_PCDR</a> = periphIds;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_GetCgmrConfig">AT91F_APMC_GetCgmrConfig</a></b></font>
<font color=#B22222>//* \brief Return the value of the Clock Mode Generator</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_APMC_GetCgmrConfig">AT91F_APMC_GetCgmrConfig</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC) <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
{
        <font color=#0000FF>return</font> ( pAPMC-><a href="AT91M55800A_APMC.html#APMC_CGMR">APMC_CGMR</a> ) ;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_IsPllLocked">AT91F_APMC_IsPllLocked</a></b></font>
<font color=#B22222>//* \brief Return the state of the PLL. <a href="AT91M55800A_h.html#AT91C_APMC_LOCK">AT91C_APMC_LOCK</a> <font color=#0000FF>if</font> locked, 0 otherwise.</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_APMC_IsPllLocked">AT91F_APMC_IsPllLocked</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC ) <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
{
        <font color=#0000FF>if</font> ( ( pAPMC-><a href="AT91M55800A_APMC.html#APMC_SR">APMC_SR</a> & <a href="AT91M55800A_h.html#AT91C_APMC_LOCK">AT91C_APMC_LOCK</a> ) == <a href="AT91M55800A_h.html#AT91C_APMC_LOCK">AT91C_APMC_LOCK</a> )
                <font color=#0000FF>return</font> <a href="AT91M55800A_h.html#AT91C_APMC_LOCK">AT91C_APMC_LOCK</a> ;
        <font color=#0000FF>else</font> <font color=#0000FF>return</font> 0 ;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_EnablePll">AT91F_APMC_EnablePll</a></b></font>
<font color=#B22222>//* \brief Enable the PLL and wait <font color=#0000FF>for</font> the PLL is locked</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_APMC_EnablePll">AT91F_APMC_EnablePll</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC, <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> pll_config)  <font color=#B22222>// \arg Configuration of the PLL</font>
{
        pAPMC-><a href="AT91M55800A_APMC.html#APMC_CGMR">APMC_CGMR</a> = (( <a href="#AT91F_APMC_GetCgmrConfig">AT91F_APMC_GetCgmrConfig</a>(pAPMC) & ~(<a href="AT91M55800A_h.html#AT91C_APMC_MUL">AT91C_APMC_MUL</a>|<a href="AT91M55800A_h.html#AT91C_APMC_PLLCOUNT">AT91C_APMC_PLLCOUNT</a>)) | pll_config );

        <font color=#0000FF>while</font> ( <a href="#AT91F_APMC_IsPllLocked">AT91F_APMC_IsPllLocked</a> (pAPMC) != <a href="AT91M55800A_h.html#AT91C_APMC_LOCK">AT91C_APMC_LOCK</a> ) {} ;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_IsMoscLocked">AT91F_APMC_IsMoscLocked</a></b></font>
<font color=#B22222>//* \brief Return the state of the Main oscillator. <a href="AT91M55800A_h.html#AT91C_APMC_MOSCS">AT91C_APMC_MOSCS</a> <font color=#0000FF>if</font> locked, 0 otherwise.</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_APMC_IsMoscLocked">AT91F_APMC_IsMoscLocked</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC ) <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
{
        <font color=#0000FF>if</font> ( ( pAPMC-><a href="AT91M55800A_APMC.html#APMC_SR">APMC_SR</a> & <a href="AT91M55800A_h.html#AT91C_APMC_MOSCS">AT91C_APMC_MOSCS</a> ) == <a href="AT91M55800A_h.html#AT91C_APMC_MOSCS">AT91C_APMC_MOSCS</a> )
                <font color=#0000FF>return</font> <a href="AT91M55800A_h.html#AT91C_APMC_MOSCS">AT91C_APMC_MOSCS</a> ;
        <font color=#0000FF>else</font> <font color=#0000FF>return</font> 0 ;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_EnableMainOsc">AT91F_APMC_EnableMainOsc</a></b></font>
<font color=#B22222>//* \brief Enable the Main Oscillator and wait <font color=#0000FF>for</font> the Main Oscillator is locked</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_APMC_EnableMainOsc">AT91F_APMC_EnableMainOsc</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC ) <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
{
        pAPMC-><a href="AT91M55800A_APMC.html#APMC_CGMR">APMC_CGMR</a> = ( <a href="#AT91F_APMC_GetCgmrConfig">AT91F_APMC_GetCgmrConfig</a> (pAPMC) | <a href="AT91M55800A_h.html#AT91C_APMC_MOSCEN">AT91C_APMC_MOSCEN</a> | <a href="AT91M55800A_h.html#AT91C_APMC_OSCOUNT">AT91C_APMC_OSCOUNT</a> ) ;

        <font color=#0000FF>while</font> ( <a href="#AT91F_APMC_IsMoscLocked">AT91F_APMC_IsMoscLocked</a> (pAPMC) != <a href="AT91M55800A_h.html#AT91C_APMC_MOSCS">AT91C_APMC_MOSCS</a> ) {} ;
}

<font color=#B22222>//*--------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_APMC_SwitchClock">AT91F_APMC_SwitchClock</a></b></font>
<font color=#B22222>//* \brief Switching between the different Clock sources</font>
<font color=#B22222>//*--------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_APMC_SwitchClock">AT91F_APMC_SwitchClock</a> (
        <a href="AT91M55800A_h.html#AT91PS_APMC">AT91PS_APMC</a> pAPMC, <font color=#B22222>// \arg pointer to <a href="AT91M55800A_APMC.html#APMC">APMC</a> controller</font>
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> source_clock)  <font color=#B22222>// \arg Source clock to <font color=#0000FF>switch</font> to</font>
{

        pAPMC-><a href="AT91M55800A_APMC.html#APMC_CGMR">APMC_CGMR</a> = (~<a href="AT91M55800A_h.html#AT91C_APMC_CSS">AT91C_APMC_CSS</a> & <a href="#AT91F_APMC_GetCgmrConfig">AT91F_APMC_GetCgmrConfig</a> (pAPMC)) | source_clock ;
}/* *****************************************************************************
                SOFTWARE API FOR <a href="AT91M55800A_USART.html#USART">USART</a>
   ***************************************************************************** */
<font color=#B22222>//* Standard Asynchronous Mode : 8 bits , 1 stop , no parity</font>
<font color=#008200>#define</font> AT91C_US_ASYNC_MODE ( <a href="AT91M55800A_h.html#AT91C_US_CHMODE_NORMAL">AT91C_US_CHMODE_NORMAL</a> + \
                        <a href="AT91M55800A_h.html#AT91C_US_NBSTOP_1_BIT">AT91C_US_NBSTOP_1_BIT</a> + \
                        <a href="AT91M55800A_h.html#AT91C_US_PAR_NONE">AT91C_US_PAR_NONE</a> + \
                        <a href="AT91M55800A_h.html#AT91C_US_CHRL_8_BITS">AT91C_US_CHRL_8_BITS</a> + \
                        <a href="AT91M55800A_h.html#AT91C_US_CLKS_CLOCK">AT91C_US_CLKS_CLOCK</a> )

<font color=#B22222>//* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity</font>
<font color=#008200>#define</font> AT91C_US_ASYNC_SCK_MODE ( <a href="AT91M55800A_h.html#AT91C_US_CHMODE_NORMAL">AT91C_US_CHMODE_NORMAL</a> + \
                            <a href="AT91M55800A_h.html#AT91C_US_NBSTOP_1_BIT">AT91C_US_NBSTOP_1_BIT</a> + \
                            <a href="AT91M55800A_h.html#AT91C_US_PAR_NONE">AT91C_US_PAR_NONE</a> + \
                            <a href="AT91M55800A_h.html#AT91C_US_CHRL_8_BITS">AT91C_US_CHRL_8_BITS</a> + \
                            <a href="AT91M55800A_h.html#AT91C_US_CLKS_EXT">AT91C_US_CLKS_EXT</a> )

<font color=#B22222>//* Standard Synchronous Mode : 8 bits , 1 stop , no parity</font>
<font color=#008200>#define</font> AT91C_US_SYNC_MODE ( <a href="AT91M55800A_h.html#AT91C_US_SYNC">AT91C_US_SYNC</a> + \
                       <a href="AT91M55800A_h.html#AT91C_US_CHMODE_NORMAL">AT91C_US_CHMODE_NORMAL</a> + \
                       <a href="AT91M55800A_h.html#AT91C_US_NBSTOP_1_BIT">AT91C_US_NBSTOP_1_BIT</a> + \
                       <a href="AT91M55800A_h.html#AT91C_US_PAR_NONE">AT91C_US_PAR_NONE</a> + \
                       <a href="AT91M55800A_h.html#AT91C_US_CHRL_8_BITS">AT91C_US_CHRL_8_BITS</a> + \
                       <a href="AT91M55800A_h.html#AT91C_US_CLKS_CLOCK">AT91C_US_CLKS_CLOCK</a> )

<font color=#B22222>//* SCK used Label</font>
<font color=#008200>#define</font> AT91C_US_SCK_USED (<a href="AT91M55800A_h.html#AT91C_US_CKLO">AT91C_US_CKLO</a> | <a href="AT91M55800A_h.html#AT91C_US_CLKS_EXT">AT91C_US_CLKS_EXT</a>)

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_US_Baudrate">AT91F_US_Baudrate</a></b></font>
<font color=#B22222>//* \brief Caluculate baud_value according to the <font color=#0000FF>main</font> clock and the baud rate</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_US_Baudrate">AT91F_US_Baudrate</a> (
        <font color=#0000FF>const</font> <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> main_clock, <font color=#B22222>// \arg Master Clock</font>
        <font color=#0000FF>const</font> <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> baud_rate)  <font color=#B22222>// \arg Desired UART baudrate</font>
{
        <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> baud_value = ((main_clock*10)/(baud_rate * 16));
        <font color=#0000FF>if</font> ((baud_value % 10) >= 5)
                baud_value

⌨️ 快捷键说明

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