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

📄 lib_at91sam7s128_h.html

📁 atmel at91sam7s和7x下
💻 HTML
📖 第 1 页 / 共 5 页
字号:


<html><head>

<meta charset="iso-8859-1" content="Arm / ATMEL/ AT91 library /" http-equiv="Content-Type">

<title>HTML software transalation</title>

</head>

<body><pre><font color=#B22222>//* ----------------------------------------------------------------------------</font>
<font color=#B22222>//*         ATMEL Microcontroller Software Support  -  ROUSSET  -</font>
<font color=#B22222>//* ----------------------------------------------------------------------------</font>
<font color=#B22222>//* DISCLAIMER:  THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR</font>
<font color=#B22222>//* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF</font>
<font color=#B22222>//* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE</font>
<font color=#B22222>//* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,</font>
<font color=#B22222>//* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</font>
<font color=#B22222>//* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,</font>
<font color=#B22222>//* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF</font>
<font color=#B22222>//* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING</font>
<font color=#B22222>//* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,</font>
<font color=#B22222>//* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</font>
<font color=#B22222>//* ----------------------------------------------------------------------------</font>
<font color=#B22222>//* File Name           : lib_AT91SAM7S128.h</font>
<font color=#B22222>//* Object              : AT91SAM7S128 inlined functions</font>
<font color=#B22222>//* Generated           : AT91 SW Application Group  08/30/2005 (15:53:04)</font>
<font color=#B22222>//*</font>
<font color=#B22222>//* CVS Reference       : /lib_dbgu.h/1.1/Thu Aug 25 12:56:22 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_pmc_SAM7S.h/1.4/Tue Aug 30 13:00:43 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_VREG_6085B.h/1.1/Tue Feb  1 16:20:47 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_rstc_6098A.h/1.1/Wed Oct  6 10:39:20 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//</font>
<font color=#B22222>//* CVS Reference       : /lib_wdtc_6080A.h/1.1/Wed Oct  6 10:38:30 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_usart.h/1.5/Thu Nov 21 16:01:54 2002//</font>
<font color=#B22222>//* CVS Reference       : /lib_spi2.h/1.2/Tue Aug 23 15:37:28 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_pitc_6079A.h/1.2/Tue Nov  9 14:43:56 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_aic_6075b.h/1.2/Thu Jul  7 07:48:22 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_twi.h/1.3/Mon Jul 19 14:27:58 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_adc.h/1.6/Fri Oct 17 09:12:38 2003//</font>
<font color=#B22222>//* CVS Reference       : /lib_rttc_6081A.h/1.1/Wed Oct  6 10:39:38 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_udp.h/1.5/Tue Aug 30 12:13:47 2005//</font>
<font color=#B22222>//* CVS Reference       : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//</font>
<font color=#B22222>//* CVS Reference       : /lib_MC_SAM7S.h/1.1/Thu Mar 25 15:19:14 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//</font>
<font color=#B22222>//* CVS Reference       : /lib_PWM_SAM.h/1.3/Thu Jan 22 10:10:50 2004//</font>
<font color=#B22222>//* CVS Reference       : /lib_pdc.h/1.2/Tue Jul  2 13:29:40 2002//</font>
<font color=#B22222>//* ----------------------------------------------------------------------------</font>

<font color=#008200>#ifndef</font> lib_AT91SAM7S128_H
<font color=#008200>#define</font> lib_AT91SAM7S128_H

/* *****************************************************************************
                SOFTWARE API FOR <a href="AT91SAM7S128_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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic,  <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_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=#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="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic,      <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic,      <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic,     <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_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="AT91SAM7S128_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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic)     <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_AIC.html#AIC">AIC</a> registers</font>
{
    pAic-><a href="AT91SAM7S128_AIC.html#AIC_EOICR">AIC_EOICR</a> = pAic-><a href="AT91SAM7S128_AIC.html#AIC_EOICR">AIC_EOICR</a>;
}

<font color=#B22222>//*----------------------------------------------------------------------------</font>
<font color=#B22222>//* \fn    <b><a name="AT91F_AIC_SetExceptionVector">AT91F_AIC_SetExceptionVector</a></b></font>
<font color=#B22222>//* \brief Configure vector handler</font>
<font color=#B22222>//*----------------------------------------------------------------------------</font>
__inline <font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>  <a href="#AT91F_AIC_SetExceptionVector">AT91F_AIC_SetExceptionVector</a> (
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> *pVector, <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_AIC.html#AIC">AIC</a> registers</font>
	<font color=#0000FF>void</font> (*Handler) () )   <font color=#B22222>// \arg Interrupt Handler</font>
{
	<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font> oldVector = *pVector;

	<font color=#0000FF>if</font> ((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) Handler == (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) AT91C_AIC_BRANCH_OPCODE)
		*pVector = (<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) AT91C_AIC_BRANCH_OPCODE;
	<font color=#0000FF>else</font>
		*pVector = (((((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) Handler) - ((<font color=#0000FF>unsigned</font> <font color=#0000FF>int</font>) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0xEA000000;

	<font color=#0000FF>return</font> oldVector;
}

<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="AT91SAM7S128_h.html#AT91PS_AIC">AT91PS_AIC</a> pAic,     <font color=#B22222>// \arg pointer to the <a href="AT91SAM7S128_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>

⌨️ 快捷键说明

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