1 .cpu arm7tdmi 2 .fpu softvfp 3 .eabi_attribute 20, 1 4 .eabi_attribute 21, 1 5 .eabi_attribute 23, 3 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 .eabi_attribute 26, 1 9 .eabi_attribute 30, 4 10 .eabi_attribute 18, 4 11 .file "lib_AT91SAM7.c" 19 .Ltext0: 20 .cfi_sections .debug_frame 21 .align 2 23 AT91F_PDC_SetNextRx: 24 .LFB7: 25 .file 1 "./include/lib_AT91SAM7.h" 1:./include/lib_AT91SAM7.h **** //* ---------------------------------------------------------------------------- 2:./include/lib_AT91SAM7.h **** //* ATMEL Microcontroller Software Support - ROUSSET - 3:./include/lib_AT91SAM7.h **** //* ---------------------------------------------------------------------------- 4:./include/lib_AT91SAM7.h **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR 5:./include/lib_AT91SAM7.h **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 6:./include/lib_AT91SAM7.h **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 7:./include/lib_AT91SAM7.h **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, 8:./include/lib_AT91SAM7.h **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 9:./include/lib_AT91SAM7.h **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 10:./include/lib_AT91SAM7.h **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 11:./include/lib_AT91SAM7.h **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 12:./include/lib_AT91SAM7.h **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 13:./include/lib_AT91SAM7.h **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14:./include/lib_AT91SAM7.h **** //* ---------------------------------------------------------------------------- 15:./include/lib_AT91SAM7.h **** //* File Name : lib_AT91SAM7S64.h 16:./include/lib_AT91SAM7.h **** //* Object : AT91SAM7S64 inlined functions 17:./include/lib_AT91SAM7.h **** //* Generated : AT91 SW Application Group 08/30/2005 (15:52:59) 18:./include/lib_AT91SAM7.h **** //* 19:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_dbgu.h/1.1/Thu Aug 25 12:56:22 2005// 20:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pmc_SAM7S.h/1.4/Tue Aug 30 13:00:43 2005// 21:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_VREG_6085B.h/1.1/Tue Feb 1 16:20:47 2005// 22:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 6 10:39:20 2004// 23:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003// 24:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 6 10:38:30 2004// 25:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:54 2002// 26:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:37:28 2005// 27:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pitc_6079A.h/1.2/Tue Nov 9 14:43:56 2004// 28:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_aic_6075b.h/1.2/Thu Jul 7 07:48:22 2005// 29:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 14:27:58 2004// 30:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 09:12:38 2003// 31:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 6 10:39:38 2004// 32:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_udp.h/1.5/Tue Aug 30 12:13:47 2005// 33:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003// 34:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_MC_SAM7S.h/1.1/Thu Mar 25 15:19:14 2004// 35:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003// 36:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_PWM_SAM.h/1.3/Thu Jan 22 10:10:50 2004// 37:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pdc.h/1.2/Tue Jul 2 13:29:40 2002// 38:./include/lib_AT91SAM7.h **** //* ---------------------------------------------------------------------------- 39:./include/lib_AT91SAM7.h **** 40:./include/lib_AT91SAM7.h **** #ifndef lib_AT91SAM7S64_H 41:./include/lib_AT91SAM7.h **** #define lib_AT91SAM7S64_H 42:./include/lib_AT91SAM7.h **** 43:./include/lib_AT91SAM7.h **** #include 44:./include/lib_AT91SAM7.h **** 45:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 46:./include/lib_AT91SAM7.h **** SOFTWARE API FOR AIC 47:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 48:./include/lib_AT91SAM7.h **** #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20) // ldr, pc, [pc, #-&F20] 49:./include/lib_AT91SAM7.h **** 50:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 51:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_ConfigureIt 52:./include/lib_AT91SAM7.h **** //* \brief Interrupt Handler Initialization 53:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 54:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_AIC_ConfigureIt ( 55:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 56:./include/lib_AT91SAM7.h **** unsigned int irq_id, // \arg interrupt number to initialize 57:./include/lib_AT91SAM7.h **** unsigned int priority, // \arg priority to give to the interrupt 58:./include/lib_AT91SAM7.h **** unsigned int src_type, // \arg activation and sense of activation 59:./include/lib_AT91SAM7.h **** void (*newHandler) () ); // \arg address of the interrupt handler 60:./include/lib_AT91SAM7.h **** 61:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 62:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_EnableIt 63:./include/lib_AT91SAM7.h **** //* \brief Enable corresponding IT number 64:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 65:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_EnableIt ( 66:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 67:./include/lib_AT91SAM7.h **** unsigned int irq_id ) // \arg interrupt number to initialize 68:./include/lib_AT91SAM7.h **** { 69:./include/lib_AT91SAM7.h **** //* Enable the interrupt on the interrupt controller 70:./include/lib_AT91SAM7.h **** pAic->AIC_IECR = 0x1 << irq_id ; 71:./include/lib_AT91SAM7.h **** } 72:./include/lib_AT91SAM7.h **** 73:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 74:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_DisableIt 75:./include/lib_AT91SAM7.h **** //* \brief Disable corresponding IT number 76:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 77:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_DisableIt ( 78:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 79:./include/lib_AT91SAM7.h **** unsigned int irq_id ) // \arg interrupt number to initialize 80:./include/lib_AT91SAM7.h **** { 81:./include/lib_AT91SAM7.h **** unsigned int mask = 0x1 << irq_id; 82:./include/lib_AT91SAM7.h **** //* Disable the interrupt on the interrupt controller 83:./include/lib_AT91SAM7.h **** pAic->AIC_IDCR = mask ; 84:./include/lib_AT91SAM7.h **** //* Clear the interrupt on the Interrupt Controller ( if one is pending ) 85:./include/lib_AT91SAM7.h **** pAic->AIC_ICCR = mask ; 86:./include/lib_AT91SAM7.h **** } 87:./include/lib_AT91SAM7.h **** 88:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 89:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_ClearIt 90:./include/lib_AT91SAM7.h **** //* \brief Clear corresponding IT number 91:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 92:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_ClearIt ( 93:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 94:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg interrupt number to initialize 95:./include/lib_AT91SAM7.h **** { 96:./include/lib_AT91SAM7.h **** //* Clear the interrupt on the Interrupt Controller ( if one is pending ) 97:./include/lib_AT91SAM7.h **** pAic->AIC_ICCR = (0x1 << irq_id); 98:./include/lib_AT91SAM7.h **** } 99:./include/lib_AT91SAM7.h **** 100:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 101:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_AcknowledgeIt 102:./include/lib_AT91SAM7.h **** //* \brief Acknowledge corresponding IT number 103:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 104:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_AcknowledgeIt ( 105:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic) // \arg pointer to the AIC registers 106:./include/lib_AT91SAM7.h **** { 107:./include/lib_AT91SAM7.h **** pAic->AIC_EOICR = pAic->AIC_EOICR; 108:./include/lib_AT91SAM7.h **** } 109:./include/lib_AT91SAM7.h **** 110:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 111:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_SetExceptionVector 112:./include/lib_AT91SAM7.h **** //* \brief Configure vector handler 113:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 114:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_AIC_SetExceptionVector ( 115:./include/lib_AT91SAM7.h **** unsigned int *pVector, // \arg pointer to the AIC registers 116:./include/lib_AT91SAM7.h **** void (*Handler) () ); // \arg Interrupt Handler 117:./include/lib_AT91SAM7.h **** 118:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 119:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_Trig 120:./include/lib_AT91SAM7.h **** //* \brief Trig an IT 121:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 122:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_Trig ( 123:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 124:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg interrupt number 125:./include/lib_AT91SAM7.h **** { 126:./include/lib_AT91SAM7.h **** pAic->AIC_ISCR = (0x1 << irq_id) ; 127:./include/lib_AT91SAM7.h **** } 128:./include/lib_AT91SAM7.h **** 129:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 130:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_IsActive 131:./include/lib_AT91SAM7.h **** //* \brief Test if an IT is active 132:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 133:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_AIC_IsActive ( 134:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 135:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg Interrupt Number 136:./include/lib_AT91SAM7.h **** { 137:./include/lib_AT91SAM7.h **** return (pAic->AIC_ISR & (0x1 << irq_id)); 138:./include/lib_AT91SAM7.h **** } 139:./include/lib_AT91SAM7.h **** 140:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 141:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_IsPending 142:./include/lib_AT91SAM7.h **** //* \brief Test if an IT is pending 143:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 144:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_AIC_IsPending ( 145:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 146:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg Interrupt Number 147:./include/lib_AT91SAM7.h **** { 148:./include/lib_AT91SAM7.h **** return (pAic->AIC_IPR & (0x1 << irq_id)); 149:./include/lib_AT91SAM7.h **** } 150:./include/lib_AT91SAM7.h **** 151:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 152:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_Open 153:./include/lib_AT91SAM7.h **** //* \brief Set exception vectors and AIC registers to default values 154:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 155:./include/lib_AT91SAM7.h **** extern void AT91F_AIC_Open( 156:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 157:./include/lib_AT91SAM7.h **** void (*IrqHandler) (), // \arg Default IRQ vector exception 158:./include/lib_AT91SAM7.h **** void (*FiqHandler) (), // \arg Default FIQ vector exception 159:./include/lib_AT91SAM7.h **** void (*DefaultHandler) (), // \arg Default Handler set in ISR 160:./include/lib_AT91SAM7.h **** void (*SpuriousHandler) (), // \arg Default Spurious Handler 161:./include/lib_AT91SAM7.h **** unsigned int protectMode); // \arg Debug Control Register 162:./include/lib_AT91SAM7.h **** 163:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 164:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PDC 165:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 166:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 167:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetNextRx 168:./include/lib_AT91SAM7.h **** //* \brief Set the next receive transfer descriptor 169:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 170:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetNextRx ( 171:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller 172:./include/lib_AT91SAM7.h **** unsigned char *address,// \arg address to the next bloc to be received 173:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be received 174:./include/lib_AT91SAM7.h **** { 26 .loc 1 174 0 27 .cfi_startproc 28 @ Function supports interworking. 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 .LVL0: 175:./include/lib_AT91SAM7.h **** pPDC->PDC_RNPR = (unsigned int) address; 33 .loc 1 175 0 34 0000 101080E5 str r1, [r0, #16] 176:./include/lib_AT91SAM7.h **** pPDC->PDC_RNCR = bytes; 35 .loc 1 176 0 36 0004 142080E5 str r2, [r0, #20] 177:./include/lib_AT91SAM7.h **** } 37 .loc 1 177 0 38 0008 1EFF2FE1 bx lr 39 .cfi_endproc 40 .LFE7: 42 .align 2 44 AT91F_PDC_SetNextTx: 45 .LFB8: 178:./include/lib_AT91SAM7.h **** 179:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 180:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetNextTx 181:./include/lib_AT91SAM7.h **** //* \brief Set the next transmit transfer descriptor 182:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 183:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetNextTx ( 184:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller 185:./include/lib_AT91SAM7.h **** const unsigned char *address,// \arg address to the next bloc to be transmitted 186:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be transmitted 187:./include/lib_AT91SAM7.h **** { 46 .loc 1 187 0 47 .cfi_startproc 48 @ Function supports interworking. 49 @ args = 0, pretend = 0, frame = 0 50 @ frame_needed = 0, uses_anonymous_args = 0 51 @ link register save eliminated. 52 .LVL1: 188:./include/lib_AT91SAM7.h **** pPDC->PDC_TNPR = (unsigned int) address; 53 .loc 1 188 0 54 000c 181080E5 str r1, [r0, #24] 189:./include/lib_AT91SAM7.h **** pPDC->PDC_TNCR = bytes; 55 .loc 1 189 0 56 0010 1C2080E5 str r2, [r0, #28] 190:./include/lib_AT91SAM7.h **** } 57 .loc 1 190 0 58 0014 1EFF2FE1 bx lr 59 .cfi_endproc 60 .LFE8: 62 .align 2 64 AT91F_PDC_SetRx: 65 .LFB9: 191:./include/lib_AT91SAM7.h **** 192:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 193:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetRx 194:./include/lib_AT91SAM7.h **** //* \brief Set the receive transfer descriptor 195:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 196:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetRx ( 197:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller 198:./include/lib_AT91SAM7.h **** unsigned char *address,// \arg address to the next bloc to be received 199:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be received 200:./include/lib_AT91SAM7.h **** { 66 .loc 1 200 0 67 .cfi_startproc 68 @ Function supports interworking. 69 @ args = 0, pretend = 0, frame = 0 70 @ frame_needed = 0, uses_anonymous_args = 0 71 @ link register save eliminated. 72 .LVL2: 201:./include/lib_AT91SAM7.h **** pPDC->PDC_RPR = (unsigned int) address; 73 .loc 1 201 0 74 0018 001080E5 str r1, [r0, #0] 202:./include/lib_AT91SAM7.h **** pPDC->PDC_RCR = bytes; 75 .loc 1 202 0 76 001c 042080E5 str r2, [r0, #4] 203:./include/lib_AT91SAM7.h **** } 77 .loc 1 203 0 78 0020 1EFF2FE1 bx lr 79 .cfi_endproc 80 .LFE9: 82 .align 2 84 AT91F_PDC_SetTx: 85 .LFB10: 204:./include/lib_AT91SAM7.h **** 205:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 206:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetTx 207:./include/lib_AT91SAM7.h **** //* \brief Set the transmit transfer descriptor 208:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 209:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetTx ( 210:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller 211:./include/lib_AT91SAM7.h **** const unsigned char *address,// \arg address to the next bloc to be transmitted 212:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be transmitted 213:./include/lib_AT91SAM7.h **** { 86 .loc 1 213 0 87 .cfi_startproc 88 @ Function supports interworking. 89 @ args = 0, pretend = 0, frame = 0 90 @ frame_needed = 0, uses_anonymous_args = 0 91 @ link register save eliminated. 92 .LVL3: 214:./include/lib_AT91SAM7.h **** pPDC->PDC_TPR = (unsigned int) address; 93 .loc 1 214 0 94 0024 081080E5 str r1, [r0, #8] 215:./include/lib_AT91SAM7.h **** pPDC->PDC_TCR = bytes; 95 .loc 1 215 0 96 0028 0C2080E5 str r2, [r0, #12] 216:./include/lib_AT91SAM7.h **** } 97 .loc 1 216 0 98 002c 1EFF2FE1 bx lr 99 .cfi_endproc 100 .LFE10: 102 .align 2 104 AT91F_PDC_DisableTx: 105 .LFB13: 217:./include/lib_AT91SAM7.h **** 218:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 219:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_EnableTx 220:./include/lib_AT91SAM7.h **** //* \brief Enable transmit 221:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 222:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_EnableTx ( 223:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 224:./include/lib_AT91SAM7.h **** { 225:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTEN; 226:./include/lib_AT91SAM7.h **** } 227:./include/lib_AT91SAM7.h **** 228:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 229:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_EnableRx 230:./include/lib_AT91SAM7.h **** //* \brief Enable receive 231:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 232:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_EnableRx ( 233:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 234:./include/lib_AT91SAM7.h **** { 235:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTEN; 236:./include/lib_AT91SAM7.h **** } 237:./include/lib_AT91SAM7.h **** 238:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 239:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_DisableTx 240:./include/lib_AT91SAM7.h **** //* \brief Disable transmit 241:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 242:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_DisableTx ( 243:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 244:./include/lib_AT91SAM7.h **** { 106 .loc 1 244 0 107 .cfi_startproc 108 @ Function supports interworking. 109 @ args = 0, pretend = 0, frame = 0 110 @ frame_needed = 0, uses_anonymous_args = 0 111 @ link register save eliminated. 112 .LVL4: 245:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTDIS; 113 .loc 1 245 0 114 0030 023CA0E3 mov r3, #512 115 0034 203080E5 str r3, [r0, #32] 246:./include/lib_AT91SAM7.h **** } 116 .loc 1 246 0 117 0038 1EFF2FE1 bx lr 118 .cfi_endproc 119 .LFE13: 121 .align 2 123 AT91F_PDC_DisableRx: 124 .LFB14: 247:./include/lib_AT91SAM7.h **** 248:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 249:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_DisableRx 250:./include/lib_AT91SAM7.h **** //* \brief Disable receive 251:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 252:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_DisableRx ( 253:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 254:./include/lib_AT91SAM7.h **** { 125 .loc 1 254 0 126 .cfi_startproc 127 @ Function supports interworking. 128 @ args = 0, pretend = 0, frame = 0 129 @ frame_needed = 0, uses_anonymous_args = 0 130 @ link register save eliminated. 131 .LVL5: 255:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTDIS; 132 .loc 1 255 0 133 003c 0230A0E3 mov r3, #2 134 0040 203080E5 str r3, [r0, #32] 256:./include/lib_AT91SAM7.h **** } 135 .loc 1 256 0 136 0044 1EFF2FE1 bx lr 137 .cfi_endproc 138 .LFE14: 140 .align 2 142 AT91F_CKGR_GetMainClock: 143 .LFB81: 257:./include/lib_AT91SAM7.h **** 258:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 259:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsTxEmpty 260:./include/lib_AT91SAM7.h **** //* \brief Test if the current transfer descriptor has been sent 261:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 262:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsTxEmpty ( // \return return 1 if transfer is complete 263:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 264:./include/lib_AT91SAM7.h **** { 265:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TCR); 266:./include/lib_AT91SAM7.h **** } 267:./include/lib_AT91SAM7.h **** 268:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 269:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsNextTxEmpty 270:./include/lib_AT91SAM7.h **** //* \brief Test if the next transfer descriptor has been moved to the current td 271:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 272:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsNextTxEmpty ( // \return return 1 if transfer is complete 273:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 274:./include/lib_AT91SAM7.h **** { 275:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TNCR); 276:./include/lib_AT91SAM7.h **** } 277:./include/lib_AT91SAM7.h **** 278:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 279:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsRxEmpty 280:./include/lib_AT91SAM7.h **** //* \brief Test if the current transfer descriptor has been filled 281:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 282:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsRxEmpty ( // \return return 1 if transfer is complete 283:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 284:./include/lib_AT91SAM7.h **** { 285:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RCR); 286:./include/lib_AT91SAM7.h **** } 287:./include/lib_AT91SAM7.h **** 288:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 289:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsNextRxEmpty 290:./include/lib_AT91SAM7.h **** //* \brief Test if the next transfer descriptor has been moved to the current td 291:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 292:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsNextRxEmpty ( // \return return 1 if transfer is complete 293:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller 294:./include/lib_AT91SAM7.h **** { 295:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RNCR); 296:./include/lib_AT91SAM7.h **** } 297:./include/lib_AT91SAM7.h **** 298:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 299:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_Open 300:./include/lib_AT91SAM7.h **** //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX 301:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 302:./include/lib_AT91SAM7.h **** extern void AT91F_PDC_Open(AT91PS_PDC pPDC); // \arg pointer to a PDC controller 303:./include/lib_AT91SAM7.h **** 304:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 305:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_Close 306:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 307:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 308:./include/lib_AT91SAM7.h **** extern void AT91F_PDC_Close(AT91PS_PDC pPDC); // \arg pointer to a PDC controller 309:./include/lib_AT91SAM7.h **** 310:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 311:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SendFrame 312:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 313:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 314:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PDC_SendFrame( 315:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, 316:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer, 317:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 318:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer, 319:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer); 320:./include/lib_AT91SAM7.h **** 321:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 322:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_ReceiveFrame 323:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 324:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 325:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PDC_ReceiveFrame ( 326:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, 327:./include/lib_AT91SAM7.h **** unsigned char *pBuffer, 328:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 329:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer, 330:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer); 331:./include/lib_AT91SAM7.h **** 332:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 333:./include/lib_AT91SAM7.h **** SOFTWARE API FOR DBGU 334:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 335:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 336:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_InterruptEnable 337:./include/lib_AT91SAM7.h **** //* \brief Enable DBGU Interrupt 338:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 339:./include/lib_AT91SAM7.h **** static inline void AT91F_DBGU_InterruptEnable( 340:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller 341:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg dbgu interrupt to be enabled 342:./include/lib_AT91SAM7.h **** { 343:./include/lib_AT91SAM7.h **** pDbgu->DBGU_IER = flag; 344:./include/lib_AT91SAM7.h **** } 345:./include/lib_AT91SAM7.h **** 346:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 347:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_InterruptDisable 348:./include/lib_AT91SAM7.h **** //* \brief Disable DBGU Interrupt 349:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 350:./include/lib_AT91SAM7.h **** static inline void AT91F_DBGU_InterruptDisable( 351:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller 352:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg dbgu interrupt to be disabled 353:./include/lib_AT91SAM7.h **** { 354:./include/lib_AT91SAM7.h **** pDbgu->DBGU_IDR = flag; 355:./include/lib_AT91SAM7.h **** } 356:./include/lib_AT91SAM7.h **** 357:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 358:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_GetInterruptMaskStatus 359:./include/lib_AT91SAM7.h **** //* \brief Return DBGU Interrupt Mask Status 360:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 361:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_DBGU_GetInterruptMaskStatus( // \return DBGU Interrupt Mask Status 362:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu) // \arg pointer to a DBGU controller 363:./include/lib_AT91SAM7.h **** { 364:./include/lib_AT91SAM7.h **** return pDbgu->DBGU_IMR; 365:./include/lib_AT91SAM7.h **** } 366:./include/lib_AT91SAM7.h **** 367:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 368:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_IsInterruptMasked 369:./include/lib_AT91SAM7.h **** //* \brief Test if DBGU Interrupt is Masked 370:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 371:./include/lib_AT91SAM7.h **** static inline int AT91F_DBGU_IsInterruptMasked( 372:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller 373:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 374:./include/lib_AT91SAM7.h **** { 375:./include/lib_AT91SAM7.h **** return (AT91F_DBGU_GetInterruptMaskStatus(pDbgu) & flag); 376:./include/lib_AT91SAM7.h **** } 377:./include/lib_AT91SAM7.h **** 378:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 379:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PIO 380:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 381:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 382:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgPeriph 383:./include/lib_AT91SAM7.h **** //* \brief Enable pins to be drived by peripheral 384:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 385:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgPeriph( 386:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 387:./include/lib_AT91SAM7.h **** unsigned int periphAEnable, // \arg PERIPH A to enable 388:./include/lib_AT91SAM7.h **** unsigned int periphBEnable) // \arg PERIPH B to enable 389:./include/lib_AT91SAM7.h **** 390:./include/lib_AT91SAM7.h **** { 391:./include/lib_AT91SAM7.h **** pPio->PIO_ASR = periphAEnable; 392:./include/lib_AT91SAM7.h **** pPio->PIO_BSR = periphBEnable; 393:./include/lib_AT91SAM7.h **** pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode 394:./include/lib_AT91SAM7.h **** } 395:./include/lib_AT91SAM7.h **** 396:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 397:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgOutput 398:./include/lib_AT91SAM7.h **** //* \brief Enable PIO in output mode 399:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 400:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgOutput( 401:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 402:./include/lib_AT91SAM7.h **** unsigned int pioEnable) // \arg PIO to be enabled 403:./include/lib_AT91SAM7.h **** { 404:./include/lib_AT91SAM7.h **** pPio->PIO_PER = pioEnable; // Set in PIO mode 405:./include/lib_AT91SAM7.h **** pPio->PIO_OER = pioEnable; // Configure in Output 406:./include/lib_AT91SAM7.h **** } 407:./include/lib_AT91SAM7.h **** 408:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 409:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgInput 410:./include/lib_AT91SAM7.h **** //* \brief Enable PIO in input mode 411:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 412:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgInput( 413:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 414:./include/lib_AT91SAM7.h **** unsigned int inputEnable) // \arg PIO to be enabled 415:./include/lib_AT91SAM7.h **** { 416:./include/lib_AT91SAM7.h **** // Disable output 417:./include/lib_AT91SAM7.h **** pPio->PIO_ODR = inputEnable; 418:./include/lib_AT91SAM7.h **** pPio->PIO_PER = inputEnable; 419:./include/lib_AT91SAM7.h **** } 420:./include/lib_AT91SAM7.h **** 421:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 422:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgOpendrain 423:./include/lib_AT91SAM7.h **** //* \brief Configure PIO in open drain 424:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 425:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgOpendrain( 426:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 427:./include/lib_AT91SAM7.h **** unsigned int multiDrvEnable) // \arg pio to be configured in open drain 428:./include/lib_AT91SAM7.h **** { 429:./include/lib_AT91SAM7.h **** // Configure the multi-drive option 430:./include/lib_AT91SAM7.h **** pPio->PIO_MDDR = ~multiDrvEnable; 431:./include/lib_AT91SAM7.h **** pPio->PIO_MDER = multiDrvEnable; 432:./include/lib_AT91SAM7.h **** } 433:./include/lib_AT91SAM7.h **** 434:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 435:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgPullup 436:./include/lib_AT91SAM7.h **** //* \brief Enable pullup on PIO 437:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 438:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgPullup( 439:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 440:./include/lib_AT91SAM7.h **** unsigned int pullupEnable) // \arg enable pullup on PIO 441:./include/lib_AT91SAM7.h **** { 442:./include/lib_AT91SAM7.h **** // Connect or not Pullup 443:./include/lib_AT91SAM7.h **** pPio->PIO_PPUDR = ~pullupEnable; 444:./include/lib_AT91SAM7.h **** pPio->PIO_PPUER = pullupEnable; 445:./include/lib_AT91SAM7.h **** } 446:./include/lib_AT91SAM7.h **** 447:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 448:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgDirectDrive 449:./include/lib_AT91SAM7.h **** //* \brief Enable direct drive on PIO 450:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 451:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgDirectDrive( 452:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 453:./include/lib_AT91SAM7.h **** unsigned int directDrive) // \arg PIO to be configured with direct drive 454:./include/lib_AT91SAM7.h **** 455:./include/lib_AT91SAM7.h **** { 456:./include/lib_AT91SAM7.h **** // Configure the Direct Drive 457:./include/lib_AT91SAM7.h **** pPio->PIO_OWDR = ~directDrive; 458:./include/lib_AT91SAM7.h **** pPio->PIO_OWER = directDrive; 459:./include/lib_AT91SAM7.h **** } 460:./include/lib_AT91SAM7.h **** 461:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 462:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgInputFilter 463:./include/lib_AT91SAM7.h **** //* \brief Enable input filter on input PIO 464:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 465:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgInputFilter( 466:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 467:./include/lib_AT91SAM7.h **** unsigned int inputFilter) // \arg PIO to be configured with input filter 468:./include/lib_AT91SAM7.h **** 469:./include/lib_AT91SAM7.h **** { 470:./include/lib_AT91SAM7.h **** // Configure the Direct Drive 471:./include/lib_AT91SAM7.h **** pPio->PIO_IFDR = ~inputFilter; 472:./include/lib_AT91SAM7.h **** pPio->PIO_IFER = inputFilter; 473:./include/lib_AT91SAM7.h **** } 474:./include/lib_AT91SAM7.h **** 475:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 476:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInput 477:./include/lib_AT91SAM7.h **** //* \brief Return PIO input value 478:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 479:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInput( // \return PIO input 480:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 481:./include/lib_AT91SAM7.h **** { 482:./include/lib_AT91SAM7.h **** return pPio->PIO_PDSR; 483:./include/lib_AT91SAM7.h **** } 484:./include/lib_AT91SAM7.h **** 485:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 486:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInputSet 487:./include/lib_AT91SAM7.h **** //* \brief Test if PIO is input flag is active 488:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 489:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInputSet( 490:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 491:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 492:./include/lib_AT91SAM7.h **** { 493:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInput(pPio) & flag); 494:./include/lib_AT91SAM7.h **** } 495:./include/lib_AT91SAM7.h **** 496:./include/lib_AT91SAM7.h **** 497:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 498:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_SetOutput 499:./include/lib_AT91SAM7.h **** //* \brief Set to 1 output PIO 500:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 501:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_SetOutput( 502:./include/lib_AT91SAM7.h **** const AT91PS_PIO pPio, // \arg pointer to a PIO controller 503:./include/lib_AT91SAM7.h **** const unsigned int flag) // \arg output to be set 504:./include/lib_AT91SAM7.h **** { 505:./include/lib_AT91SAM7.h **** pPio->PIO_SODR = flag; 506:./include/lib_AT91SAM7.h **** } 507:./include/lib_AT91SAM7.h **** 508:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 509:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_ClearOutput 510:./include/lib_AT91SAM7.h **** //* \brief Set to 0 output PIO 511:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 512:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_ClearOutput( 513:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 514:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg output to be cleared 515:./include/lib_AT91SAM7.h **** { 516:./include/lib_AT91SAM7.h **** pPio->PIO_CODR = flag; 517:./include/lib_AT91SAM7.h **** } 518:./include/lib_AT91SAM7.h **** 519:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 520:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_ForceOutput 521:./include/lib_AT91SAM7.h **** //* \brief Force output when Direct drive option is enabled 522:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 523:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_ForceOutput( 524:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 525:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg output to be forced 526:./include/lib_AT91SAM7.h **** { 527:./include/lib_AT91SAM7.h **** pPio->PIO_ODSR = flag; 528:./include/lib_AT91SAM7.h **** } 529:./include/lib_AT91SAM7.h **** 530:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 531:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Enable 532:./include/lib_AT91SAM7.h **** //* \brief Enable PIO 533:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 534:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_Enable( 535:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 536:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be enabled 537:./include/lib_AT91SAM7.h **** { 538:./include/lib_AT91SAM7.h **** pPio->PIO_PER = flag; 539:./include/lib_AT91SAM7.h **** } 540:./include/lib_AT91SAM7.h **** 541:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 542:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Disable 543:./include/lib_AT91SAM7.h **** //* \brief Disable PIO 544:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 545:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_Disable( 546:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 547:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be disabled 548:./include/lib_AT91SAM7.h **** { 549:./include/lib_AT91SAM7.h **** pPio->PIO_PDR = flag; 550:./include/lib_AT91SAM7.h **** } 551:./include/lib_AT91SAM7.h **** 552:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 553:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetStatus 554:./include/lib_AT91SAM7.h **** //* \brief Return PIO Status 555:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 556:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetStatus( // \return PIO Status 557:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 558:./include/lib_AT91SAM7.h **** { 559:./include/lib_AT91SAM7.h **** return pPio->PIO_PSR; 560:./include/lib_AT91SAM7.h **** } 561:./include/lib_AT91SAM7.h **** 562:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 563:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsSet 564:./include/lib_AT91SAM7.h **** //* \brief Test if PIO is Set 565:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 566:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsSet( 567:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 568:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 569:./include/lib_AT91SAM7.h **** { 570:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetStatus(pPio) & flag); 571:./include/lib_AT91SAM7.h **** } 572:./include/lib_AT91SAM7.h **** 573:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 574:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputEnable 575:./include/lib_AT91SAM7.h **** //* \brief Output Enable PIO 576:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 577:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputEnable( 578:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 579:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output to be enabled 580:./include/lib_AT91SAM7.h **** { 581:./include/lib_AT91SAM7.h **** pPio->PIO_OER = flag; 582:./include/lib_AT91SAM7.h **** } 583:./include/lib_AT91SAM7.h **** 584:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 585:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputDisable 586:./include/lib_AT91SAM7.h **** //* \brief Output Enable PIO 587:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 588:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputDisable( 589:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 590:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output to be disabled 591:./include/lib_AT91SAM7.h **** { 592:./include/lib_AT91SAM7.h **** pPio->PIO_ODR = flag; 593:./include/lib_AT91SAM7.h **** } 594:./include/lib_AT91SAM7.h **** 595:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 596:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputStatus 597:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Status 598:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 599:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputStatus( // \return PIO Output Status 600:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 601:./include/lib_AT91SAM7.h **** { 602:./include/lib_AT91SAM7.h **** return pPio->PIO_OSR; 603:./include/lib_AT91SAM7.h **** } 604:./include/lib_AT91SAM7.h **** 605:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 606:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOuputSet 607:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Output is Set 608:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 609:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputSet( 610:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 611:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 612:./include/lib_AT91SAM7.h **** { 613:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputStatus(pPio) & flag); 614:./include/lib_AT91SAM7.h **** } 615:./include/lib_AT91SAM7.h **** 616:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 617:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InputFilterEnable 618:./include/lib_AT91SAM7.h **** //* \brief Input Filter Enable PIO 619:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 620:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InputFilterEnable( 621:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 622:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio input filter to be enabled 623:./include/lib_AT91SAM7.h **** { 624:./include/lib_AT91SAM7.h **** pPio->PIO_IFER = flag; 625:./include/lib_AT91SAM7.h **** } 626:./include/lib_AT91SAM7.h **** 627:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 628:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InputFilterDisable 629:./include/lib_AT91SAM7.h **** //* \brief Input Filter Disable PIO 630:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 631:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InputFilterDisable( 632:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 633:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio input filter to be disabled 634:./include/lib_AT91SAM7.h **** { 635:./include/lib_AT91SAM7.h **** pPio->PIO_IFDR = flag; 636:./include/lib_AT91SAM7.h **** } 637:./include/lib_AT91SAM7.h **** 638:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 639:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInputFilterStatus 640:./include/lib_AT91SAM7.h **** //* \brief Return PIO Input Filter Status 641:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 642:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInputFilterStatus( // \return PIO Input Filter Status 643:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 644:./include/lib_AT91SAM7.h **** { 645:./include/lib_AT91SAM7.h **** return pPio->PIO_IFSR; 646:./include/lib_AT91SAM7.h **** } 647:./include/lib_AT91SAM7.h **** 648:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 649:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInputFilterSet 650:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Input filter is Set 651:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 652:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInputFilterSet( 653:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 654:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 655:./include/lib_AT91SAM7.h **** { 656:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInputFilterStatus(pPio) & flag); 657:./include/lib_AT91SAM7.h **** } 658:./include/lib_AT91SAM7.h **** 659:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 660:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputDataStatus 661:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Data Status 662:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 663:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputDataStatus( // \return PIO Output Data Status 664:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 665:./include/lib_AT91SAM7.h **** { 666:./include/lib_AT91SAM7.h **** return pPio->PIO_ODSR; 667:./include/lib_AT91SAM7.h **** } 668:./include/lib_AT91SAM7.h **** 669:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 670:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InterruptEnable 671:./include/lib_AT91SAM7.h **** //* \brief Enable PIO Interrupt 672:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 673:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InterruptEnable( 674:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 675:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio interrupt to be enabled 676:./include/lib_AT91SAM7.h **** { 677:./include/lib_AT91SAM7.h **** pPio->PIO_IER = flag; 678:./include/lib_AT91SAM7.h **** } 679:./include/lib_AT91SAM7.h **** 680:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 681:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InterruptDisable 682:./include/lib_AT91SAM7.h **** //* \brief Disable PIO Interrupt 683:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 684:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InterruptDisable( 685:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 686:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio interrupt to be disabled 687:./include/lib_AT91SAM7.h **** { 688:./include/lib_AT91SAM7.h **** pPio->PIO_IDR = flag; 689:./include/lib_AT91SAM7.h **** } 690:./include/lib_AT91SAM7.h **** 691:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 692:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInterruptMaskStatus 693:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Mask Status 694:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 695:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status 696:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 697:./include/lib_AT91SAM7.h **** { 698:./include/lib_AT91SAM7.h **** return pPio->PIO_IMR; 699:./include/lib_AT91SAM7.h **** } 700:./include/lib_AT91SAM7.h **** 701:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 702:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInterruptStatus 703:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Status 704:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 705:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInterruptStatus( // \return PIO Interrupt Status 706:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 707:./include/lib_AT91SAM7.h **** { 708:./include/lib_AT91SAM7.h **** return pPio->PIO_ISR; 709:./include/lib_AT91SAM7.h **** } 710:./include/lib_AT91SAM7.h **** 711:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 712:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInterruptMasked 713:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Interrupt is Masked 714:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 715:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInterruptMasked( 716:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 717:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 718:./include/lib_AT91SAM7.h **** { 719:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInterruptMaskStatus(pPio) & flag); 720:./include/lib_AT91SAM7.h **** } 721:./include/lib_AT91SAM7.h **** 722:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 723:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInterruptSet 724:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Interrupt is Set 725:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 726:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInterruptSet( 727:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 728:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 729:./include/lib_AT91SAM7.h **** { 730:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInterruptStatus(pPio) & flag); 731:./include/lib_AT91SAM7.h **** } 732:./include/lib_AT91SAM7.h **** 733:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 734:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_MultiDriverEnable 735:./include/lib_AT91SAM7.h **** //* \brief Multi Driver Enable PIO 736:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 737:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_MultiDriverEnable( 738:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 739:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be enabled 740:./include/lib_AT91SAM7.h **** { 741:./include/lib_AT91SAM7.h **** pPio->PIO_MDER = flag; 742:./include/lib_AT91SAM7.h **** } 743:./include/lib_AT91SAM7.h **** 744:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 745:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_MultiDriverDisable 746:./include/lib_AT91SAM7.h **** //* \brief Multi Driver Disable PIO 747:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 748:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_MultiDriverDisable( 749:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 750:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be disabled 751:./include/lib_AT91SAM7.h **** { 752:./include/lib_AT91SAM7.h **** pPio->PIO_MDDR = flag; 753:./include/lib_AT91SAM7.h **** } 754:./include/lib_AT91SAM7.h **** 755:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 756:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetMultiDriverStatus 757:./include/lib_AT91SAM7.h **** //* \brief Return PIO Multi Driver Status 758:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 759:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetMultiDriverStatus( // \return PIO Multi Driver Status 760:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 761:./include/lib_AT91SAM7.h **** { 762:./include/lib_AT91SAM7.h **** return pPio->PIO_MDSR; 763:./include/lib_AT91SAM7.h **** } 764:./include/lib_AT91SAM7.h **** 765:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 766:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsMultiDriverSet 767:./include/lib_AT91SAM7.h **** //* \brief Test if PIO MultiDriver is Set 768:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 769:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsMultiDriverSet( 770:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 771:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 772:./include/lib_AT91SAM7.h **** { 773:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetMultiDriverStatus(pPio) & flag); 774:./include/lib_AT91SAM7.h **** } 775:./include/lib_AT91SAM7.h **** 776:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 777:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_A_RegisterSelection 778:./include/lib_AT91SAM7.h **** //* \brief PIO A Register Selection 779:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 780:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_A_RegisterSelection( 781:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 782:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio A register selection 783:./include/lib_AT91SAM7.h **** { 784:./include/lib_AT91SAM7.h **** pPio->PIO_ASR = flag; 785:./include/lib_AT91SAM7.h **** } 786:./include/lib_AT91SAM7.h **** 787:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 788:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_B_RegisterSelection 789:./include/lib_AT91SAM7.h **** //* \brief PIO B Register Selection 790:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 791:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_B_RegisterSelection( 792:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 793:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio B register selection 794:./include/lib_AT91SAM7.h **** { 795:./include/lib_AT91SAM7.h **** pPio->PIO_BSR = flag; 796:./include/lib_AT91SAM7.h **** } 797:./include/lib_AT91SAM7.h **** 798:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 799:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Get_AB_RegisterStatus 800:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Status 801:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 802:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_Get_AB_RegisterStatus( // \return PIO AB Register Status 803:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 804:./include/lib_AT91SAM7.h **** { 805:./include/lib_AT91SAM7.h **** return pPio->PIO_ABSR; 806:./include/lib_AT91SAM7.h **** } 807:./include/lib_AT91SAM7.h **** 808:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 809:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsAB_RegisterSet 810:./include/lib_AT91SAM7.h **** //* \brief Test if PIO AB Register is Set 811:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 812:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsAB_RegisterSet( 813:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 814:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 815:./include/lib_AT91SAM7.h **** { 816:./include/lib_AT91SAM7.h **** return (AT91F_PIO_Get_AB_RegisterStatus(pPio) & flag); 817:./include/lib_AT91SAM7.h **** } 818:./include/lib_AT91SAM7.h **** 819:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 820:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputWriteEnable 821:./include/lib_AT91SAM7.h **** //* \brief Output Write Enable PIO 822:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 823:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputWriteEnable( 824:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 825:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output write to be enabled 826:./include/lib_AT91SAM7.h **** { 827:./include/lib_AT91SAM7.h **** pPio->PIO_OWER = flag; 828:./include/lib_AT91SAM7.h **** } 829:./include/lib_AT91SAM7.h **** 830:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 831:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputWriteDisable 832:./include/lib_AT91SAM7.h **** //* \brief Output Write Disable PIO 833:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 834:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputWriteDisable( 835:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 836:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output write to be disabled 837:./include/lib_AT91SAM7.h **** { 838:./include/lib_AT91SAM7.h **** pPio->PIO_OWDR = flag; 839:./include/lib_AT91SAM7.h **** } 840:./include/lib_AT91SAM7.h **** 841:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 842:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputWriteStatus 843:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Write Status 844:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 845:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status 846:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 847:./include/lib_AT91SAM7.h **** { 848:./include/lib_AT91SAM7.h **** return pPio->PIO_OWSR; 849:./include/lib_AT91SAM7.h **** } 850:./include/lib_AT91SAM7.h **** 851:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 852:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOutputWriteSet 853:./include/lib_AT91SAM7.h **** //* \brief Test if PIO OutputWrite is Set 854:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 855:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputWriteSet( 856:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 857:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 858:./include/lib_AT91SAM7.h **** { 859:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputWriteStatus(pPio) & flag); 860:./include/lib_AT91SAM7.h **** } 861:./include/lib_AT91SAM7.h **** 862:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 863:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetCfgPullup 864:./include/lib_AT91SAM7.h **** //* \brief Return PIO Configuration Pullup 865:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 866:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup 867:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller 868:./include/lib_AT91SAM7.h **** { 869:./include/lib_AT91SAM7.h **** return pPio->PIO_PPUSR; 870:./include/lib_AT91SAM7.h **** } 871:./include/lib_AT91SAM7.h **** 872:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 873:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOutputDataStatusSet 874:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Output Data Status is Set 875:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 876:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputDataStatusSet( 877:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 878:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 879:./include/lib_AT91SAM7.h **** { 880:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputDataStatus(pPio) & flag); 881:./include/lib_AT91SAM7.h **** } 882:./include/lib_AT91SAM7.h **** 883:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 884:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsCfgPullupStatusSet 885:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Configuration Pullup Status is Set 886:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 887:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsCfgPullupStatusSet( 888:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller 889:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 890:./include/lib_AT91SAM7.h **** { 891:./include/lib_AT91SAM7.h **** return (~AT91F_PIO_GetCfgPullup(pPio) & flag); 892:./include/lib_AT91SAM7.h **** } 893:./include/lib_AT91SAM7.h **** 894:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 895:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PMC 896:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 897:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 898:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgSysClkEnableReg 899:./include/lib_AT91SAM7.h **** //* \brief Configure the System Clock Enable Register of the PMC controller 900:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 901:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgSysClkEnableReg ( 902:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 903:./include/lib_AT91SAM7.h **** unsigned int mode) 904:./include/lib_AT91SAM7.h **** { 905:./include/lib_AT91SAM7.h **** //* Write to the SCER register 906:./include/lib_AT91SAM7.h **** pPMC->PMC_SCER = mode; 907:./include/lib_AT91SAM7.h **** } 908:./include/lib_AT91SAM7.h **** 909:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 910:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgSysClkDisableReg 911:./include/lib_AT91SAM7.h **** //* \brief Configure the System Clock Disable Register of the PMC controller 912:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 913:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgSysClkDisableReg ( 914:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 915:./include/lib_AT91SAM7.h **** unsigned int mode) 916:./include/lib_AT91SAM7.h **** { 917:./include/lib_AT91SAM7.h **** //* Write to the SCDR register 918:./include/lib_AT91SAM7.h **** pPMC->PMC_SCDR = mode; 919:./include/lib_AT91SAM7.h **** } 920:./include/lib_AT91SAM7.h **** 921:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 922:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetSysClkStatusReg 923:./include/lib_AT91SAM7.h **** //* \brief Return the System Clock Status Register of the PMC controller 924:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 925:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetSysClkStatusReg ( 926:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC // pointer to a CAN controller 927:./include/lib_AT91SAM7.h **** ) 928:./include/lib_AT91SAM7.h **** { 929:./include/lib_AT91SAM7.h **** return pPMC->PMC_SCSR; 930:./include/lib_AT91SAM7.h **** } 931:./include/lib_AT91SAM7.h **** 932:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 933:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnablePeriphClock 934:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock 935:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 936:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnablePeriphClock ( 937:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 938:./include/lib_AT91SAM7.h **** unsigned int periphIds) // \arg IDs of peripherals to enable 939:./include/lib_AT91SAM7.h **** { 940:./include/lib_AT91SAM7.h **** pPMC->PMC_PCER = periphIds; 941:./include/lib_AT91SAM7.h **** } 942:./include/lib_AT91SAM7.h **** 943:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 944:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisablePeriphClock 945:./include/lib_AT91SAM7.h **** //* \brief Disable peripheral clock 946:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 947:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisablePeriphClock ( 948:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 949:./include/lib_AT91SAM7.h **** unsigned int periphIds) // \arg IDs of peripherals to enable 950:./include/lib_AT91SAM7.h **** { 951:./include/lib_AT91SAM7.h **** pPMC->PMC_PCDR = periphIds; 952:./include/lib_AT91SAM7.h **** } 953:./include/lib_AT91SAM7.h **** 954:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 955:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetPeriphClock 956:./include/lib_AT91SAM7.h **** //* \brief Get peripheral clock status 957:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 958:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetPeriphClock ( 959:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // \arg pointer to PMC controller 960:./include/lib_AT91SAM7.h **** { 961:./include/lib_AT91SAM7.h **** return pPMC->PMC_PCSR; 962:./include/lib_AT91SAM7.h **** } 963:./include/lib_AT91SAM7.h **** 964:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 965:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_CfgMainOscillatorReg 966:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator 967:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 968:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgMainOscillatorReg ( 969:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 970:./include/lib_AT91SAM7.h **** unsigned int mode) 971:./include/lib_AT91SAM7.h **** { 972:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR = mode; 973:./include/lib_AT91SAM7.h **** } 974:./include/lib_AT91SAM7.h **** 975:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 976:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainOscillatorReg 977:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator 978:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 979:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainOscillatorReg ( 980:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller 981:./include/lib_AT91SAM7.h **** { 982:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_MOR; 983:./include/lib_AT91SAM7.h **** } 984:./include/lib_AT91SAM7.h **** 985:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 986:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_EnableMainOscillator 987:./include/lib_AT91SAM7.h **** //* \brief Enable the main oscillator 988:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 989:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_EnableMainOscillator( 990:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller 991:./include/lib_AT91SAM7.h **** { 992:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR |= AT91C_CKGR_MOSCEN; 993:./include/lib_AT91SAM7.h **** } 994:./include/lib_AT91SAM7.h **** 995:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 996:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_DisableMainOscillator 997:./include/lib_AT91SAM7.h **** //* \brief Disable the main oscillator 998:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 999:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_DisableMainOscillator ( 1000:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller 1001:./include/lib_AT91SAM7.h **** { 1002:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR &= ~AT91C_CKGR_MOSCEN; 1003:./include/lib_AT91SAM7.h **** } 1004:./include/lib_AT91SAM7.h **** 1005:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1006:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_CfgMainOscStartUpTime 1007:./include/lib_AT91SAM7.h **** //* \brief Cfg MOR Register according to the main osc startup time 1008:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1009:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgMainOscStartUpTime ( 1010:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 1011:./include/lib_AT91SAM7.h **** unsigned int startup_time, // \arg main osc startup time in microsecond (us) 1012:./include/lib_AT91SAM7.h **** unsigned int slowClock) // \arg slowClock in Hz 1013:./include/lib_AT91SAM7.h **** { 1014:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR &= ~AT91C_CKGR_OSCOUNT; 1015:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR |= ((slowClock * startup_time)/(8*1000000)) << 8; 1016:./include/lib_AT91SAM7.h **** } 1017:./include/lib_AT91SAM7.h **** 1018:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1019:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainClockFreqReg 1020:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator 1021:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1022:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainClockFreqReg ( 1023:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller 1024:./include/lib_AT91SAM7.h **** { 1025:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_MCFR; 1026:./include/lib_AT91SAM7.h **** } 1027:./include/lib_AT91SAM7.h **** 1028:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1029:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainClock 1030:./include/lib_AT91SAM7.h **** //* \brief Return Main clock in Hz 1031:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1032:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainClock ( 1033:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 1034:./include/lib_AT91SAM7.h **** unsigned int slowClock) // \arg slowClock in Hz 1035:./include/lib_AT91SAM7.h **** { 144 .loc 1 1035 0 145 .cfi_startproc 146 @ Function supports interworking. 147 @ args = 0, pretend = 0, frame = 0 148 @ frame_needed = 0, uses_anonymous_args = 0 149 @ link register save eliminated. 150 .LVL6: 1036:./include/lib_AT91SAM7.h **** return ((pCKGR->CKGR_MCFR & AT91C_CKGR_MAINF) * slowClock) >> 4; 151 .loc 1 1036 0 152 0048 040090E5 ldr r0, [r0, #4] 153 .LVL7: 154 004c 0008A0E1 mov r0, r0, asl #16 155 0050 2008A0E1 mov r0, r0, lsr #16 156 0054 910000E0 mul r0, r1, r0 1037:./include/lib_AT91SAM7.h **** } 157 .loc 1 1037 0 158 0058 2002A0E1 mov r0, r0, lsr #4 159 005c 1EFF2FE1 bx lr 160 .cfi_endproc 161 .LFE81: 163 .align 2 164 .global AT91F_AIC_ConfigureIt 166 AT91F_AIC_ConfigureIt: 167 .LFB273: 168 .file 2 "lib/lib_AT91SAM7.c" 1:lib/lib_AT91SAM7.c **** //* ---------------------------------------------------------------------------- 2:lib/lib_AT91SAM7.c **** //* ATMEL Microcontroller Software Support - ROUSSET - 3:lib/lib_AT91SAM7.c **** //* ---------------------------------------------------------------------------- 4:lib/lib_AT91SAM7.c **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR 5:lib/lib_AT91SAM7.c **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 6:lib/lib_AT91SAM7.c **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE 7:lib/lib_AT91SAM7.c **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, 8:lib/lib_AT91SAM7.c **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 9:lib/lib_AT91SAM7.c **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 10:lib/lib_AT91SAM7.c **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 11:lib/lib_AT91SAM7.c **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 12:lib/lib_AT91SAM7.c **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 13:lib/lib_AT91SAM7.c **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 14:lib/lib_AT91SAM7.c **** //* ---------------------------------------------------------------------------- 15:lib/lib_AT91SAM7.c **** //* File Name : lib_AT91SAM7S64.h 16:lib/lib_AT91SAM7.c **** //* Object : AT91SAM7S64 inlined functions 17:lib/lib_AT91SAM7.c **** //* Generated : AT91 SW Application Group 08/30/2005 (15:52:59) 18:lib/lib_AT91SAM7.c **** //* 19:lib/lib_AT91SAM7.c **** 20:lib/lib_AT91SAM7.c **** #include 21:lib/lib_AT91SAM7.c **** #include 22:lib/lib_AT91SAM7.c **** #include 23:lib/lib_AT91SAM7.c **** 24:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 25:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_ConfigureIt 26:lib/lib_AT91SAM7.c **** //* \brief Interrupt Handler Initialization 27:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 28:lib/lib_AT91SAM7.c **** unsigned int AT91F_AIC_ConfigureIt ( 29:lib/lib_AT91SAM7.c **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 30:lib/lib_AT91SAM7.c **** unsigned int irq_id, // \arg interrupt number to initialize 31:lib/lib_AT91SAM7.c **** unsigned int priority, // \arg priority to give to the interrupt 32:lib/lib_AT91SAM7.c **** unsigned int src_type, // \arg activation and sense of activation 33:lib/lib_AT91SAM7.c **** void (*newHandler) () ) // \arg address of the interrupt handler 34:lib/lib_AT91SAM7.c **** { 169 .loc 2 34 0 170 .cfi_startproc 171 @ Function supports interworking. 172 @ args = 4, pretend = 0, frame = 0 173 @ frame_needed = 0, uses_anonymous_args = 0 174 @ link register save eliminated. 175 .LVL8: 35:lib/lib_AT91SAM7.c **** unsigned int oldHandler; 36:lib/lib_AT91SAM7.c **** unsigned int mask ; 37:lib/lib_AT91SAM7.c **** 38:lib/lib_AT91SAM7.c **** oldHandler = pAic->AIC_SVR[irq_id]; 39:lib/lib_AT91SAM7.c **** 40:lib/lib_AT91SAM7.c **** mask = 0x1 << irq_id ; 176 .loc 2 40 0 177 0060 01C0A0E3 mov ip, #1 178 0064 1CC1A0E1 mov ip, ip, asl r1 34:lib/lib_AT91SAM7.c **** { 179 .loc 2 34 0 180 0068 70002DE9 stmfd sp!, {r4, r5, r6} 181 .LCFI0: 182 .cfi_def_cfa_offset 12 38:lib/lib_AT91SAM7.c **** oldHandler = pAic->AIC_SVR[irq_id]; 183 .loc 2 38 0 184 006c 204081E2 add r4, r1, #32 185 .cfi_offset 6, -4 186 .cfi_offset 5, -8 187 .cfi_offset 4, -12 188 0070 045190E7 ldr r5, [r0, r4, asl #2] 189 .LVL9: 41:lib/lib_AT91SAM7.c **** //* Disable the interrupt on the interrupt controller 42:lib/lib_AT91SAM7.c **** pAic->AIC_IDCR = mask ; 43:lib/lib_AT91SAM7.c **** //* Save the interrupt handler routine pointer and the interrupt priority 44:lib/lib_AT91SAM7.c **** pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ; 190 .loc 2 44 0 191 0074 0C609DE5 ldr r6, [sp, #12] 45:lib/lib_AT91SAM7.c **** //* Store the Source Mode Register 46:lib/lib_AT91SAM7.c **** pAic->AIC_SMR[irq_id] = src_type | priority ; 192 .loc 2 46 0 193 0078 023083E1 orr r3, r3, r2 194 .LVL10: 42:lib/lib_AT91SAM7.c **** pAic->AIC_IDCR = mask ; 195 .loc 2 42 0 196 007c 24C180E5 str ip, [r0, #292] 44:lib/lib_AT91SAM7.c **** pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ; 197 .loc 2 44 0 198 0080 046180E7 str r6, [r0, r4, asl #2] 199 .loc 2 46 0 200 0084 013180E7 str r3, [r0, r1, asl #2] 47:lib/lib_AT91SAM7.c **** //* Clear the interrupt on the interrupt controller 48:lib/lib_AT91SAM7.c **** pAic->AIC_ICCR = mask ; 201 .loc 2 48 0 202 0088 28C180E5 str ip, [r0, #296] 49:lib/lib_AT91SAM7.c **** 50:lib/lib_AT91SAM7.c **** return oldHandler; 51:lib/lib_AT91SAM7.c **** } 203 .loc 2 51 0 204 008c 0500A0E1 mov r0, r5 205 .LVL11: 206 0090 7000BDE8 ldmfd sp!, {r4, r5, r6} 207 0094 1EFF2FE1 bx lr 208 .cfi_endproc 209 .LFE273: 211 .align 2 212 .global AT91F_AIC_SetExceptionVector 214 AT91F_AIC_SetExceptionVector: 215 .LFB274: 52:lib/lib_AT91SAM7.c **** 53:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 54:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_SetExceptionVector 55:lib/lib_AT91SAM7.c **** //* \brief Configure vector handler 56:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 57:lib/lib_AT91SAM7.c **** unsigned int AT91F_AIC_SetExceptionVector ( 58:lib/lib_AT91SAM7.c **** unsigned int *pVector, // \arg pointer to the AIC registers 59:lib/lib_AT91SAM7.c **** void (*Handler) () ) // \arg Interrupt Handler 60:lib/lib_AT91SAM7.c **** { 216 .loc 2 60 0 217 .cfi_startproc 218 @ Function supports interworking. 219 @ args = 0, pretend = 0, frame = 0 220 @ frame_needed = 0, uses_anonymous_args = 0 221 @ link register save eliminated. 222 .LVL12: 61:lib/lib_AT91SAM7.c **** unsigned int oldVector = *pVector; 62:lib/lib_AT91SAM7.c **** 63:lib/lib_AT91SAM7.c **** if ((unsigned int) Handler == (unsigned int) AT91C_AIC_BRANCH_OPCODE) 223 .loc 2 63 0 224 0098 28209FE5 ldr r2, .L12 60:lib/lib_AT91SAM7.c **** { 225 .loc 2 60 0 226 009c 0030A0E1 mov r3, r0 227 .loc 2 63 0 228 00a0 020051E1 cmp r1, r2 64:lib/lib_AT91SAM7.c **** *pVector = (unsigned int) AT91C_AIC_BRANCH_OPCODE; 65:lib/lib_AT91SAM7.c **** else 66:lib/lib_AT91SAM7.c **** *pVector = (((((unsigned int) Handler) - ((unsigned int) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0x 229 .loc 2 66 0 230 00a4 01206310 rsbne r2, r3, r1 231 00a8 08204212 subne r2, r2, #8 232 00ac 2221A011 movne r2, r2, lsr #2 233 00b0 FF24C213 bicne r2, r2, #-16777216 234 00b4 EA248213 orrne r2, r2, #-369098752 61:lib/lib_AT91SAM7.c **** unsigned int oldVector = *pVector; 235 .loc 2 61 0 236 00b8 000090E5 ldr r0, [r0, #0] 237 .LVL13: 64:lib/lib_AT91SAM7.c **** *pVector = (unsigned int) AT91C_AIC_BRANCH_OPCODE; 238 .loc 2 64 0 239 00bc 00108305 streq r1, [r3, #0] 240 .loc 2 66 0 241 00c0 00208315 strne r2, [r3, #0] 67:lib/lib_AT91SAM7.c **** 68:lib/lib_AT91SAM7.c **** return oldVector; 69:lib/lib_AT91SAM7.c **** } 242 .loc 2 69 0 243 00c4 1EFF2FE1 bx lr 244 .L13: 245 .align 2 246 .L12: 247 00c8 20FF1FE5 .word -450887904 248 .cfi_endproc 249 .LFE274: 251 .align 2 252 .global AT91F_AIC_Open 254 AT91F_AIC_Open: 255 .LFB275: 70:lib/lib_AT91SAM7.c **** 71:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 72:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_Open 73:lib/lib_AT91SAM7.c **** //* \brief Set exception vectors and AIC registers to default values 74:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 75:lib/lib_AT91SAM7.c **** void AT91F_AIC_Open( 76:lib/lib_AT91SAM7.c **** AT91PS_AIC pAic, // \arg pointer to the AIC registers 77:lib/lib_AT91SAM7.c **** void (*IrqHandler) (), // \arg Default IRQ vector exception 78:lib/lib_AT91SAM7.c **** void (*FiqHandler) (), // \arg Default FIQ vector exception 79:lib/lib_AT91SAM7.c **** void (*DefaultHandler) (), // \arg Default Handler set in ISR 80:lib/lib_AT91SAM7.c **** void (*SpuriousHandler) (), // \arg Default Spurious Handler 81:lib/lib_AT91SAM7.c **** unsigned int protectMode) // \arg Debug Control Register 82:lib/lib_AT91SAM7.c **** { 256 .loc 2 82 0 257 .cfi_startproc 258 @ Function supports interworking. 259 @ args = 8, pretend = 0, frame = 0 260 @ frame_needed = 0, uses_anonymous_args = 0 261 .LVL14: 262 00cc F3412DE9 stmfd sp!, {r0, r1, r4, r5, r6, r7, r8, lr} 263 .LCFI1: 264 .cfi_def_cfa_offset 32 265 .loc 2 82 0 266 00d0 0040A0E1 mov r4, r0 267 .cfi_offset 14, -4 268 .cfi_offset 8, -8 269 .cfi_offset 7, -12 270 .cfi_offset 6, -16 271 .cfi_offset 5, -20 272 .cfi_offset 4, -24 273 .cfi_offset 1, -28 274 .cfi_offset 0, -32 275 00d4 0160A0E1 mov r6, r1 276 00d8 0280A0E1 mov r8, r2 277 00dc 0370A0E1 mov r7, r3 83:lib/lib_AT91SAM7.c **** int i; 84:lib/lib_AT91SAM7.c **** 85:lib/lib_AT91SAM7.c **** // Disable all interrupts and set IVR to the default handler 86:lib/lib_AT91SAM7.c **** for (i = 0; i < 32; ++i) { 278 .loc 2 86 0 279 00e0 0050A0E3 mov r5, #0 280 .LVL15: 281 .L15: 282 .LBB4: 283 .LBB6: 81:./include/lib_AT91SAM7.h **** unsigned int mask = 0x1 << irq_id; 284 .loc 1 81 0 discriminator 2 285 00e4 0130A0E3 mov r3, #1 286 00e8 1335A0E1 mov r3, r3, asl r5 287 .LVL16: 288 .LBE6: 289 .LBE4: 87:lib/lib_AT91SAM7.c **** AT91F_AIC_DisableIt(pAic, i); 88:lib/lib_AT91SAM7.c **** AT91F_AIC_ConfigureIt(pAic, i, AT91C_AIC_PRIOR_LOWEST, AT91C_AIC_SRCTYPE_HIGH_LEVEL, DefaultHandl 290 .loc 2 88 0 discriminator 2 291 00ec 0510A0E1 mov r1, r5 292 .LBB8: 293 .LBB5: 83:./include/lib_AT91SAM7.h **** pAic->AIC_IDCR = mask ; 294 .loc 1 83 0 discriminator 2 295 00f0 243184E5 str r3, [r4, #292] 296 .LBE5: 297 .LBE8: 298 .loc 2 88 0 discriminator 2 299 00f4 0400A0E1 mov r0, r4 300 .LBB9: 301 .LBB7: 85:./include/lib_AT91SAM7.h **** pAic->AIC_ICCR = mask ; 302 .loc 1 85 0 discriminator 2 303 00f8 283184E5 str r3, [r4, #296] 304 .LBE7: 305 .LBE9: 306 .loc 2 88 0 discriminator 2 307 00fc 0020A0E3 mov r2, #0 308 0100 4030A0E3 mov r3, #64 309 .LVL17: 86:lib/lib_AT91SAM7.c **** for (i = 0; i < 32; ++i) { 310 .loc 2 86 0 discriminator 2 311 0104 015085E2 add r5, r5, #1 312 .LVL18: 313 .loc 2 88 0 discriminator 2 314 0108 00708DE5 str r7, [sp, #0] 315 010c FEFFFFEB bl AT91F_AIC_ConfigureIt 316 .LVL19: 86:lib/lib_AT91SAM7.c **** for (i = 0; i < 32; ++i) { 317 .loc 2 86 0 discriminator 2 318 0110 200055E3 cmp r5, #32 319 0114 F2FFFF1A bne .L15 89:lib/lib_AT91SAM7.c **** } 90:lib/lib_AT91SAM7.c **** 91:lib/lib_AT91SAM7.c **** // Set the IRQ exception vector 92:lib/lib_AT91SAM7.c **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x18, IrqHandler); 320 .loc 2 92 0 321 0118 0610A0E1 mov r1, r6 322 011c 1800A0E3 mov r0, #24 323 0120 FEFFFFEB bl AT91F_AIC_SetExceptionVector 93:lib/lib_AT91SAM7.c **** // Set the Fast Interrupt exception vector 94:lib/lib_AT91SAM7.c **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x1C, FiqHandler); 324 .loc 2 94 0 325 0124 1C00A0E3 mov r0, #28 326 0128 0810A0E1 mov r1, r8 327 012c FEFFFFEB bl AT91F_AIC_SetExceptionVector 95:lib/lib_AT91SAM7.c **** 96:lib/lib_AT91SAM7.c **** pAic->AIC_SPU = (unsigned int) SpuriousHandler; 328 .loc 2 96 0 329 0130 20309DE5 ldr r3, [sp, #32] 330 0134 343184E5 str r3, [r4, #308] 97:lib/lib_AT91SAM7.c **** pAic->AIC_DCR = protectMode; 331 .loc 2 97 0 332 0138 24309DE5 ldr r3, [sp, #36] 333 013c 383184E5 str r3, [r4, #312] 98:lib/lib_AT91SAM7.c **** } 334 .loc 2 98 0 335 0140 FC41BDE8 ldmfd sp!, {r2, r3, r4, r5, r6, r7, r8, lr} 336 0144 1EFF2FE1 bx lr 337 .cfi_endproc 338 .LFE275: 340 .align 2 341 .global AT91F_PDC_Open 343 AT91F_PDC_Open: 344 .LFB276: 99:lib/lib_AT91SAM7.c **** 100:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 101:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_Open 102:lib/lib_AT91SAM7.c **** //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX 103:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 104:lib/lib_AT91SAM7.c **** void AT91F_PDC_Open(AT91PS_PDC pPDC) // \arg pointer to a PDC controller 105:lib/lib_AT91SAM7.c **** { 345 .loc 2 105 0 346 .cfi_startproc 347 @ Function supports interworking. 348 @ args = 0, pretend = 0, frame = 0 349 @ frame_needed = 0, uses_anonymous_args = 0 350 .LVL20: 351 0148 10402DE9 stmfd sp!, {r4, lr} 352 .LCFI2: 353 .cfi_def_cfa_offset 8 354 .loc 2 105 0 355 014c 0040A0E1 mov r4, r0 356 .cfi_offset 14, -4 357 .cfi_offset 4, -8 106:lib/lib_AT91SAM7.c **** //* Disable the RX and TX PDC transfer requests 107:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableRx(pPDC); 358 .loc 2 107 0 359 0150 B9FFFFEB bl AT91F_PDC_DisableRx 360 .LVL21: 108:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableTx(pPDC); 361 .loc 2 108 0 362 0154 0400A0E1 mov r0, r4 363 0158 B4FFFFEB bl AT91F_PDC_DisableTx 109:lib/lib_AT91SAM7.c **** 110:lib/lib_AT91SAM7.c **** //* Reset all Counter register Next buffer first 111:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, NULL, 0); 364 .loc 2 111 0 365 015c 0010A0E3 mov r1, #0 366 0160 0120A0E1 mov r2, r1 367 0164 0400A0E1 mov r0, r4 368 0168 A7FFFFEB bl AT91F_PDC_SetNextTx 112:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, NULL, 0); 369 .loc 2 112 0 370 016c 0010A0E3 mov r1, #0 371 0170 0120A0E1 mov r2, r1 372 0174 0400A0E1 mov r0, r4 373 0178 A0FFFFEB bl AT91F_PDC_SetNextRx 113:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, NULL, 0); 374 .loc 2 113 0 375 017c 0010A0E3 mov r1, #0 376 0180 0120A0E1 mov r2, r1 377 0184 0400A0E1 mov r0, r4 378 0188 A5FFFFEB bl AT91F_PDC_SetTx 114:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, NULL, 0); 379 .loc 2 114 0 380 018c 0010A0E3 mov r1, #0 381 0190 0400A0E1 mov r0, r4 382 0194 0120A0E1 mov r2, r1 383 0198 9EFFFFEB bl AT91F_PDC_SetRx 384 .LVL22: 385 .LBB14: 386 .LBB15: 235:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTEN; 387 .loc 1 235 0 388 019c 0130A0E3 mov r3, #1 389 01a0 203084E5 str r3, [r4, #32] 390 .LVL23: 391 .LBE15: 392 .LBE14: 393 .LBB16: 394 .LBB17: 225:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTEN; 395 .loc 1 225 0 396 01a4 FF3083E2 add r3, r3, #255 397 01a8 203084E5 str r3, [r4, #32] 398 .LBE17: 399 .LBE16: 115:lib/lib_AT91SAM7.c **** 116:lib/lib_AT91SAM7.c **** //* Enable the RX and TX PDC transfer requests 117:lib/lib_AT91SAM7.c **** AT91F_PDC_EnableRx(pPDC); 118:lib/lib_AT91SAM7.c **** AT91F_PDC_EnableTx(pPDC); 119:lib/lib_AT91SAM7.c **** } 400 .loc 2 119 0 401 01ac 1040BDE8 ldmfd sp!, {r4, lr} 402 01b0 1EFF2FE1 bx lr 403 .cfi_endproc 404 .LFE276: 406 .align 2 407 .global AT91F_PDC_Close 409 AT91F_PDC_Close: 410 .LFB277: 120:lib/lib_AT91SAM7.c **** 121:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 122:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_Close 123:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 124:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 125:lib/lib_AT91SAM7.c **** void AT91F_PDC_Close(AT91PS_PDC pPDC) // \arg pointer to a PDC controller 126:lib/lib_AT91SAM7.c **** { 411 .loc 2 126 0 412 .cfi_startproc 413 @ Function supports interworking. 414 @ args = 0, pretend = 0, frame = 0 415 @ frame_needed = 0, uses_anonymous_args = 0 416 .LVL24: 417 01b4 10402DE9 stmfd sp!, {r4, lr} 418 .LCFI3: 419 .cfi_def_cfa_offset 8 420 .loc 2 126 0 421 01b8 0040A0E1 mov r4, r0 422 .cfi_offset 14, -4 423 .cfi_offset 4, -8 127:lib/lib_AT91SAM7.c **** //* Disable the RX and TX PDC transfer requests 128:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableRx(pPDC); 424 .loc 2 128 0 425 01bc 9EFFFFEB bl AT91F_PDC_DisableRx 426 .LVL25: 129:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableTx(pPDC); 427 .loc 2 129 0 428 01c0 0400A0E1 mov r0, r4 429 01c4 99FFFFEB bl AT91F_PDC_DisableTx 130:lib/lib_AT91SAM7.c **** 131:lib/lib_AT91SAM7.c **** //* Reset all Counter register Next buffer first 132:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, NULL, 0); 430 .loc 2 132 0 431 01c8 0010A0E3 mov r1, #0 432 01cc 0400A0E1 mov r0, r4 433 01d0 0120A0E1 mov r2, r1 434 01d4 8CFFFFEB bl AT91F_PDC_SetNextTx 133:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, NULL, 0); 435 .loc 2 133 0 436 01d8 0010A0E3 mov r1, #0 437 01dc 0400A0E1 mov r0, r4 438 01e0 0120A0E1 mov r2, r1 439 01e4 85FFFFEB bl AT91F_PDC_SetNextRx 134:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, NULL, 0); 440 .loc 2 134 0 441 01e8 0010A0E3 mov r1, #0 442 01ec 0400A0E1 mov r0, r4 443 01f0 0120A0E1 mov r2, r1 444 01f4 8AFFFFEB bl AT91F_PDC_SetTx 135:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, NULL, 0); 445 .loc 2 135 0 446 01f8 0010A0E3 mov r1, #0 447 01fc 0400A0E1 mov r0, r4 448 0200 0120A0E1 mov r2, r1 136:lib/lib_AT91SAM7.c **** 137:lib/lib_AT91SAM7.c **** } 449 .loc 2 137 0 450 0204 1040BDE8 ldmfd sp!, {r4, lr} 135:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, NULL, 0); 451 .loc 2 135 0 452 0208 82FFFFEA b AT91F_PDC_SetRx 453 .cfi_endproc 454 .LFE277: 456 .align 2 457 .global AT91F_PDC_SendFrame 459 AT91F_PDC_SendFrame: 460 .LFB278: 138:lib/lib_AT91SAM7.c **** 139:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 140:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_SendFrame 141:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 142:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 143:lib/lib_AT91SAM7.c **** unsigned int AT91F_PDC_SendFrame( 144:lib/lib_AT91SAM7.c **** AT91PS_PDC pPDC, 145:lib/lib_AT91SAM7.c **** const unsigned char *pBuffer, 146:lib/lib_AT91SAM7.c **** unsigned int szBuffer, 147:lib/lib_AT91SAM7.c **** const unsigned char *pNextBuffer, 148:lib/lib_AT91SAM7.c **** unsigned int szNextBuffer ) 149:lib/lib_AT91SAM7.c **** { 461 .loc 2 149 0 462 .cfi_startproc 463 @ Function supports interworking. 464 @ args = 4, pretend = 0, frame = 0 465 @ frame_needed = 0, uses_anonymous_args = 0 466 .LVL26: 467 020c 38402DE9 stmfd sp!, {r3, r4, r5, lr} 468 .LCFI4: 469 .cfi_def_cfa_offset 16 470 .loc 2 149 0 471 0210 0350A0E1 mov r5, r3 472 .cfi_offset 14, -4 473 .cfi_offset 5, -8 474 .cfi_offset 4, -12 475 .cfi_offset 3, -16 476 .LBB22: 477 .LBB23: 265:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TCR); 478 .loc 1 265 0 479 0214 0C3090E5 ldr r3, [r0, #12] 480 .LVL27: 481 .LBE23: 482 .LBE22: 150:lib/lib_AT91SAM7.c **** if (AT91F_PDC_IsTxEmpty(pPDC)) { 483 .loc 2 150 0 484 0218 000053E3 cmp r3, #0 149:lib/lib_AT91SAM7.c **** { 485 .loc 2 149 0 486 021c 0040A0E1 mov r4, r0 487 .loc 2 150 0 488 0220 0600001A bne .L19 489 .LVL28: 151:lib/lib_AT91SAM7.c **** //* Buffer and next buffer can be initialized 152:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, pBuffer, szBuffer); 490 .loc 2 152 0 491 0224 7EFFFFEB bl AT91F_PDC_SetTx 492 .LVL29: 153:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, pNextBuffer, szNextBuffer); 493 .loc 2 153 0 494 0228 0400A0E1 mov r0, r4 495 022c 0510A0E1 mov r1, r5 496 0230 10209DE5 ldr r2, [sp, #16] 497 0234 74FFFFEB bl AT91F_PDC_SetNextTx 154:lib/lib_AT91SAM7.c **** return 2; 498 .loc 2 154 0 499 0238 0200A0E3 mov r0, #2 500 023c 050000EA b .L20 501 .LVL30: 502 .L19: 503 .LBB24: 504 .LBB25: 275:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TNCR); 505 .loc 1 275 0 506 0240 1C3090E5 ldr r3, [r0, #28] 507 .LBE25: 508 .LBE24: 155:lib/lib_AT91SAM7.c **** } 156:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextTxEmpty(pPDC)) { 509 .loc 2 156 0 510 0244 000053E3 cmp r3, #0 157:lib/lib_AT91SAM7.c **** //* Only one buffer can be initialized 158:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer); 159:lib/lib_AT91SAM7.c **** return 1; 160:lib/lib_AT91SAM7.c **** } 161:lib/lib_AT91SAM7.c **** else { 162:lib/lib_AT91SAM7.c **** //* All buffer are in use... 163:lib/lib_AT91SAM7.c **** return 0; 511 .loc 2 163 0 512 0248 0000A013 movne r0, #0 156:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextTxEmpty(pPDC)) { 513 .loc 2 156 0 514 024c 0100001A bne .L20 158:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer); 515 .loc 2 158 0 516 0250 6DFFFFEB bl AT91F_PDC_SetNextTx 517 .LVL31: 159:lib/lib_AT91SAM7.c **** return 1; 518 .loc 2 159 0 519 0254 0100A0E3 mov r0, #1 520 .LVL32: 521 .L20: 164:lib/lib_AT91SAM7.c **** } 165:lib/lib_AT91SAM7.c **** } 522 .loc 2 165 0 523 0258 3840BDE8 ldmfd sp!, {r3, r4, r5, lr} 524 025c 1EFF2FE1 bx lr 525 .cfi_endproc 526 .LFE278: 528 .align 2 529 .global AT91F_PDC_ReceiveFrame 531 AT91F_PDC_ReceiveFrame: 532 .LFB279: 166:lib/lib_AT91SAM7.c **** 167:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 168:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_ReceiveFrame 169:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors 170:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 171:lib/lib_AT91SAM7.c **** unsigned int AT91F_PDC_ReceiveFrame ( 172:lib/lib_AT91SAM7.c **** AT91PS_PDC pPDC, 173:lib/lib_AT91SAM7.c **** unsigned char *pBuffer, 174:lib/lib_AT91SAM7.c **** unsigned int szBuffer, 175:lib/lib_AT91SAM7.c **** unsigned char *pNextBuffer, 176:lib/lib_AT91SAM7.c **** unsigned int szNextBuffer ) 177:lib/lib_AT91SAM7.c **** { 533 .loc 2 177 0 534 .cfi_startproc 535 @ Function supports interworking. 536 @ args = 4, pretend = 0, frame = 0 537 @ frame_needed = 0, uses_anonymous_args = 0 538 .LVL33: 539 0260 38402DE9 stmfd sp!, {r3, r4, r5, lr} 540 .LCFI5: 541 .cfi_def_cfa_offset 16 542 .loc 2 177 0 543 0264 0350A0E1 mov r5, r3 544 .cfi_offset 14, -4 545 .cfi_offset 5, -8 546 .cfi_offset 4, -12 547 .cfi_offset 3, -16 548 .LBB30: 549 .LBB31: 285:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RCR); 550 .loc 1 285 0 551 0268 043090E5 ldr r3, [r0, #4] 552 .LVL34: 553 .LBE31: 554 .LBE30: 178:lib/lib_AT91SAM7.c **** if (AT91F_PDC_IsRxEmpty(pPDC)) { 555 .loc 2 178 0 556 026c 000053E3 cmp r3, #0 177:lib/lib_AT91SAM7.c **** { 557 .loc 2 177 0 558 0270 0040A0E1 mov r4, r0 559 .loc 2 178 0 560 0274 0600001A bne .L23 561 .LVL35: 179:lib/lib_AT91SAM7.c **** //* Buffer and next buffer can be initialized 180:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer); 562 .loc 2 180 0 563 0278 66FFFFEB bl AT91F_PDC_SetRx 564 .LVL36: 181:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer); 565 .loc 2 181 0 566 027c 0400A0E1 mov r0, r4 567 0280 0510A0E1 mov r1, r5 568 0284 10209DE5 ldr r2, [sp, #16] 569 0288 5CFFFFEB bl AT91F_PDC_SetNextRx 182:lib/lib_AT91SAM7.c **** return 2; 570 .loc 2 182 0 571 028c 0200A0E3 mov r0, #2 572 0290 050000EA b .L24 573 .LVL37: 574 .L23: 575 .LBB32: 576 .LBB33: 295:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RNCR); 577 .loc 1 295 0 578 0294 143090E5 ldr r3, [r0, #20] 579 .LBE33: 580 .LBE32: 183:lib/lib_AT91SAM7.c **** } 184:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextRxEmpty(pPDC)) { 581 .loc 2 184 0 582 0298 000053E3 cmp r3, #0 185:lib/lib_AT91SAM7.c **** //* Only one buffer can be initialized 186:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer); 187:lib/lib_AT91SAM7.c **** return 1; 188:lib/lib_AT91SAM7.c **** } 189:lib/lib_AT91SAM7.c **** else { 190:lib/lib_AT91SAM7.c **** //* All buffer are in use... 191:lib/lib_AT91SAM7.c **** return 0; 583 .loc 2 191 0 584 029c 0000A013 movne r0, #0 184:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextRxEmpty(pPDC)) { 585 .loc 2 184 0 586 02a0 0100001A bne .L24 186:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer); 587 .loc 2 186 0 588 02a4 55FFFFEB bl AT91F_PDC_SetNextRx 589 .LVL38: 187:lib/lib_AT91SAM7.c **** return 1; 590 .loc 2 187 0 591 02a8 0100A0E3 mov r0, #1 592 .LVL39: 593 .L24: 192:lib/lib_AT91SAM7.c **** } 193:lib/lib_AT91SAM7.c **** } 594 .loc 2 193 0 595 02ac 3840BDE8 ldmfd sp!, {r3, r4, r5, lr} 596 02b0 1EFF2FE1 bx lr 597 .cfi_endproc 598 .LFE279: 600 .global __aeabi_uidiv 601 .align 2 602 .global AT91F_PMC_GetMasterClock 604 AT91F_PMC_GetMasterClock: 605 .LFB280: 194:lib/lib_AT91SAM7.c **** 195:lib/lib_AT91SAM7.c **** //*------------------------------------------------------------------------------ 196:lib/lib_AT91SAM7.c **** //* \fn AT91F_PMC_GetMasterClock 197:lib/lib_AT91SAM7.c **** //* \brief Return master clock in Hz which correponds to processor clock for ARM7 198:lib/lib_AT91SAM7.c **** //*------------------------------------------------------------------------------ 199:lib/lib_AT91SAM7.c **** unsigned int AT91F_PMC_GetMasterClock ( 200:lib/lib_AT91SAM7.c **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 201:lib/lib_AT91SAM7.c **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 202:lib/lib_AT91SAM7.c **** unsigned int slowClock) // \arg slowClock in Hz 203:lib/lib_AT91SAM7.c **** { 606 .loc 2 203 0 607 .cfi_startproc 608 @ Function supports interworking. 609 @ args = 0, pretend = 0, frame = 0 610 @ frame_needed = 0, uses_anonymous_args = 0 611 .LVL40: 612 02b4 38402DE9 stmfd sp!, {r3, r4, r5, lr} 613 .LCFI6: 614 .cfi_def_cfa_offset 16 615 .loc 2 203 0 616 02b8 0030A0E1 mov r3, r0 617 .cfi_offset 14, -4 618 .cfi_offset 5, -8 619 .cfi_offset 4, -12 620 .cfi_offset 3, -16 204:lib/lib_AT91SAM7.c **** unsigned int reg = pPMC->PMC_MCKR; 621 .loc 2 204 0 622 02bc 303093E5 ldr r3, [r3, #48] 623 .LVL41: 203:lib/lib_AT91SAM7.c **** { 624 .loc 2 203 0 625 02c0 0100A0E1 mov r0, r1 626 .LVL42: 205:lib/lib_AT91SAM7.c **** unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2)); 627 .loc 2 205 0 628 02c4 1C4003E2 and r4, r3, #28 629 02c8 0110A0E3 mov r1, #1 630 .LVL43: 206:lib/lib_AT91SAM7.c **** unsigned int pllDivider, pllMultiplier; 207:lib/lib_AT91SAM7.c **** 208:lib/lib_AT91SAM7.c **** switch (reg & AT91C_PMC_CSS) { 631 .loc 2 208 0 632 02cc 033003E2 and r3, r3, #3 633 .LVL44: 205:lib/lib_AT91SAM7.c **** unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2)); 634 .loc 2 205 0 635 02d0 2441A0E1 mov r4, r4, lsr #2 636 .loc 2 208 0 637 02d4 010053E1 cmp r3, r1 205:lib/lib_AT91SAM7.c **** unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2)); 638 .loc 2 205 0 639 02d8 1144A0E1 mov r4, r1, asl r4 640 .LVL45: 641 .loc 2 208 0 642 02dc 0500000A beq .L29 209:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_SLOW_CLK: // Slow clock selected 210:lib/lib_AT91SAM7.c **** return slowClock / prescaler; 643 .loc 2 210 0 644 02e0 0200A031 movcc r0, r2 645 .LVL46: 208:lib/lib_AT91SAM7.c **** switch (reg & AT91C_PMC_CSS) { 646 .loc 2 208 0 647 02e4 1000003A bcc .L33 648 02e8 030053E3 cmp r3, #3 211:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_MAIN_CLK: // Main clock is selected 212:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler; 213:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_PLL_CLK: // PLLB clock is selected 214:lib/lib_AT91SAM7.c **** reg = pCKGR->CKGR_PLLR; 215:lib/lib_AT91SAM7.c **** pllDivider = (reg & AT91C_CKGR_DIV); 216:lib/lib_AT91SAM7.c **** pllMultiplier = ((reg & AT91C_CKGR_MUL) >> 16) + 1; 217:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler; 218:lib/lib_AT91SAM7.c **** } 219:lib/lib_AT91SAM7.c **** return 0; 649 .loc 2 219 0 650 02ec 0000A013 movne r0, #0 208:lib/lib_AT91SAM7.c **** switch (reg & AT91C_PMC_CSS) { 651 .loc 2 208 0 652 02f0 0F00001A bne .L27 653 02f4 020000EA b .L34 654 .LVL47: 655 .L29: 212:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler; 656 .loc 2 212 0 657 02f8 0210A0E1 mov r1, r2 658 02fc 51FFFFEB bl AT91F_CKGR_GetMainClock 659 .LVL48: 660 0300 090000EA b .L33 661 .LVL49: 662 .L34: 214:lib/lib_AT91SAM7.c **** reg = pCKGR->CKGR_PLLR; 663 .loc 2 214 0 664 0304 0C5090E5 ldr r5, [r0, #12] 665 .LVL50: 217:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler; 666 .loc 2 217 0 667 0308 0210A0E1 mov r1, r2 668 030c 4DFFFFEB bl AT91F_CKGR_GetMainClock 669 .LVL51: 215:lib/lib_AT91SAM7.c **** pllDivider = (reg & AT91C_CKGR_DIV); 670 .loc 2 215 0 671 0310 FF1005E2 and r1, r5, #255 217:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler; 672 .loc 2 217 0 673 0314 FEFFFFEB bl __aeabi_uidiv 216:lib/lib_AT91SAM7.c **** pllMultiplier = ((reg & AT91C_CKGR_MUL) >> 16) + 1; 674 .loc 2 216 0 675 0318 1C309FE5 ldr r3, .L35 676 031c 033005E0 and r3, r5, r3 677 0320 2338A0E1 mov r3, r3, lsr #16 678 0324 013083E2 add r3, r3, #1 217:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler; 679 .loc 2 217 0 680 0328 930000E0 mul r0, r3, r0 681 .LVL52: 682 .L33: 683 032c 0410A0E1 mov r1, r4 684 0330 FEFFFFEB bl __aeabi_uidiv 685 .L27: 220:lib/lib_AT91SAM7.c **** } 686 .loc 2 220 0 687 0334 3840BDE8 ldmfd sp!, {r3, r4, r5, lr} 688 0338 1EFF2FE1 bx lr 689 .L36: 690 .align 2 691 .L35: 692 033c 0000FF07 .word 134152192 693 .cfi_endproc 694 .LFE280: 696 .align 2 697 .global AT91F_RTTReadValue 699 AT91F_RTTReadValue: 700 .LFB281: 221:lib/lib_AT91SAM7.c **** 222:lib/lib_AT91SAM7.c **** //*-------------------------------------------------------------------------------------- 223:lib/lib_AT91SAM7.c **** //* \fn AT91F_RTT_ReadValue() 224:lib/lib_AT91SAM7.c **** //* \brief Read the RTT value 225:lib/lib_AT91SAM7.c **** //*-------------------------------------------------------------------------------------- 226:lib/lib_AT91SAM7.c **** unsigned int AT91F_RTTReadValue(AT91PS_RTTC pRTTC) 227:lib/lib_AT91SAM7.c **** { 701 .loc 2 227 0 702 .cfi_startproc 703 @ Function supports interworking. 704 @ args = 0, pretend = 0, frame = 8 705 @ frame_needed = 0, uses_anonymous_args = 0 706 @ link register save eliminated. 707 .LVL53: 708 0340 08D04DE2 sub sp, sp, #8 709 .LCFI7: 710 .cfi_def_cfa_offset 8 711 .LVL54: 712 .L38: 228:lib/lib_AT91SAM7.c **** register volatile unsigned int val1,val2; 229:lib/lib_AT91SAM7.c **** do 230:lib/lib_AT91SAM7.c **** { 231:lib/lib_AT91SAM7.c **** val1 = pRTTC->RTTC_RTVR; 713 .loc 2 231 0 discriminator 1 714 0344 083090E5 ldr r3, [r0, #8] 715 .LVL55: 716 0348 04308DE5 str r3, [sp, #4] 232:lib/lib_AT91SAM7.c **** val2 = pRTTC->RTTC_RTVR; 717 .loc 2 232 0 discriminator 1 718 034c 083090E5 ldr r3, [r0, #8] 719 .LVL56: 720 0350 00308DE5 str r3, [sp, #0] 233:lib/lib_AT91SAM7.c **** } 234:lib/lib_AT91SAM7.c **** while(val1 != val2); 721 .loc 2 234 0 discriminator 1 722 0354 04209DE5 ldr r2, [sp, #4] 723 0358 00309DE5 ldr r3, [sp, #0] 724 .LVL57: 725 035c 030052E1 cmp r2, r3 726 0360 F7FFFF1A bne .L38 235:lib/lib_AT91SAM7.c **** return(val1); 727 .loc 2 235 0 728 0364 04009DE5 ldr r0, [sp, #4] 729 .LVL58: 236:lib/lib_AT91SAM7.c **** } 730 .loc 2 236 0 731 0368 08D08DE2 add sp, sp, #8 732 036c 1EFF2FE1 bx lr 733 .cfi_endproc 734 .LFE281: 736 .align 2 737 .global AT91F_SPI_Close 739 AT91F_SPI_Close: 740 .LFB282: 237:lib/lib_AT91SAM7.c **** 238:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 239:lib/lib_AT91SAM7.c **** //* \fn AT91F_SPI_Close 240:lib/lib_AT91SAM7.c **** //* \brief Close SPI: disable IT disable transfert, close PDC 241:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 242:lib/lib_AT91SAM7.c **** void AT91F_SPI_Close(AT91PS_SPI pSPI) // \arg pointer to a SPI controller 243:lib/lib_AT91SAM7.c **** { 741 .loc 2 243 0 742 .cfi_startproc 743 @ Function supports interworking. 744 @ args = 0, pretend = 0, frame = 0 745 @ frame_needed = 0, uses_anonymous_args = 0 746 .LVL59: 244:lib/lib_AT91SAM7.c **** //* Reset all the Chip Select register 245:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[0] = 0 ; 747 .loc 2 245 0 748 0370 0030A0E3 mov r3, #0 243:lib/lib_AT91SAM7.c **** { 749 .loc 2 243 0 750 0374 10402DE9 stmfd sp!, {r4, lr} 751 .LCFI8: 752 .cfi_def_cfa_offset 8 753 .loc 2 245 0 754 0378 303080E5 str r3, [r0, #48] 246:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[1] = 0 ; 755 .loc 2 246 0 756 037c 343080E5 str r3, [r0, #52] 247:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[2] = 0 ; 757 .loc 2 247 0 758 0380 383080E5 str r3, [r0, #56] 248:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[3] = 0 ; 759 .loc 2 248 0 760 0384 3C3080E5 str r3, [r0, #60] 249:lib/lib_AT91SAM7.c **** 250:lib/lib_AT91SAM7.c **** //* Reset the SPI mode 251:lib/lib_AT91SAM7.c **** pSPI->SPI_MR = 0 ; 761 .loc 2 251 0 762 0388 043080E5 str r3, [r0, #4] 252:lib/lib_AT91SAM7.c **** 253:lib/lib_AT91SAM7.c **** //* Disable all interrupts 254:lib/lib_AT91SAM7.c **** pSPI->SPI_IDR = 0xFFFFFFFF ; 763 .loc 2 254 0 764 038c 0030E0E3 mvn r3, #0 765 0390 183080E5 str r3, [r0, #24] 243:lib/lib_AT91SAM7.c **** { 766 .loc 2 243 0 767 0394 0040A0E1 mov r4, r0 768 .cfi_offset 14, -4 769 .cfi_offset 4, -8 255:lib/lib_AT91SAM7.c **** 256:lib/lib_AT91SAM7.c **** //* Abort the Peripheral Data Transfers 257:lib/lib_AT91SAM7.c **** AT91F_PDC_Close((AT91PS_PDC) &(pSPI->SPI_RPR)); 770 .loc 2 257 0 771 0398 010C80E2 add r0, r0, #256 772 .LVL60: 773 039c FEFFFFEB bl AT91F_PDC_Close 258:lib/lib_AT91SAM7.c **** 259:lib/lib_AT91SAM7.c **** //* Disable receiver and transmitter and stop any activity immediately 260:lib/lib_AT91SAM7.c **** pSPI->SPI_CR = AT91C_SPI_SPIDIS; 774 .loc 2 260 0 775 03a0 0230A0E3 mov r3, #2 776 03a4 003084E5 str r3, [r4, #0] 261:lib/lib_AT91SAM7.c **** } 777 .loc 2 261 0 778 03a8 1040BDE8 ldmfd sp!, {r4, lr} 779 03ac 1EFF2FE1 bx lr 780 .cfi_endproc 781 .LFE282: 783 .align 2 784 .global AT91F_ADC_CfgTimings 786 AT91F_ADC_CfgTimings: 787 .LFB283: 262:lib/lib_AT91SAM7.c **** 263:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 264:lib/lib_AT91SAM7.c **** //* \fn AT91F_ADC_CfgTimings 265:lib/lib_AT91SAM7.c **** //* \brief Configure the different necessary timings of the ADC controller 266:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 267:lib/lib_AT91SAM7.c **** void AT91F_ADC_CfgTimings ( 268:lib/lib_AT91SAM7.c **** AT91PS_ADC pADC, // pointer to a ADC controller 269:lib/lib_AT91SAM7.c **** unsigned int mck_clock, // in MHz 270:lib/lib_AT91SAM7.c **** unsigned int adc_clock, // in MHz 271:lib/lib_AT91SAM7.c **** unsigned int startup_time, // in us 272:lib/lib_AT91SAM7.c **** unsigned int sample_and_hold_time) // in ns 273:lib/lib_AT91SAM7.c **** { 788 .loc 2 273 0 789 .cfi_startproc 790 @ Function supports interworking. 791 @ args = 4, pretend = 0, frame = 0 792 @ frame_needed = 0, uses_anonymous_args = 0 793 .LVL61: 794 03b0 F8402DE9 stmfd sp!, {r3, r4, r5, r6, r7, lr} 795 .LCFI9: 796 .cfi_def_cfa_offset 24 797 .loc 2 273 0 798 03b4 0040A0E1 mov r4, r0 799 .cfi_offset 14, -4 800 .cfi_offset 7, -8 801 .cfi_offset 6, -12 802 .cfi_offset 5, -16 803 .cfi_offset 4, -20 804 .cfi_offset 3, -24 274:lib/lib_AT91SAM7.c **** unsigned int prescal,startup,shtim; 275:lib/lib_AT91SAM7.c **** 276:lib/lib_AT91SAM7.c **** prescal = mck_clock/(2*adc_clock) - 1; 805 .loc 2 276 0 806 03b8 0100A0E1 mov r0, r1 807 .LVL62: 808 03bc 8210A0E1 mov r1, r2, asl #1 809 .LVL63: 277:lib/lib_AT91SAM7.c **** startup = adc_clock*startup_time/8 - 1; 810 .loc 2 277 0 811 03c0 920307E0 mul r7, r2, r3 273:lib/lib_AT91SAM7.c **** { 812 .loc 2 273 0 813 03c4 0250A0E1 mov r5, r2 276:lib/lib_AT91SAM7.c **** prescal = mck_clock/(2*adc_clock) - 1; 814 .loc 2 276 0 815 03c8 FEFFFFEB bl __aeabi_uidiv 816 .LVL64: 817 03cc 016040E2 sub r6, r0, #1 278:lib/lib_AT91SAM7.c **** shtim = adc_clock*sample_and_hold_time/1000 - 1; 818 .loc 2 278 0 819 03d0 18009DE5 ldr r0, [sp, #24] 820 03d4 FA1FA0E3 mov r1, #1000 821 03d8 950000E0 mul r0, r5, r0 822 03dc FEFFFFEB bl __aeabi_uidiv 277:lib/lib_AT91SAM7.c **** startup = adc_clock*startup_time/8 - 1; 823 .loc 2 277 0 824 03e0 A771A0E1 mov r7, r7, lsr #3 825 03e4 017047E2 sub r7, r7, #1 826 .LVL65: 279:lib/lib_AT91SAM7.c **** 280:lib/lib_AT91SAM7.c **** //* Write to the MR register 281:lib/lib_AT91SAM7.c **** pADC->ADC_MR = ( (prescal<<8) & AT91C_ADC_PRESCAL) | ( (startup<<16) & AT91C_ADC_STARTUP) | ( (sht 827 .loc 2 281 0 828 03e8 0778A0E1 mov r7, r7, asl #16 829 .LVL66: 830 03ec 0664A0E1 mov r6, r6, asl #8 278:lib/lib_AT91SAM7.c **** shtim = adc_clock*sample_and_hold_time/1000 - 1; 831 .loc 2 278 0 832 03f0 013040E2 sub r3, r0, #1 833 .loc 2 281 0 834 03f4 1F7807E2 and r7, r7, #2031616 835 03f8 3F6C06E2 and r6, r6, #16128 836 03fc 033CA0E1 mov r3, r3, asl #24 837 0400 066087E1 orr r6, r7, r6 838 0404 0F3403E2 and r3, r3, #251658240 839 0408 036086E1 orr r6, r6, r3 840 040c 046084E5 str r6, [r4, #4] 282:lib/lib_AT91SAM7.c **** } 841 .loc 2 282 0 842 0410 F840BDE8 ldmfd sp!, {r3, r4, r5, r6, r7, lr} 843 0414 1EFF2FE1 bx lr 844 .cfi_endproc 845 .LFE283: 847 .global __aeabi_uidivmod 848 .align 2 849 .global AT91F_SSC_SetBaudrate 851 AT91F_SSC_SetBaudrate: 852 .LFB284: 283:lib/lib_AT91SAM7.c **** 284:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 285:lib/lib_AT91SAM7.c **** //* \fn AT91F_SSC_SetBaudrate 286:lib/lib_AT91SAM7.c **** //* \brief Set the baudrate according to the CPU clock 287:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 288:lib/lib_AT91SAM7.c **** void AT91F_SSC_SetBaudrate ( 289:lib/lib_AT91SAM7.c **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 290:lib/lib_AT91SAM7.c **** unsigned int mainClock, // \arg peripheral clock 291:lib/lib_AT91SAM7.c **** unsigned int speed) // \arg SSC baudrate 292:lib/lib_AT91SAM7.c **** { 853 .loc 2 292 0 854 .cfi_startproc 855 @ Function supports interworking. 856 @ args = 0, pretend = 0, frame = 0 857 @ frame_needed = 0, uses_anonymous_args = 0 858 .LVL67: 293:lib/lib_AT91SAM7.c **** unsigned int baud_value; 294:lib/lib_AT91SAM7.c **** //* Define the baud rate divisor register 295:lib/lib_AT91SAM7.c **** if (speed == 0) 859 .loc 2 295 0 860 0418 000052E3 cmp r2, #0 292:lib/lib_AT91SAM7.c **** { 861 .loc 2 292 0 862 041c 70402DE9 stmfd sp!, {r4, r5, r6, lr} 863 .LCFI10: 864 .cfi_def_cfa_offset 16 292:lib/lib_AT91SAM7.c **** { 865 .loc 2 292 0 866 0420 0040A0E1 mov r4, r0 867 .cfi_offset 14, -4 868 .cfi_offset 6, -8 869 .cfi_offset 5, -12 870 .cfi_offset 4, -16 296:lib/lib_AT91SAM7.c **** baud_value = 0; 871 .loc 2 296 0 872 0424 0200A001 moveq r0, r2 873 .LVL68: 295:lib/lib_AT91SAM7.c **** if (speed == 0) 874 .loc 2 295 0 875 0428 1000000A beq .L42 297:lib/lib_AT91SAM7.c **** else 298:lib/lib_AT91SAM7.c **** { 299:lib/lib_AT91SAM7.c **** baud_value = (unsigned int) (mainClock * 10)/(2*speed); 876 .loc 2 299 0 877 042c 0A50A0E3 mov r5, #10 878 0430 950100E0 mul r0, r5, r1 879 0434 8210A0E1 mov r1, r2, asl #1 880 .LVL69: 881 0438 FEFFFFEB bl __aeabi_uidiv 882 .LVL70: 300:lib/lib_AT91SAM7.c **** if ((baud_value % 10) >= 5) 883 .loc 2 300 0 884 043c 0510A0E1 mov r1, r5 299:lib/lib_AT91SAM7.c **** baud_value = (unsigned int) (mainClock * 10)/(2*speed); 885 .loc 2 299 0 886 0440 0060A0E1 mov r6, r0 887 .LVL71: 888 .loc 2 300 0 889 0444 FEFFFFEB bl __aeabi_uidivmod 890 .LVL72: 891 0448 040051E3 cmp r1, #4 892 044c 0400009A bls .L43 301:lib/lib_AT91SAM7.c **** baud_value = (baud_value / 10) + 1; 893 .loc 2 301 0 894 0450 0600A0E1 mov r0, r6 895 0454 0510A0E1 mov r1, r5 896 0458 FEFFFFEB bl __aeabi_uidiv 897 045c 010080E2 add r0, r0, #1 898 .LVL73: 899 0460 020000EA b .L42 900 .LVL74: 901 .L43: 302:lib/lib_AT91SAM7.c **** else 303:lib/lib_AT91SAM7.c **** baud_value /= 10; 902 .loc 2 303 0 903 0464 0600A0E1 mov r0, r6 904 0468 0510A0E1 mov r1, r5 905 046c FEFFFFEB bl __aeabi_uidiv 906 .LVL75: 907 .L42: 304:lib/lib_AT91SAM7.c **** } 305:lib/lib_AT91SAM7.c **** 306:lib/lib_AT91SAM7.c **** pSSC->SSC_CMR = baud_value; 908 .loc 2 306 0 909 0470 040084E5 str r0, [r4, #4] 307:lib/lib_AT91SAM7.c **** } 910 .loc 2 307 0 911 0474 7040BDE8 ldmfd sp!, {r4, r5, r6, lr} 912 0478 1EFF2FE1 bx lr 913 .cfi_endproc 914 .LFE284: 916 .align 2 917 .global AT91F_SSC_Configure 919 AT91F_SSC_Configure: 920 .LFB285: 308:lib/lib_AT91SAM7.c **** 309:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 310:lib/lib_AT91SAM7.c **** //* \fn AT91F_SSC_Configure 311:lib/lib_AT91SAM7.c **** //* \brief Configure SSC 312:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 313:lib/lib_AT91SAM7.c **** void AT91F_SSC_Configure ( 314:lib/lib_AT91SAM7.c **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 315:lib/lib_AT91SAM7.c **** unsigned int syst_clock, // \arg System Clock Frequency 316:lib/lib_AT91SAM7.c **** unsigned int baud_rate, // \arg Expected Baud Rate Frequency 317:lib/lib_AT91SAM7.c **** unsigned int clock_rx, // \arg Receiver Clock Parameters 318:lib/lib_AT91SAM7.c **** unsigned int mode_rx, // \arg mode Register to be programmed 319:lib/lib_AT91SAM7.c **** unsigned int clock_tx, // \arg Transmitter Clock Parameters 320:lib/lib_AT91SAM7.c **** unsigned int mode_tx) // \arg mode Register to be programmed 321:lib/lib_AT91SAM7.c **** { 921 .loc 2 321 0 922 .cfi_startproc 923 @ Function supports interworking. 924 @ args = 12, pretend = 0, frame = 0 925 @ frame_needed = 0, uses_anonymous_args = 0 926 .LVL76: 927 047c F0412DE9 stmfd sp!, {r4, r5, r6, r7, r8, lr} 928 .LCFI11: 929 .cfi_def_cfa_offset 24 930 .loc 2 321 0 931 0480 0380A0E1 mov r8, r3 932 .cfi_offset 14, -4 933 .cfi_offset 8, -8 934 .cfi_offset 7, -12 935 .cfi_offset 6, -16 936 .cfi_offset 5, -20 937 .cfi_offset 4, -24 322:lib/lib_AT91SAM7.c **** //* Disable interrupts 323:lib/lib_AT91SAM7.c **** pSSC->SSC_IDR = (unsigned int) -1; 938 .loc 2 323 0 939 0484 0030E0E3 mvn r3, #0 940 .LVL77: 941 0488 483080E5 str r3, [r0, #72] 324:lib/lib_AT91SAM7.c **** 325:lib/lib_AT91SAM7.c **** //* Reset receiver and transmitter 326:lib/lib_AT91SAM7.c **** pSSC->SSC_CR = AT91C_SSC_SWRST | AT91C_SSC_RXDIS | AT91C_SSC_TXDIS ; 942 .loc 2 326 0 943 048c 30309FE5 ldr r3, .L46 944 0490 003080E5 str r3, [r0, #0] 321:lib/lib_AT91SAM7.c **** { 945 .loc 2 321 0 946 0494 0040A0E1 mov r4, r0 947 0498 18608DE2 add r6, sp, #24 948 049c C00096E8 ldmia r6, {r6, r7} @ phole ldm 949 04a0 20509DE5 ldr r5, [sp, #32] 327:lib/lib_AT91SAM7.c **** 328:lib/lib_AT91SAM7.c **** //* Define the Clock Mode Register 329:lib/lib_AT91SAM7.c **** AT91F_SSC_SetBaudrate(pSSC, syst_clock, baud_rate); 950 .loc 2 329 0 951 04a4 FEFFFFEB bl AT91F_SSC_SetBaudrate 952 .LVL78: 330:lib/lib_AT91SAM7.c **** 331:lib/lib_AT91SAM7.c **** //* Write the Receive Clock Mode Register 332:lib/lib_AT91SAM7.c **** pSSC->SSC_RCMR = clock_rx; 333:lib/lib_AT91SAM7.c **** 334:lib/lib_AT91SAM7.c **** //* Write the Transmit Clock Mode Register 335:lib/lib_AT91SAM7.c **** pSSC->SSC_TCMR = clock_tx; 336:lib/lib_AT91SAM7.c **** 337:lib/lib_AT91SAM7.c **** //* Write the Receive Frame Mode Register 338:lib/lib_AT91SAM7.c **** pSSC->SSC_RFMR = mode_rx; 339:lib/lib_AT91SAM7.c **** 340:lib/lib_AT91SAM7.c **** //* Write the Transmit Frame Mode Register 341:lib/lib_AT91SAM7.c **** pSSC->SSC_TFMR = mode_tx; 342:lib/lib_AT91SAM7.c **** 343:lib/lib_AT91SAM7.c **** //* Clear Transmit and Receive Counters 344:lib/lib_AT91SAM7.c **** AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR)); 953 .loc 2 344 0 954 04a8 010C84E2 add r0, r4, #256 332:lib/lib_AT91SAM7.c **** pSSC->SSC_RCMR = clock_rx; 955 .loc 2 332 0 956 04ac 108084E5 str r8, [r4, #16] 335:lib/lib_AT91SAM7.c **** pSSC->SSC_TCMR = clock_tx; 957 .loc 2 335 0 958 04b0 187084E5 str r7, [r4, #24] 338:lib/lib_AT91SAM7.c **** pSSC->SSC_RFMR = mode_rx; 959 .loc 2 338 0 960 04b4 146084E5 str r6, [r4, #20] 341:lib/lib_AT91SAM7.c **** pSSC->SSC_TFMR = mode_tx; 961 .loc 2 341 0 962 04b8 1C5084E5 str r5, [r4, #28] 345:lib/lib_AT91SAM7.c **** 346:lib/lib_AT91SAM7.c **** 347:lib/lib_AT91SAM7.c **** } 963 .loc 2 347 0 964 04bc F041BDE8 ldmfd sp!, {r4, r5, r6, r7, r8, lr} 344:lib/lib_AT91SAM7.c **** AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR)); 965 .loc 2 344 0 966 04c0 FEFFFFEA b AT91F_PDC_Open 967 .L47: 968 .align 2 969 .L46: 970 04c4 02820000 .word 33282 971 .cfi_endproc 972 .LFE285: 974 .align 2 975 .global AT91F_US_Configure 977 AT91F_US_Configure: 978 .LFB286: 348:lib/lib_AT91SAM7.c **** 349:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 350:lib/lib_AT91SAM7.c **** //* \fn AT91F_US_Configure 351:lib/lib_AT91SAM7.c **** //* \brief Configure USART 352:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 353:lib/lib_AT91SAM7.c **** void AT91F_US_Configure ( 354:lib/lib_AT91SAM7.c **** AT91PS_USART pUSART, // \arg pointer to a USART controller 355:lib/lib_AT91SAM7.c **** unsigned int mainClock, // \arg peripheral clock 356:lib/lib_AT91SAM7.c **** unsigned int mode , // \arg mode Register to be programmed 357:lib/lib_AT91SAM7.c **** unsigned int baudRate , // \arg baudrate to be programmed 358:lib/lib_AT91SAM7.c **** unsigned int timeguard ) // \arg timeguard to be programmed 359:lib/lib_AT91SAM7.c **** { 979 .loc 2 359 0 980 .cfi_startproc 981 @ Function supports interworking. 982 @ args = 4, pretend = 0, frame = 0 983 @ frame_needed = 0, uses_anonymous_args = 0 984 .LVL79: 985 04c8 F8402DE9 stmfd sp!, {r3, r4, r5, r6, r7, lr} 986 .LCFI12: 987 .cfi_def_cfa_offset 24 988 .loc 2 359 0 989 04cc 0260A0E1 mov r6, r2 990 .cfi_offset 14, -4 991 .cfi_offset 7, -8 992 .cfi_offset 6, -12 993 .cfi_offset 5, -16 994 .cfi_offset 4, -20 995 .cfi_offset 3, -24 360:lib/lib_AT91SAM7.c **** //* Disable interrupts 361:lib/lib_AT91SAM7.c **** pUSART->US_IDR = (unsigned int) -1; 996 .loc 2 361 0 997 04d0 0020E0E3 mvn r2, #0 998 .LVL80: 999 04d4 0C2080E5 str r2, [r0, #12] 1000 .LBB40: 1001 .LBB42: 1002 .LBB44: 1003 .LBB45: 1038:./include/lib_AT91SAM7.h **** 1039:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1040:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgMCKReg 1041:./include/lib_AT91SAM7.h **** //* \brief Cfg Master Clock Register 1042:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1043:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgMCKReg ( 1044:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 1045:./include/lib_AT91SAM7.h **** unsigned int mode) 1046:./include/lib_AT91SAM7.h **** { 1047:./include/lib_AT91SAM7.h **** pPMC->PMC_MCKR = mode; 1048:./include/lib_AT91SAM7.h **** } 1049:./include/lib_AT91SAM7.h **** 1050:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1051:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetMCKReg 1052:./include/lib_AT91SAM7.h **** //* \brief Return Master Clock Register 1053:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1054:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetMCKReg( 1055:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // \arg pointer to PMC controller 1056:./include/lib_AT91SAM7.h **** { 1057:./include/lib_AT91SAM7.h **** return pPMC->PMC_MCKR; 1058:./include/lib_AT91SAM7.h **** } 1059:./include/lib_AT91SAM7.h **** 1060:./include/lib_AT91SAM7.h **** //*------------------------------------------------------------------------------ 1061:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetMasterClock 1062:./include/lib_AT91SAM7.h **** //* \brief Return master clock in Hz which correponds to processor clock for ARM7 1063:./include/lib_AT91SAM7.h **** //*------------------------------------------------------------------------------ 1064:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PMC_GetMasterClock ( 1065:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 1066:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 1067:./include/lib_AT91SAM7.h **** unsigned int slowClock); // \arg slowClock in Hz 1068:./include/lib_AT91SAM7.h **** 1069:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1070:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnablePCK 1071:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock 1072:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1073:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnablePCK ( 1074:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 1075:./include/lib_AT91SAM7.h **** unsigned int pck, // \arg Peripheral clock identifier 0 .. 7 1076:./include/lib_AT91SAM7.h **** unsigned int mode) 1077:./include/lib_AT91SAM7.h **** { 1078:./include/lib_AT91SAM7.h **** pPMC->PMC_PCKR[pck] = mode; 1079:./include/lib_AT91SAM7.h **** pPMC->PMC_SCER = (1 << pck) << 8; 1080:./include/lib_AT91SAM7.h **** } 1081:./include/lib_AT91SAM7.h **** 1082:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1083:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisablePCK 1084:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock 1085:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1086:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisablePCK ( 1087:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller 1088:./include/lib_AT91SAM7.h **** unsigned int pck) // \arg Peripheral clock identifier 0 .. 7 1089:./include/lib_AT91SAM7.h **** { 1090:./include/lib_AT91SAM7.h **** pPMC->PMC_SCDR = (1 << pck) << 8; 1091:./include/lib_AT91SAM7.h **** } 1092:./include/lib_AT91SAM7.h **** 1093:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1094:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnableIt 1095:./include/lib_AT91SAM7.h **** //* \brief Enable PMC interrupt 1096:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1097:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnableIt ( 1098:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // pointer to a PMC controller 1099:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled 1100:./include/lib_AT91SAM7.h **** { 1101:./include/lib_AT91SAM7.h **** //* Write to the IER register 1102:./include/lib_AT91SAM7.h **** pPMC->PMC_IER = flag; 1103:./include/lib_AT91SAM7.h **** } 1104:./include/lib_AT91SAM7.h **** 1105:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1106:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisableIt 1107:./include/lib_AT91SAM7.h **** //* \brief Disable PMC interrupt 1108:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1109:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisableIt ( 1110:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // pointer to a PMC controller 1111:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled 1112:./include/lib_AT91SAM7.h **** { 1113:./include/lib_AT91SAM7.h **** //* Write to the IDR register 1114:./include/lib_AT91SAM7.h **** pPMC->PMC_IDR = flag; 1115:./include/lib_AT91SAM7.h **** } 1116:./include/lib_AT91SAM7.h **** 1117:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1118:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetStatus 1119:./include/lib_AT91SAM7.h **** //* \brief Return PMC Interrupt Status 1120:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1121:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetStatus( // \return PMC Interrupt Status 1122:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // pointer to a PMC controller 1123:./include/lib_AT91SAM7.h **** { 1124:./include/lib_AT91SAM7.h **** return pPMC->PMC_SR; 1125:./include/lib_AT91SAM7.h **** } 1126:./include/lib_AT91SAM7.h **** 1127:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1128:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetInterruptMaskStatus 1129:./include/lib_AT91SAM7.h **** //* \brief Return PMC Interrupt Mask Status 1130:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1131:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetInterruptMaskStatus( // \return PMC Interrupt Mask Status 1132:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // pointer to a PMC controller 1133:./include/lib_AT91SAM7.h **** { 1134:./include/lib_AT91SAM7.h **** return pPMC->PMC_IMR; 1135:./include/lib_AT91SAM7.h **** } 1136:./include/lib_AT91SAM7.h **** 1137:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1138:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_IsInterruptMasked 1139:./include/lib_AT91SAM7.h **** //* \brief Test if PMC Interrupt is Masked 1140:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1141:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_IsInterruptMasked( 1142:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to a PMC controller 1143:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1144:./include/lib_AT91SAM7.h **** { 1145:./include/lib_AT91SAM7.h **** return (AT91F_PMC_GetInterruptMaskStatus(pPMC) & flag); 1146:./include/lib_AT91SAM7.h **** } 1147:./include/lib_AT91SAM7.h **** 1148:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1149:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_IsStatusSet 1150:./include/lib_AT91SAM7.h **** //* \brief Test if PMC Status is Set 1151:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1152:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_IsStatusSet( 1153:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to a PMC controller 1154:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1155:./include/lib_AT91SAM7.h **** { 1156:./include/lib_AT91SAM7.h **** return (AT91F_PMC_GetStatus(pPMC) & flag); 1157:./include/lib_AT91SAM7.h **** } 1158:./include/lib_AT91SAM7.h **** 1159:./include/lib_AT91SAM7.h **** // ---------------------------------------------------------------------------- 1160:./include/lib_AT91SAM7.h **** // \fn AT91F_CKGR_CfgPLLReg 1161:./include/lib_AT91SAM7.h **** // \brief Cfg the PLL Register 1162:./include/lib_AT91SAM7.h **** // ---------------------------------------------------------------------------- 1163:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgPLLReg ( 1164:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller 1165:./include/lib_AT91SAM7.h **** unsigned int mode) 1166:./include/lib_AT91SAM7.h **** { 1167:./include/lib_AT91SAM7.h **** pCKGR->CKGR_PLLR = mode; 1168:./include/lib_AT91SAM7.h **** } 1169:./include/lib_AT91SAM7.h **** 1170:./include/lib_AT91SAM7.h **** // ---------------------------------------------------------------------------- 1171:./include/lib_AT91SAM7.h **** // \fn AT91F_CKGR_GetPLLReg 1172:./include/lib_AT91SAM7.h **** // \brief Get the PLL Register 1173:./include/lib_AT91SAM7.h **** // ---------------------------------------------------------------------------- 1174:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetPLLReg ( 1175:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller 1176:./include/lib_AT91SAM7.h **** { 1177:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_PLLR; 1178:./include/lib_AT91SAM7.h **** } 1179:./include/lib_AT91SAM7.h **** 1180:./include/lib_AT91SAM7.h **** 1181:./include/lib_AT91SAM7.h **** 1182:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1183:./include/lib_AT91SAM7.h **** SOFTWARE API FOR RSTC 1184:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1185:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1186:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTSoftReset 1187:./include/lib_AT91SAM7.h **** //* \brief Start Software Reset 1188:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1189:./include/lib_AT91SAM7.h **** static inline void AT91F_RSTSoftReset( 1190:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC, 1191:./include/lib_AT91SAM7.h **** unsigned int reset) 1192:./include/lib_AT91SAM7.h **** { 1193:./include/lib_AT91SAM7.h **** pRSTC->RSTC_RCR = (0xA5000000 | reset); 1194:./include/lib_AT91SAM7.h **** } 1195:./include/lib_AT91SAM7.h **** 1196:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1197:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTSetMode 1198:./include/lib_AT91SAM7.h **** //* \brief Set Reset Mode 1199:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1200:./include/lib_AT91SAM7.h **** static inline void AT91F_RSTSetMode( 1201:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC, 1202:./include/lib_AT91SAM7.h **** unsigned int mode) 1203:./include/lib_AT91SAM7.h **** { 1204:./include/lib_AT91SAM7.h **** pRSTC->RSTC_RMR = (0xA5000000 | mode); 1205:./include/lib_AT91SAM7.h **** } 1206:./include/lib_AT91SAM7.h **** 1207:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1208:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTGetMode 1209:./include/lib_AT91SAM7.h **** //* \brief Get Reset Mode 1210:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1211:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTGetMode( 1212:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC) 1213:./include/lib_AT91SAM7.h **** { 1214:./include/lib_AT91SAM7.h **** return (pRSTC->RSTC_RMR); 1215:./include/lib_AT91SAM7.h **** } 1216:./include/lib_AT91SAM7.h **** 1217:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1218:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTGetStatus 1219:./include/lib_AT91SAM7.h **** //* \brief Get Reset Status 1220:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1221:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTGetStatus( 1222:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC) 1223:./include/lib_AT91SAM7.h **** { 1224:./include/lib_AT91SAM7.h **** return (pRSTC->RSTC_RSR); 1225:./include/lib_AT91SAM7.h **** } 1226:./include/lib_AT91SAM7.h **** 1227:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1228:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTIsSoftRstActive 1229:./include/lib_AT91SAM7.h **** //* \brief Return !=0 if software reset is still not completed 1230:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1231:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTIsSoftRstActive( 1232:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC) 1233:./include/lib_AT91SAM7.h **** { 1234:./include/lib_AT91SAM7.h **** return ((pRSTC->RSTC_RSR) & AT91C_RSTC_SRCMP); 1235:./include/lib_AT91SAM7.h **** } 1236:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1237:./include/lib_AT91SAM7.h **** SOFTWARE API FOR RTTC 1238:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1239:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1240:./include/lib_AT91SAM7.h **** //* \fn AT91F_SetRTT_TimeBase() 1241:./include/lib_AT91SAM7.h **** //* \brief Set the RTT prescaler according to the TimeBase in ms 1242:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1243:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTSetTimeBase( 1244:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC, 1245:./include/lib_AT91SAM7.h **** unsigned int ms) 1246:./include/lib_AT91SAM7.h **** { 1247:./include/lib_AT91SAM7.h **** if (ms > 2000) 1248:./include/lib_AT91SAM7.h **** return 1; // AT91C_TIME_OUT_OF_RANGE 1249:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~0xFFFF; 1250:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= (((ms << 15) /1000) & 0xFFFF); 1251:./include/lib_AT91SAM7.h **** return 0; 1252:./include/lib_AT91SAM7.h **** } 1253:./include/lib_AT91SAM7.h **** 1254:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1255:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTSetPrescaler() 1256:./include/lib_AT91SAM7.h **** //* \brief Set the new prescaler value 1257:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1258:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTSetPrescaler( 1259:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC, 1260:./include/lib_AT91SAM7.h **** unsigned int rtpres) 1261:./include/lib_AT91SAM7.h **** { 1262:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~0xFFFF; 1263:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= (rtpres & 0xFFFF); 1264:./include/lib_AT91SAM7.h **** return (pRTTC->RTTC_RTMR); 1265:./include/lib_AT91SAM7.h **** } 1266:./include/lib_AT91SAM7.h **** 1267:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1268:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTRestart() 1269:./include/lib_AT91SAM7.h **** //* \brief Restart the RTT prescaler 1270:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1271:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTRestart( 1272:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1273:./include/lib_AT91SAM7.h **** { 1274:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTRST; 1275:./include/lib_AT91SAM7.h **** } 1276:./include/lib_AT91SAM7.h **** 1277:./include/lib_AT91SAM7.h **** 1278:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1279:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetAlarmINT() 1280:./include/lib_AT91SAM7.h **** //* \brief Enable RTT Alarm Interrupt 1281:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1282:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetAlarmINT( 1283:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1284:./include/lib_AT91SAM7.h **** { 1285:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_ALMIEN; 1286:./include/lib_AT91SAM7.h **** } 1287:./include/lib_AT91SAM7.h **** 1288:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1289:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ClearAlarmINT() 1290:./include/lib_AT91SAM7.h **** //* \brief Disable RTT Alarm Interrupt 1291:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1292:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTClearAlarmINT( 1293:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1294:./include/lib_AT91SAM7.h **** { 1295:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~AT91C_RTTC_ALMIEN; 1296:./include/lib_AT91SAM7.h **** } 1297:./include/lib_AT91SAM7.h **** 1298:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1299:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetRttIncINT() 1300:./include/lib_AT91SAM7.h **** //* \brief Enable RTT INC Interrupt 1301:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1302:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetRttIncINT( 1303:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1304:./include/lib_AT91SAM7.h **** { 1305:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTINCIEN; 1306:./include/lib_AT91SAM7.h **** } 1307:./include/lib_AT91SAM7.h **** 1308:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1309:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ClearRttIncINT() 1310:./include/lib_AT91SAM7.h **** //* \brief Disable RTT INC Interrupt 1311:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1312:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTClearRttIncINT( 1313:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1314:./include/lib_AT91SAM7.h **** { 1315:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~AT91C_RTTC_RTTINCIEN; 1316:./include/lib_AT91SAM7.h **** } 1317:./include/lib_AT91SAM7.h **** 1318:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1319:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetAlarmValue() 1320:./include/lib_AT91SAM7.h **** //* \brief Set RTT Alarm Value 1321:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1322:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetAlarmValue( 1323:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC, unsigned int _alarm) 1324:./include/lib_AT91SAM7.h **** { 1325:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTAR = _alarm; 1326:./include/lib_AT91SAM7.h **** } 1327:./include/lib_AT91SAM7.h **** 1328:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1329:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_GetAlarmValue() 1330:./include/lib_AT91SAM7.h **** //* \brief Get RTT Alarm Value 1331:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1332:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTGetAlarmValue( 1333:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1334:./include/lib_AT91SAM7.h **** { 1335:./include/lib_AT91SAM7.h **** return(pRTTC->RTTC_RTAR); 1336:./include/lib_AT91SAM7.h **** } 1337:./include/lib_AT91SAM7.h **** 1338:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1339:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTGetStatus() 1340:./include/lib_AT91SAM7.h **** //* \brief Read the RTT status 1341:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1342:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTGetStatus( 1343:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC) 1344:./include/lib_AT91SAM7.h **** { 1345:./include/lib_AT91SAM7.h **** return(pRTTC->RTTC_RTSR); 1346:./include/lib_AT91SAM7.h **** } 1347:./include/lib_AT91SAM7.h **** 1348:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1349:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ReadValue() 1350:./include/lib_AT91SAM7.h **** //* \brief Read the RTT value 1351:./include/lib_AT91SAM7.h **** //*-------------------------------------------------------------------------------------- 1352:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_RTTReadValue(AT91PS_RTTC pRTTC); 1353:./include/lib_AT91SAM7.h **** 1354:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1355:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PITC 1356:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1357:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1358:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITInit 1359:./include/lib_AT91SAM7.h **** //* \brief System timer init : period in ‘second, system clock freq in MHz 1360:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1361:./include/lib_AT91SAM7.h **** static inline void AT91F_PITInit( 1362:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC, 1363:./include/lib_AT91SAM7.h **** unsigned int period, 1364:./include/lib_AT91SAM7.h **** unsigned int pit_frequency) 1365:./include/lib_AT91SAM7.h **** { 1366:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR = period? (period * pit_frequency + 8) >> 4 : 0; // +8 to avoid %10 and /10 1367:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR |= AT91C_PITC_PITEN; 1368:./include/lib_AT91SAM7.h **** } 1369:./include/lib_AT91SAM7.h **** 1370:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1371:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITSetPIV 1372:./include/lib_AT91SAM7.h **** //* \brief Set the PIT Periodic Interval Value 1373:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1374:./include/lib_AT91SAM7.h **** static inline void AT91F_PITSetPIV( 1375:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC, 1376:./include/lib_AT91SAM7.h **** unsigned int piv) 1377:./include/lib_AT91SAM7.h **** { 1378:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR = piv | (pPITC->PITC_PIMR & (AT91C_PITC_PITEN | AT91C_PITC_PITIEN)); 1379:./include/lib_AT91SAM7.h **** } 1380:./include/lib_AT91SAM7.h **** 1381:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1382:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITEnableInt 1383:./include/lib_AT91SAM7.h **** //* \brief Enable PIT periodic interrupt 1384:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1385:./include/lib_AT91SAM7.h **** static inline void AT91F_PITEnableInt( 1386:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1387:./include/lib_AT91SAM7.h **** { 1388:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR |= AT91C_PITC_PITIEN; 1389:./include/lib_AT91SAM7.h **** } 1390:./include/lib_AT91SAM7.h **** 1391:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1392:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITDisableInt 1393:./include/lib_AT91SAM7.h **** //* \brief Disable PIT periodic interrupt 1394:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1395:./include/lib_AT91SAM7.h **** static inline void AT91F_PITDisableInt( 1396:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1397:./include/lib_AT91SAM7.h **** { 1398:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR &= ~AT91C_PITC_PITIEN; 1399:./include/lib_AT91SAM7.h **** } 1400:./include/lib_AT91SAM7.h **** 1401:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1402:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetMode 1403:./include/lib_AT91SAM7.h **** //* \brief Read PIT mode register 1404:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1405:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetMode( 1406:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1407:./include/lib_AT91SAM7.h **** { 1408:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIMR); 1409:./include/lib_AT91SAM7.h **** } 1410:./include/lib_AT91SAM7.h **** 1411:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1412:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetStatus 1413:./include/lib_AT91SAM7.h **** //* \brief Read PIT status register 1414:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1415:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetStatus( 1416:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1417:./include/lib_AT91SAM7.h **** { 1418:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PISR); 1419:./include/lib_AT91SAM7.h **** } 1420:./include/lib_AT91SAM7.h **** 1421:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1422:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetPIIR 1423:./include/lib_AT91SAM7.h **** //* \brief Read PIT CPIV and PICNT without ressetting the counters 1424:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1425:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetPIIR( 1426:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1427:./include/lib_AT91SAM7.h **** { 1428:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIIR); 1429:./include/lib_AT91SAM7.h **** } 1430:./include/lib_AT91SAM7.h **** 1431:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1432:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetPIVR 1433:./include/lib_AT91SAM7.h **** //* \brief Read System timer CPIV and PICNT without ressetting the counters 1434:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1435:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetPIVR( 1436:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC) 1437:./include/lib_AT91SAM7.h **** { 1438:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIVR); 1439:./include/lib_AT91SAM7.h **** } 1440:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1441:./include/lib_AT91SAM7.h **** SOFTWARE API FOR WDTC 1442:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1443:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1444:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTSetMode 1445:./include/lib_AT91SAM7.h **** //* \brief Set Watchdog Mode Register 1446:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1447:./include/lib_AT91SAM7.h **** static inline void AT91F_WDTSetMode( 1448:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC, 1449:./include/lib_AT91SAM7.h **** unsigned int Mode) 1450:./include/lib_AT91SAM7.h **** { 1451:./include/lib_AT91SAM7.h **** pWDTC->WDTC_WDMR = Mode; 1452:./include/lib_AT91SAM7.h **** } 1453:./include/lib_AT91SAM7.h **** 1454:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1455:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTRestart 1456:./include/lib_AT91SAM7.h **** //* \brief Restart Watchdog 1457:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1458:./include/lib_AT91SAM7.h **** static inline void AT91F_WDTRestart( 1459:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC) 1460:./include/lib_AT91SAM7.h **** { 1461:./include/lib_AT91SAM7.h **** pWDTC->WDTC_WDCR = 0xA5000001; 1462:./include/lib_AT91SAM7.h **** } 1463:./include/lib_AT91SAM7.h **** 1464:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1465:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTSGettatus 1466:./include/lib_AT91SAM7.h **** //* \brief Get Watchdog Status 1467:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1468:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_WDTSGettatus( 1469:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC) 1470:./include/lib_AT91SAM7.h **** { 1471:./include/lib_AT91SAM7.h **** return(pWDTC->WDTC_WDSR & 0x3); 1472:./include/lib_AT91SAM7.h **** } 1473:./include/lib_AT91SAM7.h **** 1474:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1475:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTGetPeriod 1476:./include/lib_AT91SAM7.h **** //* \brief Translate ms into Watchdog Compatible value 1477:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1478:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_WDTGetPeriod(unsigned int ms) 1479:./include/lib_AT91SAM7.h **** { 1480:./include/lib_AT91SAM7.h **** if ((ms < 4) || (ms > 16000)) 1481:./include/lib_AT91SAM7.h **** return 0; 1482:./include/lib_AT91SAM7.h **** return((ms << 8) / 1000); 1483:./include/lib_AT91SAM7.h **** } 1484:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1485:./include/lib_AT91SAM7.h **** SOFTWARE API FOR VREG 1486:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1487:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1488:./include/lib_AT91SAM7.h **** //* \fn AT91F_VREG_Enable_LowPowerMode 1489:./include/lib_AT91SAM7.h **** //* \brief Enable VREG Low Power Mode 1490:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1491:./include/lib_AT91SAM7.h **** static inline void AT91F_VREG_Enable_LowPowerMode( 1492:./include/lib_AT91SAM7.h **** AT91PS_VREG pVREG) 1493:./include/lib_AT91SAM7.h **** { 1494:./include/lib_AT91SAM7.h **** pVREG->VREG_MR |= AT91C_VREG_PSTDBY; 1495:./include/lib_AT91SAM7.h **** } 1496:./include/lib_AT91SAM7.h **** 1497:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1498:./include/lib_AT91SAM7.h **** //* \fn AT91F_VREG_Disable_LowPowerMode 1499:./include/lib_AT91SAM7.h **** //* \brief Disable VREG Low Power Mode 1500:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1501:./include/lib_AT91SAM7.h **** static inline void AT91F_VREG_Disable_LowPowerMode( 1502:./include/lib_AT91SAM7.h **** AT91PS_VREG pVREG) 1503:./include/lib_AT91SAM7.h **** { 1504:./include/lib_AT91SAM7.h **** pVREG->VREG_MR &= ~AT91C_VREG_PSTDBY; 1505:./include/lib_AT91SAM7.h **** }/* ***************************************************************************** 1506:./include/lib_AT91SAM7.h **** SOFTWARE API FOR MC 1507:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1508:./include/lib_AT91SAM7.h **** 1509:./include/lib_AT91SAM7.h **** #define AT91C_MC_CORRECT_KEY ((unsigned int) 0x5A << 24) // (MC) Correct Protect Key 1510:./include/lib_AT91SAM7.h **** 1511:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1512:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_Remap 1513:./include/lib_AT91SAM7.h **** //* \brief Make Remap 1514:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1515:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_Remap (void) // 1516:./include/lib_AT91SAM7.h **** { 1517:./include/lib_AT91SAM7.h **** AT91PS_MC pMC = (AT91PS_MC) AT91C_BASE_MC; 1518:./include/lib_AT91SAM7.h **** 1519:./include/lib_AT91SAM7.h **** pMC->MC_RCR = AT91C_MC_RCB; 1520:./include/lib_AT91SAM7.h **** } 1521:./include/lib_AT91SAM7.h **** 1522:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1523:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_CfgModeReg 1524:./include/lib_AT91SAM7.h **** //* \brief Configure the EFC Mode Register of the MC controller 1525:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1526:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_EFC_CfgModeReg ( 1527:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // pointer to a MC controller 1528:./include/lib_AT91SAM7.h **** unsigned int mode) // mode register 1529:./include/lib_AT91SAM7.h **** { 1530:./include/lib_AT91SAM7.h **** // Write to the FMR register 1531:./include/lib_AT91SAM7.h **** pMC->MC_FMR = mode; 1532:./include/lib_AT91SAM7.h **** } 1533:./include/lib_AT91SAM7.h **** 1534:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1535:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_GetModeReg 1536:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Mode Regsiter 1537:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1538:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_GetModeReg( 1539:./include/lib_AT91SAM7.h **** AT91PS_MC pMC) // pointer to a MC controller 1540:./include/lib_AT91SAM7.h **** { 1541:./include/lib_AT91SAM7.h **** return pMC->MC_FMR; 1542:./include/lib_AT91SAM7.h **** } 1543:./include/lib_AT91SAM7.h **** 1544:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1545:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_ComputeFMCN 1546:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Mode Regsiter 1547:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1548:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_ComputeFMCN( 1549:./include/lib_AT91SAM7.h **** int master_clock) // master clock in Hz 1550:./include/lib_AT91SAM7.h **** { 1551:./include/lib_AT91SAM7.h **** return (master_clock/1000000 +2); 1552:./include/lib_AT91SAM7.h **** } 1553:./include/lib_AT91SAM7.h **** 1554:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1555:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_PerformCmd 1556:./include/lib_AT91SAM7.h **** //* \brief Perform EFC Command 1557:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1558:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_EFC_PerformCmd ( 1559:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // pointer to a MC controller 1560:./include/lib_AT91SAM7.h **** unsigned int transfer_cmd) 1561:./include/lib_AT91SAM7.h **** { 1562:./include/lib_AT91SAM7.h **** pMC->MC_FCR = transfer_cmd; 1563:./include/lib_AT91SAM7.h **** } 1564:./include/lib_AT91SAM7.h **** 1565:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1566:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_GetStatus 1567:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Status 1568:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1569:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_GetStatus( 1570:./include/lib_AT91SAM7.h **** AT91PS_MC pMC) // pointer to a MC controller 1571:./include/lib_AT91SAM7.h **** { 1572:./include/lib_AT91SAM7.h **** return pMC->MC_FSR; 1573:./include/lib_AT91SAM7.h **** } 1574:./include/lib_AT91SAM7.h **** 1575:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1576:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_IsInterruptMasked 1577:./include/lib_AT91SAM7.h **** //* \brief Test if EFC MC Interrupt is Masked 1578:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1579:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_IsInterruptMasked( 1580:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // \arg pointer to a MC controller 1581:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1582:./include/lib_AT91SAM7.h **** { 1583:./include/lib_AT91SAM7.h **** return (AT91F_MC_EFC_GetModeReg(pMC) & flag); 1584:./include/lib_AT91SAM7.h **** } 1585:./include/lib_AT91SAM7.h **** 1586:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1587:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_IsInterruptSet 1588:./include/lib_AT91SAM7.h **** //* \brief Test if EFC MC Interrupt is Set 1589:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1590:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_IsInterruptSet( 1591:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // \arg pointer to a MC controller 1592:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1593:./include/lib_AT91SAM7.h **** { 1594:./include/lib_AT91SAM7.h **** return (AT91F_MC_EFC_GetStatus(pMC) & flag); 1595:./include/lib_AT91SAM7.h **** } 1596:./include/lib_AT91SAM7.h **** 1597:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1598:./include/lib_AT91SAM7.h **** SOFTWARE API FOR SPI 1599:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1600:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1601:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgCs 1602:./include/lib_AT91SAM7.h **** //* \brief Configure SPI chip select register 1603:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1604:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgCs ( 1605:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller 1606:./include/lib_AT91SAM7.h **** int cs, // SPI cs number (0 to 3) 1607:./include/lib_AT91SAM7.h **** int val) // chip select register 1608:./include/lib_AT91SAM7.h **** { 1609:./include/lib_AT91SAM7.h **** //* Write to the CSR register 1610:./include/lib_AT91SAM7.h **** *(pSPI->SPI_CSR + cs) = val; 1611:./include/lib_AT91SAM7.h **** } 1612:./include/lib_AT91SAM7.h **** 1613:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1614:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_EnableIt 1615:./include/lib_AT91SAM7.h **** //* \brief Enable SPI interrupt 1616:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1617:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_EnableIt ( 1618:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller 1619:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled 1620:./include/lib_AT91SAM7.h **** { 1621:./include/lib_AT91SAM7.h **** //* Write to the IER register 1622:./include/lib_AT91SAM7.h **** pSPI->SPI_IER = flag; 1623:./include/lib_AT91SAM7.h **** } 1624:./include/lib_AT91SAM7.h **** 1625:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1626:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_DisableIt 1627:./include/lib_AT91SAM7.h **** //* \brief Disable SPI interrupt 1628:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1629:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_DisableIt ( 1630:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller 1631:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled 1632:./include/lib_AT91SAM7.h **** { 1633:./include/lib_AT91SAM7.h **** //* Write to the IDR register 1634:./include/lib_AT91SAM7.h **** pSPI->SPI_IDR = flag; 1635:./include/lib_AT91SAM7.h **** } 1636:./include/lib_AT91SAM7.h **** 1637:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1638:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Reset 1639:./include/lib_AT91SAM7.h **** //* \brief Reset the SPI controller 1640:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1641:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Reset ( 1642:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller 1643:./include/lib_AT91SAM7.h **** ) 1644:./include/lib_AT91SAM7.h **** { 1645:./include/lib_AT91SAM7.h **** //* Write to the CR register 1646:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SWRST; 1647:./include/lib_AT91SAM7.h **** } 1648:./include/lib_AT91SAM7.h **** 1649:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1650:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Enable 1651:./include/lib_AT91SAM7.h **** //* \brief Enable the SPI controller 1652:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1653:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Enable ( 1654:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller 1655:./include/lib_AT91SAM7.h **** ) 1656:./include/lib_AT91SAM7.h **** { 1657:./include/lib_AT91SAM7.h **** //* Write to the CR register 1658:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SPIEN; 1659:./include/lib_AT91SAM7.h **** } 1660:./include/lib_AT91SAM7.h **** 1661:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1662:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Disable 1663:./include/lib_AT91SAM7.h **** //* \brief Disable the SPI controller 1664:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1665:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Disable ( 1666:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller 1667:./include/lib_AT91SAM7.h **** ) 1668:./include/lib_AT91SAM7.h **** { 1669:./include/lib_AT91SAM7.h **** //* Write to the CR register 1670:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SPIDIS; 1671:./include/lib_AT91SAM7.h **** } 1672:./include/lib_AT91SAM7.h **** 1673:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1674:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgMode 1675:./include/lib_AT91SAM7.h **** //* \brief Enable the SPI controller 1676:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1677:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgMode ( 1678:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller 1679:./include/lib_AT91SAM7.h **** int mode) // mode register 1680:./include/lib_AT91SAM7.h **** { 1681:./include/lib_AT91SAM7.h **** //* Write to the MR register 1682:./include/lib_AT91SAM7.h **** pSPI->SPI_MR = mode; 1683:./include/lib_AT91SAM7.h **** } 1684:./include/lib_AT91SAM7.h **** 1685:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1686:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgPCS 1687:./include/lib_AT91SAM7.h **** //* \brief Switch to the correct PCS of SPI Mode Register : Fixed Peripheral Selected 1688:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1689:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgPCS ( 1690:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller 1691:./include/lib_AT91SAM7.h **** char PCS_Device) // PCS of the Device 1692:./include/lib_AT91SAM7.h **** { 1693:./include/lib_AT91SAM7.h **** //* Write to the MR register 1694:./include/lib_AT91SAM7.h **** pSPI->SPI_MR &= 0xFFF0FFFF; 1695:./include/lib_AT91SAM7.h **** pSPI->SPI_MR |= ( (PCS_Device<<16) & AT91C_SPI_PCS ); 1696:./include/lib_AT91SAM7.h **** } 1697:./include/lib_AT91SAM7.h **** 1698:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1699:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_ReceiveFrame 1700:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init 1701:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1702:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_ReceiveFrame ( 1703:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, 1704:./include/lib_AT91SAM7.h **** unsigned char *pBuffer, 1705:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 1706:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer, 1707:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer ) 1708:./include/lib_AT91SAM7.h **** { 1709:./include/lib_AT91SAM7.h **** return AT91F_PDC_ReceiveFrame( 1710:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSPI->SPI_RPR), 1711:./include/lib_AT91SAM7.h **** pBuffer, 1712:./include/lib_AT91SAM7.h **** szBuffer, 1713:./include/lib_AT91SAM7.h **** pNextBuffer, 1714:./include/lib_AT91SAM7.h **** szNextBuffer); 1715:./include/lib_AT91SAM7.h **** } 1716:./include/lib_AT91SAM7.h **** 1717:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1718:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_SendFrame 1719:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init 1720:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1721:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_SendFrame( 1722:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, 1723:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer, 1724:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 1725:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer, 1726:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer ) 1727:./include/lib_AT91SAM7.h **** { 1728:./include/lib_AT91SAM7.h **** return AT91F_PDC_SendFrame( 1729:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSPI->SPI_RPR), 1730:./include/lib_AT91SAM7.h **** pBuffer, 1731:./include/lib_AT91SAM7.h **** szBuffer, 1732:./include/lib_AT91SAM7.h **** pNextBuffer, 1733:./include/lib_AT91SAM7.h **** szNextBuffer); 1734:./include/lib_AT91SAM7.h **** } 1735:./include/lib_AT91SAM7.h **** 1736:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1737:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Close 1738:./include/lib_AT91SAM7.h **** //* \brief Close SPI: disable IT disable transfert, close PDC 1739:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1740:./include/lib_AT91SAM7.h **** extern void AT91F_SPI_Close(AT91PS_SPI pSPI); // \arg pointer to a SPI controller 1741:./include/lib_AT91SAM7.h **** 1742:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1743:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_PutChar 1744:./include/lib_AT91SAM7.h **** //* \brief Send a character,does not check if ready to send 1745:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1746:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_PutChar ( 1747:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, 1748:./include/lib_AT91SAM7.h **** unsigned int character, 1749:./include/lib_AT91SAM7.h **** unsigned int cs_number ) 1750:./include/lib_AT91SAM7.h **** { 1751:./include/lib_AT91SAM7.h **** unsigned int value_for_cs; 1752:./include/lib_AT91SAM7.h **** value_for_cs = (~(1 << cs_number)) & 0xF; //Place a zero among a 4 ONEs number 1753:./include/lib_AT91SAM7.h **** pSPI->SPI_TDR = (character & 0xFFFF) | (value_for_cs << 16); 1754:./include/lib_AT91SAM7.h **** } 1755:./include/lib_AT91SAM7.h **** 1756:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1757:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_GetChar 1758:./include/lib_AT91SAM7.h **** //* \brief Receive a character,does not check if a character is available 1759:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1760:./include/lib_AT91SAM7.h **** static inline int AT91F_SPI_GetChar ( 1761:./include/lib_AT91SAM7.h **** const AT91PS_SPI pSPI) 1762:./include/lib_AT91SAM7.h **** { 1763:./include/lib_AT91SAM7.h **** return((pSPI->SPI_RDR) & 0xFFFF); 1764:./include/lib_AT91SAM7.h **** } 1765:./include/lib_AT91SAM7.h **** 1766:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1767:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_GetInterruptMaskStatus 1768:./include/lib_AT91SAM7.h **** //* \brief Return SPI Interrupt Mask Status 1769:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1770:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_GetInterruptMaskStatus( // \return SPI Interrupt Mask Status 1771:./include/lib_AT91SAM7.h **** AT91PS_SPI pSpi) // \arg pointer to a SPI controller 1772:./include/lib_AT91SAM7.h **** { 1773:./include/lib_AT91SAM7.h **** return pSpi->SPI_IMR; 1774:./include/lib_AT91SAM7.h **** } 1775:./include/lib_AT91SAM7.h **** 1776:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1777:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_IsInterruptMasked 1778:./include/lib_AT91SAM7.h **** //* \brief Test if SPI Interrupt is Masked 1779:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1780:./include/lib_AT91SAM7.h **** static inline int AT91F_SPI_IsInterruptMasked( 1781:./include/lib_AT91SAM7.h **** AT91PS_SPI pSpi, // \arg pointer to a SPI controller 1782:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1783:./include/lib_AT91SAM7.h **** { 1784:./include/lib_AT91SAM7.h **** return (AT91F_SPI_GetInterruptMaskStatus(pSpi) & flag); 1785:./include/lib_AT91SAM7.h **** } 1786:./include/lib_AT91SAM7.h **** 1787:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 1788:./include/lib_AT91SAM7.h **** SOFTWARE API FOR ADC 1789:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 1790:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1791:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_EnableIt 1792:./include/lib_AT91SAM7.h **** //* \brief Enable ADC interrupt 1793:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1794:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_EnableIt ( 1795:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1796:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled 1797:./include/lib_AT91SAM7.h **** { 1798:./include/lib_AT91SAM7.h **** //* Write to the IER register 1799:./include/lib_AT91SAM7.h **** pADC->ADC_IER = flag; 1800:./include/lib_AT91SAM7.h **** } 1801:./include/lib_AT91SAM7.h **** 1802:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1803:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_DisableIt 1804:./include/lib_AT91SAM7.h **** //* \brief Disable ADC interrupt 1805:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1806:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_DisableIt ( 1807:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1808:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled 1809:./include/lib_AT91SAM7.h **** { 1810:./include/lib_AT91SAM7.h **** //* Write to the IDR register 1811:./include/lib_AT91SAM7.h **** pADC->ADC_IDR = flag; 1812:./include/lib_AT91SAM7.h **** } 1813:./include/lib_AT91SAM7.h **** 1814:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1815:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetStatus 1816:./include/lib_AT91SAM7.h **** //* \brief Return ADC Interrupt Status 1817:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1818:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetStatus( // \return ADC Interrupt Status 1819:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC) // pointer to a ADC controller 1820:./include/lib_AT91SAM7.h **** { 1821:./include/lib_AT91SAM7.h **** return pADC->ADC_SR; 1822:./include/lib_AT91SAM7.h **** } 1823:./include/lib_AT91SAM7.h **** 1824:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1825:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetInterruptMaskStatus 1826:./include/lib_AT91SAM7.h **** //* \brief Return ADC Interrupt Mask Status 1827:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1828:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status 1829:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC) // pointer to a ADC controller 1830:./include/lib_AT91SAM7.h **** { 1831:./include/lib_AT91SAM7.h **** return pADC->ADC_IMR; 1832:./include/lib_AT91SAM7.h **** } 1833:./include/lib_AT91SAM7.h **** 1834:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1835:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_IsInterruptMasked 1836:./include/lib_AT91SAM7.h **** //* \brief Test if ADC Interrupt is Masked 1837:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1838:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_IsInterruptMasked( 1839:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // \arg pointer to a ADC controller 1840:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1841:./include/lib_AT91SAM7.h **** { 1842:./include/lib_AT91SAM7.h **** return (AT91F_ADC_GetInterruptMaskStatus(pADC) & flag); 1843:./include/lib_AT91SAM7.h **** } 1844:./include/lib_AT91SAM7.h **** 1845:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1846:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_IsStatusSet 1847:./include/lib_AT91SAM7.h **** //* \brief Test if ADC Status is Set 1848:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1849:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_IsStatusSet( 1850:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // \arg pointer to a ADC controller 1851:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 1852:./include/lib_AT91SAM7.h **** { 1853:./include/lib_AT91SAM7.h **** return (AT91F_ADC_GetStatus(pADC) & flag); 1854:./include/lib_AT91SAM7.h **** } 1855:./include/lib_AT91SAM7.h **** 1856:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1857:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_CfgModeReg 1858:./include/lib_AT91SAM7.h **** //* \brief Configure the Mode Register of the ADC controller 1859:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1860:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_CfgModeReg ( 1861:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1862:./include/lib_AT91SAM7.h **** unsigned int mode) // mode register 1863:./include/lib_AT91SAM7.h **** { 1864:./include/lib_AT91SAM7.h **** //* Write to the MR register 1865:./include/lib_AT91SAM7.h **** pADC->ADC_MR = mode; 1866:./include/lib_AT91SAM7.h **** } 1867:./include/lib_AT91SAM7.h **** 1868:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1869:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetModeReg 1870:./include/lib_AT91SAM7.h **** //* \brief Return the Mode Register of the ADC controller value 1871:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1872:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetModeReg ( 1873:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1874:./include/lib_AT91SAM7.h **** ) 1875:./include/lib_AT91SAM7.h **** { 1876:./include/lib_AT91SAM7.h **** return pADC->ADC_MR; 1877:./include/lib_AT91SAM7.h **** } 1878:./include/lib_AT91SAM7.h **** 1879:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1880:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_CfgTimings 1881:./include/lib_AT91SAM7.h **** //* \brief Configure the different necessary timings of the ADC controller 1882:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1883:./include/lib_AT91SAM7.h **** extern void AT91F_ADC_CfgTimings ( 1884:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1885:./include/lib_AT91SAM7.h **** unsigned int mck_clock, // in MHz 1886:./include/lib_AT91SAM7.h **** unsigned int adc_clock, // in MHz 1887:./include/lib_AT91SAM7.h **** unsigned int startup_time, // in us 1888:./include/lib_AT91SAM7.h **** unsigned int sample_and_hold_time); // in ns 1889:./include/lib_AT91SAM7.h **** 1890:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1891:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_EnableChannel 1892:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value 1893:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1894:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_EnableChannel ( 1895:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1896:./include/lib_AT91SAM7.h **** unsigned int channel) // mode register 1897:./include/lib_AT91SAM7.h **** { 1898:./include/lib_AT91SAM7.h **** //* Write to the CHER register 1899:./include/lib_AT91SAM7.h **** pADC->ADC_CHER = channel; 1900:./include/lib_AT91SAM7.h **** } 1901:./include/lib_AT91SAM7.h **** 1902:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1903:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_DisableChannel 1904:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value 1905:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1906:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_DisableChannel ( 1907:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller 1908:./include/lib_AT91SAM7.h **** unsigned int channel) // mode register 1909:./include/lib_AT91SAM7.h **** { 1910:./include/lib_AT91SAM7.h **** //* Write to the CHDR register 1911:./include/lib_AT91SAM7.h **** pADC->ADC_CHDR = channel; 1912:./include/lib_AT91SAM7.h **** } 1913:./include/lib_AT91SAM7.h **** 1914:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1915:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetChannelStatus 1916:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value 1917:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1918:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetChannelStatus ( 1919:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1920:./include/lib_AT91SAM7.h **** ) 1921:./include/lib_AT91SAM7.h **** { 1922:./include/lib_AT91SAM7.h **** return pADC->ADC_CHSR; 1923:./include/lib_AT91SAM7.h **** } 1924:./include/lib_AT91SAM7.h **** 1925:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1926:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_StartConversion 1927:./include/lib_AT91SAM7.h **** //* \brief Software request for a analog to digital conversion 1928:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1929:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_StartConversion ( 1930:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1931:./include/lib_AT91SAM7.h **** ) 1932:./include/lib_AT91SAM7.h **** { 1933:./include/lib_AT91SAM7.h **** pADC->ADC_CR = AT91C_ADC_START; 1934:./include/lib_AT91SAM7.h **** } 1935:./include/lib_AT91SAM7.h **** 1936:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1937:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_SoftReset 1938:./include/lib_AT91SAM7.h **** //* \brief Software reset 1939:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1940:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_SoftReset ( 1941:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1942:./include/lib_AT91SAM7.h **** ) 1943:./include/lib_AT91SAM7.h **** { 1944:./include/lib_AT91SAM7.h **** pADC->ADC_CR = AT91C_ADC_SWRST; 1945:./include/lib_AT91SAM7.h **** } 1946:./include/lib_AT91SAM7.h **** 1947:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1948:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetLastConvertedData 1949:./include/lib_AT91SAM7.h **** //* \brief Return the Last Converted Data 1950:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1951:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetLastConvertedData ( 1952:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1953:./include/lib_AT91SAM7.h **** ) 1954:./include/lib_AT91SAM7.h **** { 1955:./include/lib_AT91SAM7.h **** return pADC->ADC_LCDR; 1956:./include/lib_AT91SAM7.h **** } 1957:./include/lib_AT91SAM7.h **** 1958:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1959:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH0 1960:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 0 Converted Data 1961:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1962:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH0 ( 1963:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1964:./include/lib_AT91SAM7.h **** ) 1965:./include/lib_AT91SAM7.h **** { 1966:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR0; 1967:./include/lib_AT91SAM7.h **** } 1968:./include/lib_AT91SAM7.h **** 1969:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1970:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH1 1971:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 1 Converted Data 1972:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1973:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH1 ( 1974:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1975:./include/lib_AT91SAM7.h **** ) 1976:./include/lib_AT91SAM7.h **** { 1977:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR1; 1978:./include/lib_AT91SAM7.h **** } 1979:./include/lib_AT91SAM7.h **** 1980:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1981:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH2 1982:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 2 Converted Data 1983:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1984:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH2 ( 1985:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1986:./include/lib_AT91SAM7.h **** ) 1987:./include/lib_AT91SAM7.h **** { 1988:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR2; 1989:./include/lib_AT91SAM7.h **** } 1990:./include/lib_AT91SAM7.h **** 1991:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1992:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH3 1993:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 3 Converted Data 1994:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 1995:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH3 ( 1996:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 1997:./include/lib_AT91SAM7.h **** ) 1998:./include/lib_AT91SAM7.h **** { 1999:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR3; 2000:./include/lib_AT91SAM7.h **** } 2001:./include/lib_AT91SAM7.h **** 2002:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2003:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH4 2004:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 4 Converted Data 2005:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2006:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH4 ( 2007:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 2008:./include/lib_AT91SAM7.h **** ) 2009:./include/lib_AT91SAM7.h **** { 2010:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR4; 2011:./include/lib_AT91SAM7.h **** } 2012:./include/lib_AT91SAM7.h **** 2013:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2014:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH5 2015:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 5 Converted Data 2016:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2017:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH5 ( 2018:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 2019:./include/lib_AT91SAM7.h **** ) 2020:./include/lib_AT91SAM7.h **** { 2021:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR5; 2022:./include/lib_AT91SAM7.h **** } 2023:./include/lib_AT91SAM7.h **** 2024:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2025:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH6 2026:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 6 Converted Data 2027:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2028:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH6 ( 2029:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 2030:./include/lib_AT91SAM7.h **** ) 2031:./include/lib_AT91SAM7.h **** { 2032:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR6; 2033:./include/lib_AT91SAM7.h **** } 2034:./include/lib_AT91SAM7.h **** 2035:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2036:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH7 2037:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 7 Converted Data 2038:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2039:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH7 ( 2040:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller 2041:./include/lib_AT91SAM7.h **** ) 2042:./include/lib_AT91SAM7.h **** { 2043:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR7; 2044:./include/lib_AT91SAM7.h **** } 2045:./include/lib_AT91SAM7.h **** 2046:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 2047:./include/lib_AT91SAM7.h **** SOFTWARE API FOR SSC 2048:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 2049:./include/lib_AT91SAM7.h **** //* Define the standard I2S mode configuration 2050:./include/lib_AT91SAM7.h **** 2051:./include/lib_AT91SAM7.h **** //* Configuration to set in the SSC Transmit Clock Mode Register 2052:./include/lib_AT91SAM7.h **** //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits 2053:./include/lib_AT91SAM7.h **** //* nb_slot_by_frame : number of channels 2054:./include/lib_AT91SAM7.h **** #define AT91C_I2S_ASY_MASTER_TX_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\ 2055:./include/lib_AT91SAM7.h **** AT91C_SSC_CKS_DIV +\ 2056:./include/lib_AT91SAM7.h **** AT91C_SSC_CKO_CONTINOUS +\ 2057:./include/lib_AT91SAM7.h **** AT91C_SSC_CKG_NONE +\ 2058:./include/lib_AT91SAM7.h **** AT91C_SSC_START_FALL_RF +\ 2059:./include/lib_AT91SAM7.h **** AT91C_SSC_STTOUT +\ 2060:./include/lib_AT91SAM7.h **** ((1<<16) & AT91C_SSC_STTDLY) +\ 2061:./include/lib_AT91SAM7.h **** ((((nb_bit_by_slot*nb_slot_by_frame)/2)-1) <<24)) 2062:./include/lib_AT91SAM7.h **** 2063:./include/lib_AT91SAM7.h **** 2064:./include/lib_AT91SAM7.h **** //* Configuration to set in the SSC Transmit Frame Mode Register 2065:./include/lib_AT91SAM7.h **** //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits 2066:./include/lib_AT91SAM7.h **** //* nb_slot_by_frame : number of channels 2067:./include/lib_AT91SAM7.h **** #define AT91C_I2S_ASY_TX_FRAME_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\ 2068:./include/lib_AT91SAM7.h **** (nb_bit_by_slot-1) +\ 2069:./include/lib_AT91SAM7.h **** AT91C_SSC_MSBF +\ 2070:./include/lib_AT91SAM7.h **** (((nb_slot_by_frame-1)<<8) & AT91C_SSC_DATNB) +\ 2071:./include/lib_AT91SAM7.h **** (((nb_bit_by_slot-1)<<16) & AT91C_SSC_FSLEN) +\ 2072:./include/lib_AT91SAM7.h **** AT91C_SSC_FSOS_NEGATIVE) 2073:./include/lib_AT91SAM7.h **** 2074:./include/lib_AT91SAM7.h **** 2075:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2076:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_SetBaudrate 2077:./include/lib_AT91SAM7.h **** //* \brief Set the baudrate according to the CPU clock 2078:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2079:./include/lib_AT91SAM7.h **** extern void AT91F_SSC_SetBaudrate ( 2080:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 2081:./include/lib_AT91SAM7.h **** unsigned int mainClock, // \arg peripheral clock 2082:./include/lib_AT91SAM7.h **** unsigned int speed); // \arg SSC baudrate 2083:./include/lib_AT91SAM7.h **** 2084:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2085:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_Configure 2086:./include/lib_AT91SAM7.h **** //* \brief Configure SSC 2087:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2088:./include/lib_AT91SAM7.h **** extern void AT91F_SSC_Configure ( 2089:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 2090:./include/lib_AT91SAM7.h **** unsigned int syst_clock, // \arg System Clock Frequency 2091:./include/lib_AT91SAM7.h **** unsigned int baud_rate, // \arg Expected Baud Rate Frequency 2092:./include/lib_AT91SAM7.h **** unsigned int clock_rx, // \arg Receiver Clock Parameters 2093:./include/lib_AT91SAM7.h **** unsigned int mode_rx, // \arg mode Register to be programmed 2094:./include/lib_AT91SAM7.h **** unsigned int clock_tx, // \arg Transmitter Clock Parameters 2095:./include/lib_AT91SAM7.h **** unsigned int mode_tx); // \arg mode Register to be programmed 2096:./include/lib_AT91SAM7.h **** 2097:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2098:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableRx 2099:./include/lib_AT91SAM7.h **** //* \brief Enable receiving datas 2100:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2101:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableRx ( 2102:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller 2103:./include/lib_AT91SAM7.h **** { 2104:./include/lib_AT91SAM7.h **** //* Enable receiver 2105:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_RXEN; 2106:./include/lib_AT91SAM7.h **** } 2107:./include/lib_AT91SAM7.h **** 2108:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2109:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableRx 2110:./include/lib_AT91SAM7.h **** //* \brief Disable receiving datas 2111:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2112:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableRx ( 2113:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller 2114:./include/lib_AT91SAM7.h **** { 2115:./include/lib_AT91SAM7.h **** //* Disable receiver 2116:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_RXDIS; 2117:./include/lib_AT91SAM7.h **** } 2118:./include/lib_AT91SAM7.h **** 2119:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2120:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableTx 2121:./include/lib_AT91SAM7.h **** //* \brief Enable sending datas 2122:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2123:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableTx ( 2124:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller 2125:./include/lib_AT91SAM7.h **** { 2126:./include/lib_AT91SAM7.h **** //* Enable transmitter 2127:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_TXEN; 2128:./include/lib_AT91SAM7.h **** } 2129:./include/lib_AT91SAM7.h **** 2130:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2131:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableTx 2132:./include/lib_AT91SAM7.h **** //* \brief Disable sending datas 2133:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2134:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableTx ( 2135:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller 2136:./include/lib_AT91SAM7.h **** { 2137:./include/lib_AT91SAM7.h **** //* Disable transmitter 2138:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_TXDIS; 2139:./include/lib_AT91SAM7.h **** } 2140:./include/lib_AT91SAM7.h **** 2141:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2142:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableIt 2143:./include/lib_AT91SAM7.h **** //* \brief Enable SSC IT 2144:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2145:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableIt ( 2146:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 2147:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg IT to be enabled 2148:./include/lib_AT91SAM7.h **** { 2149:./include/lib_AT91SAM7.h **** //* Write to the IER register 2150:./include/lib_AT91SAM7.h **** pSSC->SSC_IER = flag; 2151:./include/lib_AT91SAM7.h **** } 2152:./include/lib_AT91SAM7.h **** 2153:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2154:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableIt 2155:./include/lib_AT91SAM7.h **** //* \brief Disable SSC IT 2156:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2157:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableIt ( 2158:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller 2159:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg IT to be disabled 2160:./include/lib_AT91SAM7.h **** { 2161:./include/lib_AT91SAM7.h **** //* Write to the IDR register 2162:./include/lib_AT91SAM7.h **** pSSC->SSC_IDR = flag; 2163:./include/lib_AT91SAM7.h **** } 2164:./include/lib_AT91SAM7.h **** 2165:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2166:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_ReceiveFrame 2167:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init 2168:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2169:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_ReceiveFrame ( 2170:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, 2171:./include/lib_AT91SAM7.h **** unsigned char *pBuffer, 2172:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 2173:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer, 2174:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer ) 2175:./include/lib_AT91SAM7.h **** { 2176:./include/lib_AT91SAM7.h **** return AT91F_PDC_ReceiveFrame( 2177:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSSC->SSC_RPR), 2178:./include/lib_AT91SAM7.h **** pBuffer, 2179:./include/lib_AT91SAM7.h **** szBuffer, 2180:./include/lib_AT91SAM7.h **** pNextBuffer, 2181:./include/lib_AT91SAM7.h **** szNextBuffer); 2182:./include/lib_AT91SAM7.h **** } 2183:./include/lib_AT91SAM7.h **** 2184:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2185:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_SendFrame 2186:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init 2187:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2188:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_SendFrame( 2189:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, 2190:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer, 2191:./include/lib_AT91SAM7.h **** unsigned int szBuffer, 2192:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer, 2193:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer ) 2194:./include/lib_AT91SAM7.h **** { 2195:./include/lib_AT91SAM7.h **** return AT91F_PDC_SendFrame( 2196:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSSC->SSC_RPR), 2197:./include/lib_AT91SAM7.h **** pBuffer, 2198:./include/lib_AT91SAM7.h **** szBuffer, 2199:./include/lib_AT91SAM7.h **** pNextBuffer, 2200:./include/lib_AT91SAM7.h **** szNextBuffer); 2201:./include/lib_AT91SAM7.h **** } 2202:./include/lib_AT91SAM7.h **** 2203:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2204:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_GetInterruptMaskStatus 2205:./include/lib_AT91SAM7.h **** //* \brief Return SSC Interrupt Mask Status 2206:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2207:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status 2208:./include/lib_AT91SAM7.h **** AT91PS_SSC pSsc) // \arg pointer to a SSC controller 2209:./include/lib_AT91SAM7.h **** { 2210:./include/lib_AT91SAM7.h **** return pSsc->SSC_IMR; 2211:./include/lib_AT91SAM7.h **** } 2212:./include/lib_AT91SAM7.h **** 2213:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2214:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_IsInterruptMasked 2215:./include/lib_AT91SAM7.h **** //* \brief Test if SSC Interrupt is Masked 2216:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2217:./include/lib_AT91SAM7.h **** static inline int AT91F_SSC_IsInterruptMasked( 2218:./include/lib_AT91SAM7.h **** AT91PS_SSC pSsc, // \arg pointer to a SSC controller 2219:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested 2220:./include/lib_AT91SAM7.h **** { 2221:./include/lib_AT91SAM7.h **** return (AT91F_SSC_GetInterruptMaskStatus(pSsc) & flag); 2222:./include/lib_AT91SAM7.h **** } 2223:./include/lib_AT91SAM7.h **** 2224:./include/lib_AT91SAM7.h **** /* ***************************************************************************** 2225:./include/lib_AT91SAM7.h **** SOFTWARE API FOR USART 2226:./include/lib_AT91SAM7.h **** ***************************************************************************** */ 2227:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2228:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_Baudrate 2229:./include/lib_AT91SAM7.h **** //* \brief Calculate the baudrate 2230:./include/lib_AT91SAM7.h **** //* Standard Asynchronous Mode : 8 bits , 1 stop , no parity 2231:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_MODE ( AT91C_US_USMODE_NORMAL + \ 2232:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \ 2233:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \ 2234:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \ 2235:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK ) 2236:./include/lib_AT91SAM7.h **** 2237:./include/lib_AT91SAM7.h **** //* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity 2238:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_SCK_MODE ( AT91C_US_USMODE_NORMAL + \ 2239:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \ 2240:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \ 2241:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \ 2242:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_EXT ) 2243:./include/lib_AT91SAM7.h **** 2244:./include/lib_AT91SAM7.h **** //* Standard Synchronous Mode : 8 bits , 1 stop , no parity 2245:./include/lib_AT91SAM7.h **** #define AT91C_US_SYNC_MODE ( AT91C_US_SYNC + \ 2246:./include/lib_AT91SAM7.h **** AT91C_US_USMODE_NORMAL + \ 2247:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \ 2248:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \ 2249:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \ 2250:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK ) 2251:./include/lib_AT91SAM7.h **** 2252:./include/lib_AT91SAM7.h **** //* SCK used Label 2253:./include/lib_AT91SAM7.h **** #define AT91C_US_SCK_USED (AT91C_US_CKLO | AT91C_US_CLKS_EXT) 2254:./include/lib_AT91SAM7.h **** 2255:./include/lib_AT91SAM7.h **** //* Standard ISO T=0 Mode : 8 bits , 1 stop , parity 2256:./include/lib_AT91SAM7.h **** #define AT91C_US_ISO_READER_MODE ( AT91C_US_USMODE_ISO7816_0 + \ 2257:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK +\ 2258:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \ 2259:./include/lib_AT91SAM7.h **** AT91C_US_PAR_EVEN + \ 2260:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \ 2261:./include/lib_AT91SAM7.h **** AT91C_US_CKLO +\ 2262:./include/lib_AT91SAM7.h **** AT91C_US_OVER) 2263:./include/lib_AT91SAM7.h **** 2264:./include/lib_AT91SAM7.h **** //* Standard IRDA mode 2265:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_IRDA_MODE ( AT91C_US_USMODE_IRDA + \ 2266:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \ 2267:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \ 2268:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \ 2269:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK ) 2270:./include/lib_AT91SAM7.h **** 2271:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2272:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_Baudrate 2273:./include/lib_AT91SAM7.h **** //* \brief Caluculate baud_value according to the main clock and the baud rate 2274:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2275:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_US_Baudrate ( 2276:./include/lib_AT91SAM7.h **** const unsigned int main_clock, // \arg peripheral clock 2277:./include/lib_AT91SAM7.h **** const unsigned int baud_rate) // \arg UART baudrate 2278:./include/lib_AT91SAM7.h **** { 2279:./include/lib_AT91SAM7.h **** unsigned int baud_value = ((main_clock*10)/(baud_rate * 16)); 1004 .loc 1 2279 0 1005 04d8 0A50A0E3 mov r5, #10 1006 .LBE45: 1007 .LBE44: 1008 .LBE42: 1009 .LBE40: 362:lib/lib_AT91SAM7.c **** 363:lib/lib_AT91SAM7.c **** //* Reset receiver and transmitter 364:lib/lib_AT91SAM7.c **** pUSART->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS ; 1010 .loc 2 364 0 1011 04dc AD2082E2 add r2, r2, #173 1012 04e0 002080E5 str r2, [r0, #0] 359:lib/lib_AT91SAM7.c **** { 1013 .loc 2 359 0 1014 04e4 0040A0E1 mov r4, r0 1015 .LVL81: 1016 .LBB48: 1017 .LBB41: 1018 .LBB43: 1019 .LBB46: 1020 .loc 1 2279 0 1021 04e8 950100E0 mul r0, r5, r1 1022 .LVL82: 1023 04ec 0312A0E1 mov r1, r3, asl #4 1024 .LVL83: 1025 04f0 FEFFFFEB bl __aeabi_uidiv 1026 .LVL84: 2280:./include/lib_AT91SAM7.h **** if ((baud_value % 10) >= 5) 1027 .loc 1 2280 0 1028 04f4 0510A0E1 mov r1, r5 2279:./include/lib_AT91SAM7.h **** unsigned int baud_value = ((main_clock*10)/(baud_rate * 16)); 1029 .loc 1 2279 0 1030 04f8 0070A0E1 mov r7, r0 1031 .LVL85: 1032 .loc 1 2280 0 1033 04fc FEFFFFEB bl __aeabi_uidivmod 1034 .LVL86: 1035 0500 040051E3 cmp r1, #4 1036 0504 0400009A bls .L49 2281:./include/lib_AT91SAM7.h **** baud_value = (baud_value / 10) + 1; 1037 .loc 1 2281 0 1038 0508 0700A0E1 mov r0, r7 1039 050c 0510A0E1 mov r1, r5 1040 0510 FEFFFFEB bl __aeabi_uidiv 1041 0514 010080E2 add r0, r0, #1 1042 .LVL87: 1043 0518 020000EA b .L50 1044 .LVL88: 1045 .L49: 2282:./include/lib_AT91SAM7.h **** else 2283:./include/lib_AT91SAM7.h **** baud_value /= 10; 1046 .loc 1 2283 0 1047 051c 0700A0E1 mov r0, r7 1048 0520 0510A0E1 mov r1, r5 1049 0524 FEFFFFEB bl __aeabi_uidiv 1050 .LVL89: 1051 .L50: 1052 .LBE46: 1053 .LBE43: 1054 .LBE41: 1055 .LBE48: 1056 .LBB49: 1057 .LBB50: 2284:./include/lib_AT91SAM7.h **** return baud_value; 2285:./include/lib_AT91SAM7.h **** } 2286:./include/lib_AT91SAM7.h **** 2287:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2288:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_SetBaudrate 2289:./include/lib_AT91SAM7.h **** //* \brief Set the baudrate according to the CPU clock 2290:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2291:./include/lib_AT91SAM7.h **** static inline void AT91F_US_SetBaudrate ( 2292:./include/lib_AT91SAM7.h **** AT91PS_USART pUSART, // \arg pointer to a USART controller 2293:./include/lib_AT91SAM7.h **** unsigned int mainClock, // \arg peripheral clock 2294:./include/lib_AT91SAM7.h **** unsigned int speed) // \arg UART baudrate 2295:./include/lib_AT91SAM7.h **** { 2296:./include/lib_AT91SAM7.h **** //* Define the baud rate divisor register 2297:./include/lib_AT91SAM7.h **** pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed); 2298:./include/lib_AT91SAM7.h **** } 2299:./include/lib_AT91SAM7.h **** 2300:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2301:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_SetTimeguard 2302:./include/lib_AT91SAM7.h **** //* \brief Set USART timeguard 2303:./include/lib_AT91SAM7.h **** //*---------------------------------------------------------------------------- 2304:./include/lib_AT91SAM7.h **** static inline void AT91F_US_SetTimeguard ( 2305:./include/lib_AT91SAM7.h **** AT91PS_USART pUSART, // \arg pointer to a USART controller 2306:./include/lib_AT91SAM7.h **** unsigned int timeguard) // \arg timeguard value 2307:./include/lib_AT91SAM7.h **** { 2308:./include/lib_AT91SAM7.h **** //* Write the Timeguard Register 2309:./include/lib_AT91SAM7.h **** pUSART->US_TTGR = timeguard ; 1058 .loc 1 2309 0 1059 0528 18309DE5 ldr r3, [sp, #24] 1060 .LBE50: 1061 .LBE49: 1062 .LBB52: 1063 .LBB47: 2297:./include/lib_AT91SAM7.h **** pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed); 1064 .loc 1 2297 0 1065 052c 200084E5 str r0, [r4, #32] 1066 .LVL90: 1067 .LBE47: 1068 .LBE52: 1069 .LBB53: 1070 .LBB51: 1071 .loc 1 2309 0 1072 0530 283084E5 str r3, [r4, #40] 1073 .LBE51: 1074 .LBE53: 365:lib/lib_AT91SAM7.c **** 366:lib/lib_AT91SAM7.c **** //* Define the baud rate divisor register 367:lib/lib_AT91SAM7.c **** AT91F_US_SetBaudrate(pUSART, mainClock, baudRate); 368:lib/lib_AT91SAM7.c **** 369:lib/lib_AT91SAM7.c **** //* Write the Timeguard Register 370:lib/lib_AT91SAM7.c **** AT91F_US_SetTimeguard(pUSART, timeguard); 371:lib/lib_AT91SAM7.c **** 372:lib/lib_AT91SAM7.c **** //* Clear Transmit and Receive Counters 373:lib/lib_AT91SAM7.c **** AT91F_PDC_Open((AT91PS_PDC) &(pUSART->US_RPR)); 1075 .loc 2 373 0 1076 0534 010C84E2 add r0, r4, #256 1077 .LVL91: 1078 0538 FEFFFFEB bl AT91F_PDC_Open 1079 .LVL92: 374:lib/lib_AT91SAM7.c **** 375:lib/lib_AT91SAM7.c **** //* Define the USART mode 376:lib/lib_AT91SAM7.c **** pUSART->US_MR = mode ; 1080 .loc 2 376 0 1081 053c 046084E5 str r6, [r4, #4] 377:lib/lib_AT91SAM7.c **** 378:lib/lib_AT91SAM7.c **** } 1082 .loc 2 378 0 1083 0540 F840BDE8 ldmfd sp!, {r3, r4, r5, r6, r7, lr} 1084 0544 1EFF2FE1 bx lr 1085 .cfi_endproc 1086 .LFE286: 1088 .align 2 1089 .global AT91F_US_Close 1091 AT91F_US_Close: 1092 .LFB287: 379:lib/lib_AT91SAM7.c **** 380:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 381:lib/lib_AT91SAM7.c **** //* \fn AT91F_US_Close 382:lib/lib_AT91SAM7.c **** //* \brief Close USART: disable IT disable receiver and transmitter, close PDC 383:lib/lib_AT91SAM7.c **** //*---------------------------------------------------------------------------- 384:lib/lib_AT91SAM7.c **** void AT91F_US_Close(AT91PS_USART pUSART) // \arg pointer to a USART controller 385:lib/lib_AT91SAM7.c **** { 1093 .loc 2 385 0 1094 .cfi_startproc 1095 @ Function supports interworking. 1096 @ args = 0, pretend = 0, frame = 0 1097 @ frame_needed = 0, uses_anonymous_args = 0 1098 .LVL93: 386:lib/lib_AT91SAM7.c **** //* Reset the baud rate divisor register 387:lib/lib_AT91SAM7.c **** pUSART->US_BRGR = 0 ; 1099 .loc 2 387 0 1100 0548 0030A0E3 mov r3, #0 385:lib/lib_AT91SAM7.c **** { 1101 .loc 2 385 0 1102 054c 10402DE9 stmfd sp!, {r4, lr} 1103 .LCFI13: 1104 .cfi_def_cfa_offset 8 1105 .loc 2 387 0 1106 0550 203080E5 str r3, [r0, #32] 388:lib/lib_AT91SAM7.c **** 389:lib/lib_AT91SAM7.c **** //* Reset the USART mode 390:lib/lib_AT91SAM7.c **** pUSART->US_MR = 0 ; 1107 .loc 2 390 0 1108 0554 043080E5 str r3, [r0, #4] 391:lib/lib_AT91SAM7.c **** 392:lib/lib_AT91SAM7.c **** //* Reset the Timeguard Register 393:lib/lib_AT91SAM7.c **** pUSART->US_TTGR = 0; 1109 .loc 2 393 0 1110 0558 283080E5 str r3, [r0, #40] 394:lib/lib_AT91SAM7.c **** 395:lib/lib_AT91SAM7.c **** //* Disable all interrupts 396:lib/lib_AT91SAM7.c **** pUSART->US_IDR = 0xFFFFFFFF ; 1111 .loc 2 396 0 1112 055c 0030E0E3 mvn r3, #0 1113 0560 0C3080E5 str r3, [r0, #12] 385:lib/lib_AT91SAM7.c **** { 1114 .loc 2 385 0 1115 0564 0040A0E1 mov r4, r0 1116 .cfi_offset 14, -4 1117 .cfi_offset 4, -8 397:lib/lib_AT91SAM7.c **** 398:lib/lib_AT91SAM7.c **** //* Abort the Peripheral Data Transfers 399:lib/lib_AT91SAM7.c **** AT91F_PDC_Close((AT91PS_PDC) &(pUSART->US_RPR)); 1118 .loc 2 399 0 1119 0568 010C80E2 add r0, r0, #256 1120 .LVL94: 1121 056c FEFFFFEB bl AT91F_PDC_Close 400:lib/lib_AT91SAM7.c **** 401:lib/lib_AT91SAM7.c **** //* Disable receiver and transmitter and stop any activity immediately 402:lib/lib_AT91SAM7.c **** pUSART->US_CR = AT91C_US_TXDIS | AT91C_US_RXDIS | AT91C_US_RSTTX | AT91C_US_RSTRX ; 1122 .loc 2 402 0 1123 0570 AC30A0E3 mov r3, #172 1124 0574 003084E5 str r3, [r4, #0] 403:lib/lib_AT91SAM7.c **** } 1125 .loc 2 403 0 1126 0578 1040BDE8 ldmfd sp!, {r4, lr} 1127 057c 1EFF2FE1 bx lr 1128 .cfi_endproc 1129 .LFE287: 1131 .Letext0: DEFINED SYMBOLS *ABS*:00000000 lib_AT91SAM7.c C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:21 .text:00000000 $a C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:23 .text:00000000 AT91F_PDC_SetNextRx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:44 .text:0000000c AT91F_PDC_SetNextTx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:64 .text:00000018 AT91F_PDC_SetRx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:84 .text:00000024 AT91F_PDC_SetTx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:104 .text:00000030 AT91F_PDC_DisableTx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:123 .text:0000003c AT91F_PDC_DisableRx C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:142 .text:00000048 AT91F_CKGR_GetMainClock C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:166 .text:00000060 AT91F_AIC_ConfigureIt C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:214 .text:00000098 AT91F_AIC_SetExceptionVector C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:247 .text:000000c8 $d C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:251 .text:000000cc $a C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:254 .text:000000cc AT91F_AIC_Open C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:343 .text:00000148 AT91F_PDC_Open C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:409 .text:000001b4 AT91F_PDC_Close C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:459 .text:0000020c AT91F_PDC_SendFrame C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:531 .text:00000260 AT91F_PDC_ReceiveFrame C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:604 .text:000002b4 AT91F_PMC_GetMasterClock C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:692 .text:0000033c $d C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:696 .text:00000340 $a C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:699 .text:00000340 AT91F_RTTReadValue C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:739 .text:00000370 AT91F_SPI_Close C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:786 .text:000003b0 AT91F_ADC_CfgTimings C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:851 .text:00000418 AT91F_SSC_SetBaudrate C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:919 .text:0000047c AT91F_SSC_Configure C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:970 .text:000004c4 $d C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:974 .text:000004c8 $a C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:977 .text:000004c8 AT91F_US_Configure C:\Users\netz\AppData\Local\Temp\ccjk3Igv.s:1091 .text:00000548 AT91F_US_Close .debug_frame:00000010 $d UNDEFINED SYMBOLS __aeabi_uidiv __aeabi_uidivmod