📄 lib_at91r40008_h.html
字号:
<font color=#0000FF>int</font> character )
{
pUSART-><a href="AT91R40008_USART.html#US_THR">US_THR</a> = (character & 0x1FF);
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_US_GetChar">AT91F_US_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_US_GetChar">AT91F_US_GetChar</a> (
<font color=#0000FF>const</font> <a href="AT91R40008_h.html#AT91PS_USART">AT91PS_USART</a> pUSART)
{
<font color=#0000FF>return</font>((pUSART-><a href="AT91R40008_USART.html#US_RHR">US_RHR</a>) & 0x1FF);
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_US_SendFrame">AT91F_US_SendFrame</a></b></font>
<font color=#B22222>//* \brief Return 1 <font color=#0000FF>if</font> <a href="AT91R40008_PDC.html#PDC">PDC</a> has been initialized with Buffer, 0 <font color=#0000FF>if</font> <a href="AT91R40008_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_US_SendFrame">AT91F_US_SendFrame</a>(
<a href="AT91R40008_h.html#AT91PS_USART">AT91PS_USART</a> pUSART,
<font color=#0000FF>char</font> *pBuffer,
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szBuffer )
{
<font color=#0000FF>return</font> <a href="#AT91F_PDC_SendFrame">AT91F_PDC_SendFrame</a>(
(<a href="AT91R40008_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pUSART->US_RPR),
pBuffer,
szBuffer);
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_US_ReceiveFrame">AT91F_US_ReceiveFrame</a></b></font>
<font color=#B22222>//* \brief Return 1 <font color=#0000FF>if</font> <a href="AT91R40008_PDC.html#PDC">PDC</a> has been initialized with Buffer, 0 <font color=#0000FF>if</font> <a href="AT91R40008_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_US_ReceiveFrame">AT91F_US_ReceiveFrame</a> (
<a href="AT91R40008_h.html#AT91PS_USART">AT91PS_USART</a> pUSART,
<font color=#0000FF>char</font> *pBuffer,
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> szBuffer )
{
<font color=#0000FF>return</font> <a href="#AT91F_PDC_ReceiveFrame">AT91F_PDC_ReceiveFrame</a>(
(<a href="AT91R40008_h.html#AT91PS_PDC">AT91PS_PDC</a>) &(pUSART->US_RPR),
pBuffer,
szBuffer);
}
/* *****************************************************************************
SOFTWARE API FOR <a href="AT91R40008_AIC.html#AIC">AIC</a>
***************************************************************************** */
<font color=#008200>#define</font> AT91C_AIC_BRANCH_OPCODE ((<font color=#0000FF>void</font> (*) ()) 0xE51FFF20) <font color=#B22222>// ldr, pc, [pc, #-&F20]</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_ConfigureIt">AT91F_AIC_ConfigureIt</a></b></font>
<font color=#B22222>//* \brief Interrupt Handler Initialization</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_ConfigureIt">AT91F_AIC_ConfigureIt</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id, <font color=#B22222>// \arg interrupt number to initialize</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> priority, <font color=#B22222>// \arg priority to give to the interrupt</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> src_type, <font color=#B22222>// \arg activation and sense of activation</font>
<font color=#0000FF>void</font> (*newHandler) (<font color=#0000FF>void</font>) ) <font color=#B22222>// \arg address of the interrupt handler</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> oldHandler;
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mask ;
oldHandler = pAic-><a href="AT91R40008_AIC.html#AIC_SVR">AIC_SVR</a>[irq_id];
mask = 0x1 << irq_id ;
<font color=#B22222>//* Disable the interrupt on the interrupt controller</font>
pAic-><a href="AT91R40008_AIC.html#AIC_IDCR">AIC_IDCR</a> = mask ;
<font color=#B22222>//* Save the interrupt handler routine pointer and the interrupt priority</font>
pAic-><a href="AT91R40008_AIC.html#AIC_SVR">AIC_SVR</a>[irq_id] = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) newHandler ;
<font color=#B22222>//* Store the Source Mode Register</font>
pAic-><a href="AT91R40008_AIC.html#AIC_SMR">AIC_SMR</a>[irq_id] = src_type | priority ;
<font color=#B22222>//* Clear the interrupt on the interrupt controller</font>
pAic-><a href="AT91R40008_AIC.html#AIC_ICCR">AIC_ICCR</a> = mask ;
<font color=#0000FF>return</font> oldHandler;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_EnableIt">AT91F_AIC_EnableIt</a></b></font>
<font color=#B22222>//* \brief Enable corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_EnableIt">AT91F_AIC_EnableIt</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id ) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#B22222>//* Enable the interrupt on the interrupt controller</font>
pAic-><a href="AT91R40008_AIC.html#AIC_IECR">AIC_IECR</a> = 0x1 << irq_id ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_DisableIt">AT91F_AIC_DisableIt</a></b></font>
<font color=#B22222>//* \brief Disable corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_DisableIt">AT91F_AIC_DisableIt</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id ) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> mask = 0x1 << irq_id;
<font color=#B22222>//* Disable the interrupt on the interrupt controller</font>
pAic-><a href="AT91R40008_AIC.html#AIC_IDCR">AIC_IDCR</a> = mask ;
<font color=#B22222>//* Clear the interrupt on the Interrupt Controller ( <font color=#0000FF>if</font> one is pending )</font>
pAic-><a href="AT91R40008_AIC.html#AIC_ICCR">AIC_ICCR</a> = mask ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_ClearIt">AT91F_AIC_ClearIt</a></b></font>
<font color=#B22222>//* \brief Clear corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_ClearIt">AT91F_AIC_ClearIt</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg interrupt number to initialize</font>
{
<font color=#B22222>//* Clear the interrupt on the Interrupt Controller ( <font color=#0000FF>if</font> one is pending )</font>
pAic-><a href="AT91R40008_AIC.html#AIC_ICCR">AIC_ICCR</a> = (0x1 << irq_id);
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_AcknowledgeIt">AT91F_AIC_AcknowledgeIt</a></b></font>
<font color=#B22222>//* \brief Acknowledge corresponding IT number</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_AcknowledgeIt">AT91F_AIC_AcknowledgeIt</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic) <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
{
pAic-><a href="AT91R40008_AIC.html#AIC_EOICR">AIC_EOICR</a> = pAic-><a href="AT91R40008_AIC.html#AIC_EOICR">AIC_EOICR</a>;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_Trig">AT91F_AIC_Trig</a></b></font>
<font color=#B22222>//* \brief Trig an IT</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>void</font> <a href="#AT91F_AIC_Trig">AT91F_AIC_Trig</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg interrupt number</font>
{
pAic-><a href="AT91R40008_AIC.html#AIC_ISCR">AIC_ISCR</a> = (0x1 << irq_id) ;
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_IsActive">AT91F_AIC_IsActive</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> an IT is active</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> <a href="#AT91F_AIC_IsActive">AT91F_AIC_IsActive</a> (
<a href="AT91R40008_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic, <font color=#B22222>// \arg pointer to the <a href="AT91R40008_AIC.html#AIC">AIC</a> registers</font>
<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> irq_id) <font color=#B22222>// \arg Interrupt Number</font>
{
<font color=#0000FF>return</font> (pAic-><a href="AT91R40008_AIC.html#AIC_ISR">AIC_ISR</a> & (0x1 << irq_id));
}
<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn <b><a name="AT91F_AIC_IsPending">AT91F_AIC_IsPending</a></b></font>
<font color=#B22222>//* \brief Test <font color=#0000FF>if</font> an IT is pending</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -