1 1 .file "lib_AT91SAM7.c"
4 11 .global AT91F_AIC_ConfigureIt
5 13 AT91F_AIC_ConfigureIt:
7 15 .file 1 "lib/lib_AT91SAM7.c"
8 1:lib/lib_AT91SAM7.c **** //* ----------------------------------------------------------------------------
9 2:lib/lib_AT91SAM7.c **** //* ATMEL Microcontroller Software Support - ROUSSET -
10 3:lib/lib_AT91SAM7.c **** //* ----------------------------------------------------------------------------
11 4:lib/lib_AT91SAM7.c **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
12 5:lib/lib_AT91SAM7.c **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
13 6:lib/lib_AT91SAM7.c **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
14 7:lib/lib_AT91SAM7.c **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
15 8:lib/lib_AT91SAM7.c **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
16 9:lib/lib_AT91SAM7.c **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
17 10:lib/lib_AT91SAM7.c **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
18 11:lib/lib_AT91SAM7.c **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
19 12:lib/lib_AT91SAM7.c **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
20 13:lib/lib_AT91SAM7.c **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21 14:lib/lib_AT91SAM7.c **** //* ----------------------------------------------------------------------------
22 15:lib/lib_AT91SAM7.c **** //* File Name : lib_AT91SAM7S64.h
23 16:lib/lib_AT91SAM7.c **** //* Object : AT91SAM7S64 inlined functions
24 17:lib/lib_AT91SAM7.c **** //* Generated : AT91 SW Application Group 08/30/2005 (15:52:59)
25 18:lib/lib_AT91SAM7.c **** //*
26 19:lib/lib_AT91SAM7.c ****
27 20:lib/lib_AT91SAM7.c **** #include <sys/types.h>
28 21:lib/lib_AT91SAM7.c **** #include <include/AT91SAM7.h>
29 22:lib/lib_AT91SAM7.c **** #include <include/lib_AT91SAM7.h>
30 23:lib/lib_AT91SAM7.c ****
31 24:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
32 25:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_ConfigureIt
33 26:lib/lib_AT91SAM7.c **** //* \brief Interrupt Handler Initialization
34 27:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
35 28:lib/lib_AT91SAM7.c **** unsigned int AT91F_AIC_ConfigureIt (
36 29:lib/lib_AT91SAM7.c **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
37 30:lib/lib_AT91SAM7.c **** unsigned int irq_id, // \arg interrupt number to initialize
38 31:lib/lib_AT91SAM7.c **** unsigned int priority, // \arg priority to give to the interrupt
39 32:lib/lib_AT91SAM7.c **** unsigned int src_type, // \arg activation and sense of activation
40 33:lib/lib_AT91SAM7.c **** void (*newHandler) () ) // \arg address of the interrupt handler
41 34:lib/lib_AT91SAM7.c **** {
43 17 @ args = 4, pretend = 0, frame = 0
44 18 @ frame_needed = 0, uses_anonymous_args = 0
46 35:lib/lib_AT91SAM7.c **** unsigned int oldHandler;
47 36:lib/lib_AT91SAM7.c **** unsigned int mask ;
48 37:lib/lib_AT91SAM7.c ****
49 38:lib/lib_AT91SAM7.c **** oldHandler = pAic->AIC_SVR[irq_id];
50 39:lib/lib_AT91SAM7.c ****
51 40:lib/lib_AT91SAM7.c **** mask = 0x1 << irq_id ;
53 21 0000 01C0A0E3 mov ip, #1
54 22 0004 1CC1A0E1 mov ip, ip, asl r1
57 25 0008 10402DE9 stmfd sp!, {r4, lr}
60 28 000c 01E180E0 add lr, r0, r1, asl #2
61 29 0010 80409EE5 ldr r4, [lr, #128]
63 41:lib/lib_AT91SAM7.c **** //* Disable the interrupt on the interrupt controller
64 42:lib/lib_AT91SAM7.c **** pAic->AIC_IDCR = mask ;
65 43:lib/lib_AT91SAM7.c **** //* Save the interrupt handler routine pointer and the interrupt priority
66 44:lib/lib_AT91SAM7.c **** pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ;
67 45:lib/lib_AT91SAM7.c **** //* Store the Source Mode Register
68 46:lib/lib_AT91SAM7.c **** pAic->AIC_SMR[irq_id] = src_type | priority ;
70 32 0014 023083E1 orr r3, r3, r2
73 35 0018 08209DE5 ldr r2, [sp, #8]
76 38 001c 24C180E5 str ip, [r0, #292]
78 40 0020 80208EE5 str r2, [lr, #128]
80 42 0024 013180E7 str r3, [r0, r1, asl #2]
81 47:lib/lib_AT91SAM7.c **** //* Clear the interrupt on the interrupt controller
82 48:lib/lib_AT91SAM7.c **** pAic->AIC_ICCR = mask ;
84 44 0028 28C180E5 str ip, [r0, #296]
85 49:lib/lib_AT91SAM7.c ****
86 50:lib/lib_AT91SAM7.c **** return oldHandler;
87 51:lib/lib_AT91SAM7.c **** }
89 46 002c 0400A0E1 mov r0, r4
91 48 0030 1080BDE8 ldmfd sp!, {r4, pc}
94 52 .global AT91F_AIC_SetExceptionVector
95 54 AT91F_AIC_SetExceptionVector:
97 52:lib/lib_AT91SAM7.c ****
98 53:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
99 54:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_SetExceptionVector
100 55:lib/lib_AT91SAM7.c **** //* \brief Configure vector handler
101 56:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
102 57:lib/lib_AT91SAM7.c **** unsigned int AT91F_AIC_SetExceptionVector (
103 58:lib/lib_AT91SAM7.c **** unsigned int *pVector, // \arg pointer to the AIC registers
104 59:lib/lib_AT91SAM7.c **** void (*Handler) () ) // \arg Interrupt Handler
105 60:lib/lib_AT91SAM7.c **** {
107 57 @ args = 0, pretend = 0, frame = 0
108 58 @ frame_needed = 0, uses_anonymous_args = 0
109 59 @ link register save eliminated.
111 61:lib/lib_AT91SAM7.c **** unsigned int oldVector = *pVector;
112 62:lib/lib_AT91SAM7.c ****
113 63:lib/lib_AT91SAM7.c **** if ((unsigned int) Handler == (unsigned int) AT91C_AIC_BRANCH_OPCODE)
115 62 0034 6B35E0E3 mvn r3, #448790528
116 63 0038 023643E2 sub r3, r3, #2097152
117 64 003c DF3043E2 sub r3, r3, #223
118 65 0040 030051E1 cmp r1, r3
119 64:lib/lib_AT91SAM7.c **** *pVector = (unsigned int) AT91C_AIC_BRANCH_OPCODE;
120 65:lib/lib_AT91SAM7.c **** else
121 66:lib/lib_AT91SAM7.c **** *pVector = (((((unsigned int) Handler) - ((unsigned int) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0x
123 67 0044 013060E0 rsb r3, r0, r1
124 68 0048 083043E2 sub r3, r3, #8
125 69 004c 2331A0E1 mov r3, r3, lsr #2
127 71 0050 002090E5 ldr r2, [r0, #0]
130 74 0054 FF34C3E3 bic r3, r3, #-16777216
131 75 0058 EA3483E3 orr r3, r3, #-369098752
133 77 005c 00108005 streq r1, [r0, #0]
135 79 0060 00308015 strne r3, [r0, #0]
136 67:lib/lib_AT91SAM7.c ****
137 68:lib/lib_AT91SAM7.c **** return oldVector;
138 69:lib/lib_AT91SAM7.c **** }
140 81 0064 0200A0E1 mov r0, r2
143 84 @ lr needed for prologue
145 86 0068 1EFF2FE1 bx lr
148 90 .global AT91F_AIC_Open
151 70:lib/lib_AT91SAM7.c ****
152 71:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
153 72:lib/lib_AT91SAM7.c **** //* \fn AT91F_AIC_Open
154 73:lib/lib_AT91SAM7.c **** //* \brief Set exception vectors and AIC registers to default values
155 74:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
156 75:lib/lib_AT91SAM7.c **** void AT91F_AIC_Open(
157 76:lib/lib_AT91SAM7.c **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
158 77:lib/lib_AT91SAM7.c **** void (*IrqHandler) (), // \arg Default IRQ vector exception
159 78:lib/lib_AT91SAM7.c **** void (*FiqHandler) (), // \arg Default FIQ vector exception
160 79:lib/lib_AT91SAM7.c **** void (*DefaultHandler) (), // \arg Default Handler set in ISR
161 80:lib/lib_AT91SAM7.c **** void (*SpuriousHandler) (), // \arg Default Spurious Handler
162 81:lib/lib_AT91SAM7.c **** unsigned int protectMode) // \arg Debug Control Register
163 82:lib/lib_AT91SAM7.c **** {
165 95 @ args = 8, pretend = 0, frame = 0
166 96 @ frame_needed = 0, uses_anonymous_args = 0
168 98 006c F0452DE9 stmfd sp!, {r4, r5, r6, r7, r8, sl, lr}
170 100 0070 0050A0E1 mov r5, r0
171 101 0074 04D04DE2 sub sp, sp, #4
174 104 0078 0180A0E1 mov r8, r1
175 105 007c 02A0A0E1 mov sl, r2
176 106 0080 0360A0E1 mov r6, r3
177 107 0084 0040A0E3 mov r4, #0
179 109 0088 0170A0E3 mov r7, #1
184 114 .file 2 "./include/lib_AT91SAM7.h"
185 1:./include/lib_AT91SAM7.h **** //* ----------------------------------------------------------------------------
186 2:./include/lib_AT91SAM7.h **** //* ATMEL Microcontroller Software Support - ROUSSET -
187 3:./include/lib_AT91SAM7.h **** //* ----------------------------------------------------------------------------
188 4:./include/lib_AT91SAM7.h **** //* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
189 5:./include/lib_AT91SAM7.h **** //* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
190 6:./include/lib_AT91SAM7.h **** //* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
191 7:./include/lib_AT91SAM7.h **** //* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
192 8:./include/lib_AT91SAM7.h **** //* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
193 9:./include/lib_AT91SAM7.h **** //* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
194 10:./include/lib_AT91SAM7.h **** //* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
195 11:./include/lib_AT91SAM7.h **** //* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
196 12:./include/lib_AT91SAM7.h **** //* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
197 13:./include/lib_AT91SAM7.h **** //* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
198 14:./include/lib_AT91SAM7.h **** //* ----------------------------------------------------------------------------
199 15:./include/lib_AT91SAM7.h **** //* File Name : lib_AT91SAM7S64.h
200 16:./include/lib_AT91SAM7.h **** //* Object : AT91SAM7S64 inlined functions
201 17:./include/lib_AT91SAM7.h **** //* Generated : AT91 SW Application Group 08/30/2005 (15:52:59)
202 18:./include/lib_AT91SAM7.h **** //*
203 19:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_dbgu.h/1.1/Thu Aug 25 12:56:22 2005//
204 20:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pmc_SAM7S.h/1.4/Tue Aug 30 13:00:43 2005//
205 21:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_VREG_6085B.h/1.1/Tue Feb 1 16:20:47 2005//
206 22:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_rstc_6098A.h/1.1/Wed Oct 6 10:39:20 2004//
207 23:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_ssc.h/1.4/Fri Jan 31 12:19:20 2003//
208 24:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_wdtc_6080A.h/1.1/Wed Oct 6 10:38:30 2004//
209 25:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_usart.h/1.5/Thu Nov 21 16:01:54 2002//
210 26:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_spi2.h/1.2/Tue Aug 23 15:37:28 2005//
211 27:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pitc_6079A.h/1.2/Tue Nov 9 14:43:56 2004//
212 28:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_aic_6075b.h/1.2/Thu Jul 7 07:48:22 2005//
213 29:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_twi.h/1.3/Mon Jul 19 14:27:58 2004//
214 30:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_adc.h/1.6/Fri Oct 17 09:12:38 2003//
215 31:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_rttc_6081A.h/1.1/Wed Oct 6 10:39:38 2004//
216 32:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_udp.h/1.5/Tue Aug 30 12:13:47 2005//
217 33:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_tc_1753b.h/1.1/Fri Jan 31 12:20:02 2003//
218 34:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_MC_SAM7S.h/1.1/Thu Mar 25 15:19:14 2004//
219 35:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pio.h/1.3/Fri Jan 31 12:18:56 2003//
220 36:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_PWM_SAM.h/1.3/Thu Jan 22 10:10:50 2004//
221 37:./include/lib_AT91SAM7.h **** //* CVS Reference : /lib_pdc.h/1.2/Tue Jul 2 13:29:40 2002//
222 38:./include/lib_AT91SAM7.h **** //* ----------------------------------------------------------------------------
223 39:./include/lib_AT91SAM7.h ****
224 40:./include/lib_AT91SAM7.h **** #ifndef lib_AT91SAM7S64_H
225 41:./include/lib_AT91SAM7.h **** #define lib_AT91SAM7S64_H
226 42:./include/lib_AT91SAM7.h ****
227 43:./include/lib_AT91SAM7.h **** #include <AT91SAM7.h>
228 44:./include/lib_AT91SAM7.h ****
229 45:./include/lib_AT91SAM7.h **** /* *****************************************************************************
230 46:./include/lib_AT91SAM7.h **** SOFTWARE API FOR AIC
231 47:./include/lib_AT91SAM7.h **** ***************************************************************************** */
232 48:./include/lib_AT91SAM7.h **** #define AT91C_AIC_BRANCH_OPCODE ((void (*) ()) 0xE51FFF20) // ldr, pc, [pc, #-&F20]
233 49:./include/lib_AT91SAM7.h ****
234 50:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
235 51:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_ConfigureIt
236 52:./include/lib_AT91SAM7.h **** //* \brief Interrupt Handler Initialization
237 53:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
238 54:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_AIC_ConfigureIt (
239 55:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
240 56:./include/lib_AT91SAM7.h **** unsigned int irq_id, // \arg interrupt number to initialize
241 57:./include/lib_AT91SAM7.h **** unsigned int priority, // \arg priority to give to the interrupt
242 58:./include/lib_AT91SAM7.h **** unsigned int src_type, // \arg activation and sense of activation
243 59:./include/lib_AT91SAM7.h **** void (*newHandler) () ); // \arg address of the interrupt handler
244 60:./include/lib_AT91SAM7.h ****
245 61:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
246 62:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_EnableIt
247 63:./include/lib_AT91SAM7.h **** //* \brief Enable corresponding IT number
248 64:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
249 65:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_EnableIt (
250 66:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
251 67:./include/lib_AT91SAM7.h **** unsigned int irq_id ) // \arg interrupt number to initialize
252 68:./include/lib_AT91SAM7.h **** {
253 69:./include/lib_AT91SAM7.h **** //* Enable the interrupt on the interrupt controller
254 70:./include/lib_AT91SAM7.h **** pAic->AIC_IECR = 0x1 << irq_id ;
255 71:./include/lib_AT91SAM7.h **** }
256 72:./include/lib_AT91SAM7.h ****
257 73:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
258 74:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_DisableIt
259 75:./include/lib_AT91SAM7.h **** //* \brief Disable corresponding IT number
260 76:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
261 77:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_DisableIt (
262 78:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
263 79:./include/lib_AT91SAM7.h **** unsigned int irq_id ) // \arg interrupt number to initialize
264 80:./include/lib_AT91SAM7.h **** {
265 81:./include/lib_AT91SAM7.h **** unsigned int mask = 0x1 << irq_id;
267 116 008c 1734A0E1 mov r3, r7, asl r4
271 83:lib/lib_AT91SAM7.c **** int i;
272 84:lib/lib_AT91SAM7.c ****
273 85:lib/lib_AT91SAM7.c **** // Disable all interrupts and set IVR to the default handler
274 86:lib/lib_AT91SAM7.c **** for (i = 0; i < 32; ++i) {
275 87:lib/lib_AT91SAM7.c **** AT91F_AIC_DisableIt(pAic, i);
276 88:lib/lib_AT91SAM7.c **** AT91F_AIC_ConfigureIt(pAic, i, AT91C_AIC_PRIOR_LOWEST, AT91C_AIC_SRCTYPE_HIGH_LEVEL, DefaultHandl
278 121 0090 0410A0E1 mov r1, r4
281 82:./include/lib_AT91SAM7.h **** //* Disable the interrupt on the interrupt controller
282 83:./include/lib_AT91SAM7.h **** pAic->AIC_IDCR = mask ;
284 125 0094 243185E5 str r3, [r5, #292]
288 129 0098 014084E2 add r4, r4, #1
291 84:./include/lib_AT91SAM7.h **** //* Clear the interrupt on the Interrupt Controller ( if one is pending )
292 85:./include/lib_AT91SAM7.h **** pAic->AIC_ICCR = mask ;
294 133 009c 283185E5 str r3, [r5, #296]
298 137 00a0 0500A0E1 mov r0, r5
299 138 00a4 0020A0E3 mov r2, #0
300 139 00a8 4030A0E3 mov r3, #64
302 141 00ac 00608DE5 str r6, [sp, #0]
303 142 00b0 FEFFFFEB bl AT91F_AIC_ConfigureIt
305 144 00b4 200054E3 cmp r4, #32
306 145 00b8 2100001A bne .L9
307 89:lib/lib_AT91SAM7.c **** }
308 90:lib/lib_AT91SAM7.c ****
309 91:lib/lib_AT91SAM7.c **** // Set the IRQ exception vector
310 92:lib/lib_AT91SAM7.c **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x18, IrqHandler);
312 147 00bc 0810A0E1 mov r1, r8
313 148 00c0 1800A0E3 mov r0, #24
314 149 00c4 FEFFFFEB bl AT91F_AIC_SetExceptionVector
315 93:lib/lib_AT91SAM7.c **** // Set the Fast Interrupt exception vector
316 94:lib/lib_AT91SAM7.c **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x1C, FiqHandler);
318 151 00c8 0A10A0E1 mov r1, sl
319 152 00cc 1C00A0E3 mov r0, #28
320 153 00d0 FEFFFFEB bl AT91F_AIC_SetExceptionVector
321 95:lib/lib_AT91SAM7.c ****
322 96:lib/lib_AT91SAM7.c **** pAic->AIC_SPU = (unsigned int) SpuriousHandler;
324 155 00d4 20309DE5 ldr r3, [sp, #32]
325 156 00d8 343185E5 str r3, [r5, #308]
326 97:lib/lib_AT91SAM7.c **** pAic->AIC_DCR = protectMode;
328 158 00dc 24209DE5 ldr r2, [sp, #36]
329 159 00e0 382185E5 str r2, [r5, #312]
330 98:lib/lib_AT91SAM7.c **** }
332 161 00e4 04D08DE2 add sp, sp, #4
333 162 00e8 F085BDE8 ldmfd sp!, {r4, r5, r6, r7, r8, sl, pc}
336 166 .global AT91F_RTTReadValue
337 168 AT91F_RTTReadValue:
339 99:lib/lib_AT91SAM7.c ****
340 100:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
341 101:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_Open
342 102:lib/lib_AT91SAM7.c **** //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
343 103:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
344 104:lib/lib_AT91SAM7.c **** void AT91F_PDC_Open(AT91PS_PDC pPDC) // \arg pointer to a PDC controller
345 105:lib/lib_AT91SAM7.c **** {
346 106:lib/lib_AT91SAM7.c **** //* Disable the RX and TX PDC transfer requests
347 107:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableRx(pPDC);
348 108:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableTx(pPDC);
349 109:lib/lib_AT91SAM7.c ****
350 110:lib/lib_AT91SAM7.c **** //* Reset all Counter register Next buffer first
351 111:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, NULL, 0);
352 112:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, NULL, 0);
353 113:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, NULL, 0);
354 114:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, NULL, 0);
355 115:lib/lib_AT91SAM7.c ****
356 116:lib/lib_AT91SAM7.c **** //* Enable the RX and TX PDC transfer requests
357 117:lib/lib_AT91SAM7.c **** AT91F_PDC_EnableRx(pPDC);
358 118:lib/lib_AT91SAM7.c **** AT91F_PDC_EnableTx(pPDC);
359 119:lib/lib_AT91SAM7.c **** }
360 120:lib/lib_AT91SAM7.c ****
361 121:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
362 122:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_Close
363 123:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
364 124:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
365 125:lib/lib_AT91SAM7.c **** void AT91F_PDC_Close(AT91PS_PDC pPDC) // \arg pointer to a PDC controller
366 126:lib/lib_AT91SAM7.c **** {
367 127:lib/lib_AT91SAM7.c **** //* Disable the RX and TX PDC transfer requests
368 128:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableRx(pPDC);
369 129:lib/lib_AT91SAM7.c **** AT91F_PDC_DisableTx(pPDC);
370 130:lib/lib_AT91SAM7.c ****
371 131:lib/lib_AT91SAM7.c **** //* Reset all Counter register Next buffer first
372 132:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, NULL, 0);
373 133:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, NULL, 0);
374 134:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, NULL, 0);
375 135:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, NULL, 0);
376 136:lib/lib_AT91SAM7.c ****
377 137:lib/lib_AT91SAM7.c **** }
378 138:lib/lib_AT91SAM7.c ****
379 139:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
380 140:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_SendFrame
381 141:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
382 142:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
383 143:lib/lib_AT91SAM7.c **** unsigned int AT91F_PDC_SendFrame(
384 144:lib/lib_AT91SAM7.c **** AT91PS_PDC pPDC,
385 145:lib/lib_AT91SAM7.c **** const unsigned char *pBuffer,
386 146:lib/lib_AT91SAM7.c **** unsigned int szBuffer,
387 147:lib/lib_AT91SAM7.c **** const unsigned char *pNextBuffer,
388 148:lib/lib_AT91SAM7.c **** unsigned int szNextBuffer )
389 149:lib/lib_AT91SAM7.c **** {
390 150:lib/lib_AT91SAM7.c **** if (AT91F_PDC_IsTxEmpty(pPDC)) {
391 151:lib/lib_AT91SAM7.c **** //* Buffer and next buffer can be initialized
392 152:lib/lib_AT91SAM7.c **** AT91F_PDC_SetTx(pPDC, pBuffer, szBuffer);
393 153:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, pNextBuffer, szNextBuffer);
394 154:lib/lib_AT91SAM7.c **** return 2;
395 155:lib/lib_AT91SAM7.c **** }
396 156:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextTxEmpty(pPDC)) {
397 157:lib/lib_AT91SAM7.c **** //* Only one buffer can be initialized
398 158:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer);
399 159:lib/lib_AT91SAM7.c **** return 1;
400 160:lib/lib_AT91SAM7.c **** }
401 161:lib/lib_AT91SAM7.c **** else {
402 162:lib/lib_AT91SAM7.c **** //* All buffer are in use...
403 163:lib/lib_AT91SAM7.c **** return 0;
404 164:lib/lib_AT91SAM7.c **** }
405 165:lib/lib_AT91SAM7.c **** }
406 166:lib/lib_AT91SAM7.c ****
407 167:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
408 168:lib/lib_AT91SAM7.c **** //* \fn AT91F_PDC_ReceiveFrame
409 169:lib/lib_AT91SAM7.c **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
410 170:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
411 171:lib/lib_AT91SAM7.c **** unsigned int AT91F_PDC_ReceiveFrame (
412 172:lib/lib_AT91SAM7.c **** AT91PS_PDC pPDC,
413 173:lib/lib_AT91SAM7.c **** unsigned char *pBuffer,
414 174:lib/lib_AT91SAM7.c **** unsigned int szBuffer,
415 175:lib/lib_AT91SAM7.c **** unsigned char *pNextBuffer,
416 176:lib/lib_AT91SAM7.c **** unsigned int szNextBuffer )
417 177:lib/lib_AT91SAM7.c **** {
418 178:lib/lib_AT91SAM7.c **** if (AT91F_PDC_IsRxEmpty(pPDC)) {
419 179:lib/lib_AT91SAM7.c **** //* Buffer and next buffer can be initialized
420 180:lib/lib_AT91SAM7.c **** AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer);
421 181:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer);
422 182:lib/lib_AT91SAM7.c **** return 2;
423 183:lib/lib_AT91SAM7.c **** }
424 184:lib/lib_AT91SAM7.c **** else if (AT91F_PDC_IsNextRxEmpty(pPDC)) {
425 185:lib/lib_AT91SAM7.c **** //* Only one buffer can be initialized
426 186:lib/lib_AT91SAM7.c **** AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer);
427 187:lib/lib_AT91SAM7.c **** return 1;
428 188:lib/lib_AT91SAM7.c **** }
429 189:lib/lib_AT91SAM7.c **** else {
430 190:lib/lib_AT91SAM7.c **** //* All buffer are in use...
431 191:lib/lib_AT91SAM7.c **** return 0;
432 192:lib/lib_AT91SAM7.c **** }
433 193:lib/lib_AT91SAM7.c **** }
434 194:lib/lib_AT91SAM7.c ****
435 195:lib/lib_AT91SAM7.c **** //*------------------------------------------------------------------------------
436 196:lib/lib_AT91SAM7.c **** //* \fn AT91F_PMC_GetMasterClock
437 197:lib/lib_AT91SAM7.c **** //* \brief Return master clock in Hz which correponds to processor clock for ARM7
438 198:lib/lib_AT91SAM7.c **** //*------------------------------------------------------------------------------
439 199:lib/lib_AT91SAM7.c **** unsigned int AT91F_PMC_GetMasterClock (
440 200:lib/lib_AT91SAM7.c **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
441 201:lib/lib_AT91SAM7.c **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
442 202:lib/lib_AT91SAM7.c **** unsigned int slowClock) // \arg slowClock in Hz
443 203:lib/lib_AT91SAM7.c **** {
444 204:lib/lib_AT91SAM7.c **** unsigned int reg = pPMC->PMC_MCKR;
445 205:lib/lib_AT91SAM7.c **** unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2));
446 206:lib/lib_AT91SAM7.c **** unsigned int pllDivider, pllMultiplier;
447 207:lib/lib_AT91SAM7.c ****
448 208:lib/lib_AT91SAM7.c **** switch (reg & AT91C_PMC_CSS) {
449 209:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_SLOW_CLK: // Slow clock selected
450 210:lib/lib_AT91SAM7.c **** return slowClock / prescaler;
451 211:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_MAIN_CLK: // Main clock is selected
452 212:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler;
453 213:lib/lib_AT91SAM7.c **** case AT91C_PMC_CSS_PLL_CLK: // PLLB clock is selected
454 214:lib/lib_AT91SAM7.c **** reg = pCKGR->CKGR_PLLR;
455 215:lib/lib_AT91SAM7.c **** pllDivider = (reg & AT91C_CKGR_DIV);
456 216:lib/lib_AT91SAM7.c **** pllMultiplier = ((reg & AT91C_CKGR_MUL) >> 16) + 1;
457 217:lib/lib_AT91SAM7.c **** return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler;
458 218:lib/lib_AT91SAM7.c **** }
459 219:lib/lib_AT91SAM7.c **** return 0;
460 220:lib/lib_AT91SAM7.c **** }
461 221:lib/lib_AT91SAM7.c ****
462 222:lib/lib_AT91SAM7.c **** //*--------------------------------------------------------------------------------------
463 223:lib/lib_AT91SAM7.c **** //* \fn AT91F_RTT_ReadValue()
464 224:lib/lib_AT91SAM7.c **** //* \brief Read the RTT value
465 225:lib/lib_AT91SAM7.c **** //*--------------------------------------------------------------------------------------
466 226:lib/lib_AT91SAM7.c **** unsigned int AT91F_RTTReadValue(AT91PS_RTTC pRTTC)
467 227:lib/lib_AT91SAM7.c **** {
469 171 @ args = 0, pretend = 0, frame = 8
470 172 @ frame_needed = 0, uses_anonymous_args = 0
471 173 @ link register save eliminated.
473 175 00ec 08D04DE2 sub sp, sp, #8
475 177 @ lr needed for prologue
477 228:lib/lib_AT91SAM7.c **** register volatile unsigned int val1,val2;
478 229:lib/lib_AT91SAM7.c **** do
479 230:lib/lib_AT91SAM7.c **** {
480 231:lib/lib_AT91SAM7.c **** val1 = pRTTC->RTTC_RTVR;
482 180 00f0 083090E5 ldr r3, [r0, #8]
483 181 00f4 04308DE5 str r3, [sp, #4]
485 232:lib/lib_AT91SAM7.c **** val2 = pRTTC->RTTC_RTVR;
487 184 00f8 082090E5 ldr r2, [r0, #8]
488 185 00fc 00208DE5 str r2, [sp, #0]
490 233:lib/lib_AT91SAM7.c **** }
491 234:lib/lib_AT91SAM7.c **** while(val1 != val2);
493 188 0100 04109DE5 ldr r1, [sp, #4]
494 189 0104 00309DE5 ldr r3, [sp, #0]
495 190 0108 030051E1 cmp r1, r3
496 191 010c 3A00001A bne .L17
497 235:lib/lib_AT91SAM7.c **** return(val1);
499 193 0110 04009DE5 ldr r0, [sp, #4]
501 236:lib/lib_AT91SAM7.c **** }
503 196 0114 08D08DE2 add sp, sp, #8
504 197 0118 1EFF2FE1 bx lr
506 200 .global __udivsi3
508 202 .global AT91F_ADC_CfgTimings
509 204 AT91F_ADC_CfgTimings:
511 237:lib/lib_AT91SAM7.c ****
512 238:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
513 239:lib/lib_AT91SAM7.c **** //* \fn AT91F_SPI_Close
514 240:lib/lib_AT91SAM7.c **** //* \brief Close SPI: disable IT disable transfert, close PDC
515 241:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
516 242:lib/lib_AT91SAM7.c **** void AT91F_SPI_Close(AT91PS_SPI pSPI) // \arg pointer to a SPI controller
517 243:lib/lib_AT91SAM7.c **** {
518 244:lib/lib_AT91SAM7.c **** //* Reset all the Chip Select register
519 245:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[0] = 0 ;
520 246:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[1] = 0 ;
521 247:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[2] = 0 ;
522 248:lib/lib_AT91SAM7.c **** pSPI->SPI_CSR[3] = 0 ;
523 249:lib/lib_AT91SAM7.c ****
524 250:lib/lib_AT91SAM7.c **** //* Reset the SPI mode
525 251:lib/lib_AT91SAM7.c **** pSPI->SPI_MR = 0 ;
526 252:lib/lib_AT91SAM7.c ****
527 253:lib/lib_AT91SAM7.c **** //* Disable all interrupts
528 254:lib/lib_AT91SAM7.c **** pSPI->SPI_IDR = 0xFFFFFFFF ;
529 255:lib/lib_AT91SAM7.c ****
530 256:lib/lib_AT91SAM7.c **** //* Abort the Peripheral Data Transfers
531 257:lib/lib_AT91SAM7.c **** AT91F_PDC_Close((AT91PS_PDC) &(pSPI->SPI_RPR));
532 258:lib/lib_AT91SAM7.c ****
533 259:lib/lib_AT91SAM7.c **** //* Disable receiver and transmitter and stop any activity immediately
534 260:lib/lib_AT91SAM7.c **** pSPI->SPI_CR = AT91C_SPI_SPIDIS;
535 261:lib/lib_AT91SAM7.c **** }
536 262:lib/lib_AT91SAM7.c ****
537 263:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
538 264:lib/lib_AT91SAM7.c **** //* \fn AT91F_ADC_CfgTimings
539 265:lib/lib_AT91SAM7.c **** //* \brief Configure the different necessary timings of the ADC controller
540 266:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
541 267:lib/lib_AT91SAM7.c **** void AT91F_ADC_CfgTimings (
542 268:lib/lib_AT91SAM7.c **** AT91PS_ADC pADC, // pointer to a ADC controller
543 269:lib/lib_AT91SAM7.c **** unsigned int mck_clock, // in MHz
544 270:lib/lib_AT91SAM7.c **** unsigned int adc_clock, // in MHz
545 271:lib/lib_AT91SAM7.c **** unsigned int startup_time, // in us
546 272:lib/lib_AT91SAM7.c **** unsigned int sample_and_hold_time) // in ns
547 273:lib/lib_AT91SAM7.c **** {
549 207 @ args = 4, pretend = 0, frame = 0
550 208 @ frame_needed = 0, uses_anonymous_args = 0
552 210 011c 70402DE9 stmfd sp!, {r4, r5, r6, lr}
555 213 0120 0060A0E1 mov r6, r0
556 274:lib/lib_AT91SAM7.c **** unsigned int prescal,startup,shtim;
557 275:lib/lib_AT91SAM7.c ****
558 276:lib/lib_AT91SAM7.c **** prescal = mck_clock/(2*adc_clock) - 1;
559 277:lib/lib_AT91SAM7.c **** startup = adc_clock*startup_time/8 - 1;
560 278:lib/lib_AT91SAM7.c **** shtim = adc_clock*sample_and_hold_time/1000 - 1;
561 279:lib/lib_AT91SAM7.c ****
562 280:lib/lib_AT91SAM7.c **** //* Write to the MR register
563 281:lib/lib_AT91SAM7.c **** pADC->ADC_MR = ( (prescal<<8) & AT91C_ADC_PRESCAL) | ( (startup<<16) & AT91C_ADC_STARTUP) | ( (sht
565 215 0124 0100A0E1 mov r0, r1
567 217 0128 8210A0E1 mov r1, r2, asl #1
570 220 012c 0240A0E1 mov r4, r2
571 221 0130 0350A0E1 mov r5, r3
573 223 0134 FEFFFFEB bl __udivsi3
575 225 0138 10209DE5 ldr r2, [sp, #16]
576 226 013c 92040CE0 mul ip, r2, r4
577 227 0140 40109FE5 ldr r1, .L24
578 228 0144 950403E0 mul r3, r5, r4
579 229 0148 91EC82E0 umull lr, r2, r1, ip
580 230 014c A331A0E1 mov r3, r3, lsr #3
581 231 0150 010040E2 sub r0, r0, #1
582 232 0154 013043E2 sub r3, r3, #1
583 233 0158 2223A0E1 mov r2, r2, lsr #6
584 234 015c 0004A0E1 mov r0, r0, asl #8
585 235 0160 0338A0E1 mov r3, r3, asl #16
586 236 0164 012042E2 sub r2, r2, #1
587 237 0168 3F0C00E2 and r0, r0, #16128
588 238 016c 1F3803E2 and r3, r3, #2031616
589 239 0170 022CA0E1 mov r2, r2, asl #24
590 240 0174 030080E1 orr r0, r0, r3
591 241 0178 0F2402E2 and r2, r2, #251658240
592 242 017c 020080E1 orr r0, r0, r2
593 243 0180 040086E5 str r0, [r6, #4]
594 282:lib/lib_AT91SAM7.c **** }
596 245 0184 7080BDE8 ldmfd sp!, {r4, r5, r6, pc}
600 249 0188 D34D6210 .word 274877907
603 253 .global AT91F_SSC_SetBaudrate
604 255 AT91F_SSC_SetBaudrate:
606 283:lib/lib_AT91SAM7.c ****
607 284:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
608 285:lib/lib_AT91SAM7.c **** //* \fn AT91F_SSC_SetBaudrate
609 286:lib/lib_AT91SAM7.c **** //* \brief Set the baudrate according to the CPU clock
610 287:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
611 288:lib/lib_AT91SAM7.c **** void AT91F_SSC_SetBaudrate (
612 289:lib/lib_AT91SAM7.c **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
613 290:lib/lib_AT91SAM7.c **** unsigned int mainClock, // \arg peripheral clock
614 291:lib/lib_AT91SAM7.c **** unsigned int speed) // \arg SSC baudrate
615 292:lib/lib_AT91SAM7.c **** {
617 258 @ args = 0, pretend = 0, frame = 0
618 259 @ frame_needed = 0, uses_anonymous_args = 0
620 293:lib/lib_AT91SAM7.c **** unsigned int baud_value;
621 294:lib/lib_AT91SAM7.c **** //* Define the baud rate divisor register
622 295:lib/lib_AT91SAM7.c **** if (speed == 0)
624 262 018c 000052E3 cmp r2, #0
625 296:lib/lib_AT91SAM7.c **** baud_value = 0;
626 297:lib/lib_AT91SAM7.c **** else
627 298:lib/lib_AT91SAM7.c **** {
628 299:lib/lib_AT91SAM7.c **** baud_value = (unsigned int) (mainClock * 10)/(2*speed);
630 264 0190 011181E0 add r1, r1, r1, asl #2
633 267 0194 10402DE9 stmfd sp!, {r4, lr}
636 270 0198 0230A0E1 mov r3, r2
639 273 019c 0040A0E1 mov r4, r0
641 275 01a0 8100A0E1 mov r0, r1, asl #1
643 277 01a4 8210A0E1 mov r1, r2, asl #1
645 279 01a8 7200000A beq .L29
647 281 01ac FEFFFFEB bl __udivsi3
649 300:lib/lib_AT91SAM7.c **** if ((baud_value % 10) >= 5)
651 284 01b0 20309FE5 ldr r3, .L33
653 286 01b4 931082E0 umull r1, r2, r3, r0
654 287 01b8 A221A0E1 mov r2, r2, lsr #3
655 288 01bc 023182E0 add r3, r2, r2, asl #2
656 289 01c0 830040E0 sub r0, r0, r3, asl #1
658 291 01c4 040050E3 cmp r0, #4
659 301:lib/lib_AT91SAM7.c **** baud_value = (baud_value / 10) + 1;
661 293 01c8 013082E2 add r3, r2, #1
663 302:lib/lib_AT91SAM7.c **** else
664 303:lib/lib_AT91SAM7.c **** baud_value /= 10;
666 296 01cc 0230A091 movls r3, r2
669 304:lib/lib_AT91SAM7.c **** }
670 305:lib/lib_AT91SAM7.c ****
671 306:lib/lib_AT91SAM7.c **** pSSC->SSC_CMR = baud_value;
673 300 01d0 043084E5 str r3, [r4, #4]
674 307:lib/lib_AT91SAM7.c **** }
676 302 01d4 1080BDE8 ldmfd sp!, {r4, pc}
680 306 01d8 CDCCCCCC .word -858993459
683 310 .global AT91F_PDC_SendFrame
684 312 AT91F_PDC_SendFrame:
687 315 @ args = 4, pretend = 0, frame = 0
688 316 @ frame_needed = 0, uses_anonymous_args = 0
689 317 @ link register save eliminated.
691 319 01dc 00C0A0E1 mov ip, r0
694 86:./include/lib_AT91SAM7.h **** }
695 87:./include/lib_AT91SAM7.h ****
696 88:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
697 89:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_ClearIt
698 90:./include/lib_AT91SAM7.h **** //* \brief Clear corresponding IT number
699 91:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
700 92:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_ClearIt (
701 93:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
702 94:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg interrupt number to initialize
703 95:./include/lib_AT91SAM7.h **** {
704 96:./include/lib_AT91SAM7.h **** //* Clear the interrupt on the Interrupt Controller ( if one is pending )
705 97:./include/lib_AT91SAM7.h **** pAic->AIC_ICCR = (0x1 << irq_id);
706 98:./include/lib_AT91SAM7.h **** }
707 99:./include/lib_AT91SAM7.h ****
708 100:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
709 101:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_AcknowledgeIt
710 102:./include/lib_AT91SAM7.h **** //* \brief Acknowledge corresponding IT number
711 103:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
712 104:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_AcknowledgeIt (
713 105:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic) // \arg pointer to the AIC registers
714 106:./include/lib_AT91SAM7.h **** {
715 107:./include/lib_AT91SAM7.h **** pAic->AIC_EOICR = pAic->AIC_EOICR;
716 108:./include/lib_AT91SAM7.h **** }
717 109:./include/lib_AT91SAM7.h ****
718 110:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
719 111:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_SetExceptionVector
720 112:./include/lib_AT91SAM7.h **** //* \brief Configure vector handler
721 113:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
722 114:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_AIC_SetExceptionVector (
723 115:./include/lib_AT91SAM7.h **** unsigned int *pVector, // \arg pointer to the AIC registers
724 116:./include/lib_AT91SAM7.h **** void (*Handler) () ); // \arg Interrupt Handler
725 117:./include/lib_AT91SAM7.h ****
726 118:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
727 119:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_Trig
728 120:./include/lib_AT91SAM7.h **** //* \brief Trig an IT
729 121:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
730 122:./include/lib_AT91SAM7.h **** static inline void AT91F_AIC_Trig (
731 123:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
732 124:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg interrupt number
733 125:./include/lib_AT91SAM7.h **** {
734 126:./include/lib_AT91SAM7.h **** pAic->AIC_ISCR = (0x1 << irq_id) ;
735 127:./include/lib_AT91SAM7.h **** }
736 128:./include/lib_AT91SAM7.h ****
737 129:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
738 130:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_IsActive
739 131:./include/lib_AT91SAM7.h **** //* \brief Test if an IT is active
740 132:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
741 133:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_AIC_IsActive (
742 134:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
743 135:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg Interrupt Number
744 136:./include/lib_AT91SAM7.h **** {
745 137:./include/lib_AT91SAM7.h **** return (pAic->AIC_ISR & (0x1 << irq_id));
746 138:./include/lib_AT91SAM7.h **** }
747 139:./include/lib_AT91SAM7.h ****
748 140:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
749 141:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_IsPending
750 142:./include/lib_AT91SAM7.h **** //* \brief Test if an IT is pending
751 143:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
752 144:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_AIC_IsPending (
753 145:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
754 146:./include/lib_AT91SAM7.h **** unsigned int irq_id) // \arg Interrupt Number
755 147:./include/lib_AT91SAM7.h **** {
756 148:./include/lib_AT91SAM7.h **** return (pAic->AIC_IPR & (0x1 << irq_id));
757 149:./include/lib_AT91SAM7.h **** }
758 150:./include/lib_AT91SAM7.h ****
759 151:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
760 152:./include/lib_AT91SAM7.h **** //* \fn AT91F_AIC_Open
761 153:./include/lib_AT91SAM7.h **** //* \brief Set exception vectors and AIC registers to default values
762 154:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
763 155:./include/lib_AT91SAM7.h **** extern void AT91F_AIC_Open(
764 156:./include/lib_AT91SAM7.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
765 157:./include/lib_AT91SAM7.h **** void (*IrqHandler) (), // \arg Default IRQ vector exception
766 158:./include/lib_AT91SAM7.h **** void (*FiqHandler) (), // \arg Default FIQ vector exception
767 159:./include/lib_AT91SAM7.h **** void (*DefaultHandler) (), // \arg Default Handler set in ISR
768 160:./include/lib_AT91SAM7.h **** void (*SpuriousHandler) (), // \arg Default Spurious Handler
769 161:./include/lib_AT91SAM7.h **** unsigned int protectMode); // \arg Debug Control Register
770 162:./include/lib_AT91SAM7.h ****
771 163:./include/lib_AT91SAM7.h **** /* *****************************************************************************
772 164:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PDC
773 165:./include/lib_AT91SAM7.h **** ***************************************************************************** */
774 166:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
775 167:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetNextRx
776 168:./include/lib_AT91SAM7.h **** //* \brief Set the next receive transfer descriptor
777 169:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
778 170:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetNextRx (
779 171:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
780 172:./include/lib_AT91SAM7.h **** unsigned char *address,// \arg address to the next bloc to be received
781 173:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be received
782 174:./include/lib_AT91SAM7.h **** {
783 175:./include/lib_AT91SAM7.h **** pPDC->PDC_RNPR = (unsigned int) address;
784 176:./include/lib_AT91SAM7.h **** pPDC->PDC_RNCR = bytes;
785 177:./include/lib_AT91SAM7.h **** }
786 178:./include/lib_AT91SAM7.h ****
787 179:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
788 180:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetNextTx
789 181:./include/lib_AT91SAM7.h **** //* \brief Set the next transmit transfer descriptor
790 182:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
791 183:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetNextTx (
792 184:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
793 185:./include/lib_AT91SAM7.h **** const unsigned char *address,// \arg address to the next bloc to be transmitted
794 186:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be transmitted
795 187:./include/lib_AT91SAM7.h **** {
796 188:./include/lib_AT91SAM7.h **** pPDC->PDC_TNPR = (unsigned int) address;
797 189:./include/lib_AT91SAM7.h **** pPDC->PDC_TNCR = bytes;
798 190:./include/lib_AT91SAM7.h **** }
799 191:./include/lib_AT91SAM7.h ****
800 192:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
801 193:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetRx
802 194:./include/lib_AT91SAM7.h **** //* \brief Set the receive transfer descriptor
803 195:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
804 196:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetRx (
805 197:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
806 198:./include/lib_AT91SAM7.h **** unsigned char *address,// \arg address to the next bloc to be received
807 199:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be received
808 200:./include/lib_AT91SAM7.h **** {
809 201:./include/lib_AT91SAM7.h **** pPDC->PDC_RPR = (unsigned int) address;
810 202:./include/lib_AT91SAM7.h **** pPDC->PDC_RCR = bytes;
811 203:./include/lib_AT91SAM7.h **** }
812 204:./include/lib_AT91SAM7.h ****
813 205:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
814 206:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SetTx
815 207:./include/lib_AT91SAM7.h **** //* \brief Set the transmit transfer descriptor
816 208:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
817 209:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_SetTx (
818 210:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
819 211:./include/lib_AT91SAM7.h **** const unsigned char *address,// \arg address to the next bloc to be transmitted
820 212:./include/lib_AT91SAM7.h **** unsigned int bytes) // \arg number of bytes to be transmitted
821 213:./include/lib_AT91SAM7.h **** {
822 214:./include/lib_AT91SAM7.h **** pPDC->PDC_TPR = (unsigned int) address;
823 215:./include/lib_AT91SAM7.h **** pPDC->PDC_TCR = bytes;
824 216:./include/lib_AT91SAM7.h **** }
825 217:./include/lib_AT91SAM7.h ****
826 218:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
827 219:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_EnableTx
828 220:./include/lib_AT91SAM7.h **** //* \brief Enable transmit
829 221:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
830 222:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_EnableTx (
831 223:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
832 224:./include/lib_AT91SAM7.h **** {
833 225:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTEN;
834 226:./include/lib_AT91SAM7.h **** }
835 227:./include/lib_AT91SAM7.h ****
836 228:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
837 229:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_EnableRx
838 230:./include/lib_AT91SAM7.h **** //* \brief Enable receive
839 231:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
840 232:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_EnableRx (
841 233:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
842 234:./include/lib_AT91SAM7.h **** {
843 235:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTEN;
844 236:./include/lib_AT91SAM7.h **** }
845 237:./include/lib_AT91SAM7.h ****
846 238:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
847 239:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_DisableTx
848 240:./include/lib_AT91SAM7.h **** //* \brief Disable transmit
849 241:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
850 242:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_DisableTx (
851 243:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
852 244:./include/lib_AT91SAM7.h **** {
853 245:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTDIS;
854 246:./include/lib_AT91SAM7.h **** }
855 247:./include/lib_AT91SAM7.h ****
856 248:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
857 249:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_DisableRx
858 250:./include/lib_AT91SAM7.h **** //* \brief Disable receive
859 251:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
860 252:./include/lib_AT91SAM7.h **** static inline void AT91F_PDC_DisableRx (
861 253:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
862 254:./include/lib_AT91SAM7.h **** {
863 255:./include/lib_AT91SAM7.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTDIS;
864 256:./include/lib_AT91SAM7.h **** }
865 257:./include/lib_AT91SAM7.h ****
866 258:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
867 259:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsTxEmpty
868 260:./include/lib_AT91SAM7.h **** //* \brief Test if the current transfer descriptor has been sent
869 261:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
870 262:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsTxEmpty ( // \return return 1 if transfer is complete
871 263:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
872 264:./include/lib_AT91SAM7.h **** {
873 265:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TCR);
875 323 01e0 0C0090E5 ldr r0, [r0, #12]
880 328 01e4 000050E3 cmp r0, #0
882 330 @ lr needed for prologue
886 334 01e8 0200A0E3 mov r0, #2
890 338 01ec 8000001A bne .L36
894 342 01f0 08108CE5 str r1, [ip, #8]
896 344 01f4 0C208CE5 str r2, [ip, #12]
902 350 01f8 18308CE5 str r3, [ip, #24]
904 352 01fc 00309DE5 ldr r3, [sp, #0]
906 354 0200 1C308CE5 str r3, [ip, #28]
907 355 0204 1EFF2FE1 bx lr
914 266:./include/lib_AT91SAM7.h **** }
915 267:./include/lib_AT91SAM7.h ****
916 268:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
917 269:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsNextTxEmpty
918 270:./include/lib_AT91SAM7.h **** //* \brief Test if the next transfer descriptor has been moved to the current td
919 271:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
920 272:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsNextTxEmpty ( // \return return 1 if transfer is complete
921 273:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
922 274:./include/lib_AT91SAM7.h **** {
923 275:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_TNCR);
925 363 0208 1C309CE5 ldr r3, [ip, #28]
930 368 020c 000053E3 cmp r3, #0
931 369 0210 0000A0E3 mov r0, #0
935 373 0214 0100A003 moveq r0, #1
937 375 0218 18108C05 streq r1, [ip, #24]
939 377 021c 1C208C05 streq r2, [ip, #28]
943 381 0220 1EFF2FE1 bx lr
946 385 .global AT91F_PDC_Open
950 390 @ args = 0, pretend = 0, frame = 0
951 391 @ frame_needed = 0, uses_anonymous_args = 0
952 392 @ link register save eliminated.
957 397 0224 0030A0E3 mov r3, #0
963 403 0228 0220A0E3 mov r2, #2
969 409 022c 021CA0E3 mov r1, #512
975 415 0230 202080E5 str r2, [r0, #32]
981 421 0234 201080E5 str r1, [r0, #32]
987 427 0238 012042E2 sub r2, r2, #1
993 433 023c 183080E5 str r3, [r0, #24]
995 435 0240 1C3080E5 str r3, [r0, #28]
1001 441 0244 103080E5 str r3, [r0, #16]
1003 443 0248 143080E5 str r3, [r0, #20]
1009 449 024c 083080E5 str r3, [r0, #8]
1011 451 0250 0C3080E5 str r3, [r0, #12]
1017 457 0254 003080E5 str r3, [r0, #0]
1019 459 0258 043080E5 str r3, [r0, #4]
1025 465 025c 013C83E2 add r3, r3, #256
1031 471 0260 202080E5 str r2, [r0, #32]
1035 475 @ lr needed for prologue
1039 479 0264 203080E5 str r3, [r0, #32]
1043 483 0268 1EFF2FE1 bx lr
1046 487 .global AT91F_US_Configure
1047 489 AT91F_US_Configure:
1049 308:lib/lib_AT91SAM7.c ****
1050 309:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
1051 310:lib/lib_AT91SAM7.c **** //* \fn AT91F_SSC_Configure
1052 311:lib/lib_AT91SAM7.c **** //* \brief Configure SSC
1053 312:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
1054 313:lib/lib_AT91SAM7.c **** void AT91F_SSC_Configure (
1055 314:lib/lib_AT91SAM7.c **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
1056 315:lib/lib_AT91SAM7.c **** unsigned int syst_clock, // \arg System Clock Frequency
1057 316:lib/lib_AT91SAM7.c **** unsigned int baud_rate, // \arg Expected Baud Rate Frequency
1058 317:lib/lib_AT91SAM7.c **** unsigned int clock_rx, // \arg Receiver Clock Parameters
1059 318:lib/lib_AT91SAM7.c **** unsigned int mode_rx, // \arg mode Register to be programmed
1060 319:lib/lib_AT91SAM7.c **** unsigned int clock_tx, // \arg Transmitter Clock Parameters
1061 320:lib/lib_AT91SAM7.c **** unsigned int mode_tx) // \arg mode Register to be programmed
1062 321:lib/lib_AT91SAM7.c **** {
1063 322:lib/lib_AT91SAM7.c **** //* Disable interrupts
1064 323:lib/lib_AT91SAM7.c **** pSSC->SSC_IDR = (unsigned int) -1;
1065 324:lib/lib_AT91SAM7.c ****
1066 325:lib/lib_AT91SAM7.c **** //* Reset receiver and transmitter
1067 326:lib/lib_AT91SAM7.c **** pSSC->SSC_CR = AT91C_SSC_SWRST | AT91C_SSC_RXDIS | AT91C_SSC_TXDIS ;
1068 327:lib/lib_AT91SAM7.c ****
1069 328:lib/lib_AT91SAM7.c **** //* Define the Clock Mode Register
1070 329:lib/lib_AT91SAM7.c **** AT91F_SSC_SetBaudrate(pSSC, syst_clock, baud_rate);
1071 330:lib/lib_AT91SAM7.c ****
1072 331:lib/lib_AT91SAM7.c **** //* Write the Receive Clock Mode Register
1073 332:lib/lib_AT91SAM7.c **** pSSC->SSC_RCMR = clock_rx;
1074 333:lib/lib_AT91SAM7.c ****
1075 334:lib/lib_AT91SAM7.c **** //* Write the Transmit Clock Mode Register
1076 335:lib/lib_AT91SAM7.c **** pSSC->SSC_TCMR = clock_tx;
1077 336:lib/lib_AT91SAM7.c ****
1078 337:lib/lib_AT91SAM7.c **** //* Write the Receive Frame Mode Register
1079 338:lib/lib_AT91SAM7.c **** pSSC->SSC_RFMR = mode_rx;
1080 339:lib/lib_AT91SAM7.c ****
1081 340:lib/lib_AT91SAM7.c **** //* Write the Transmit Frame Mode Register
1082 341:lib/lib_AT91SAM7.c **** pSSC->SSC_TFMR = mode_tx;
1083 342:lib/lib_AT91SAM7.c ****
1084 343:lib/lib_AT91SAM7.c **** //* Clear Transmit and Receive Counters
1085 344:lib/lib_AT91SAM7.c **** AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR));
1086 345:lib/lib_AT91SAM7.c ****
1087 346:lib/lib_AT91SAM7.c ****
1088 347:lib/lib_AT91SAM7.c **** }
1089 348:lib/lib_AT91SAM7.c ****
1090 349:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
1091 350:lib/lib_AT91SAM7.c **** //* \fn AT91F_US_Configure
1092 351:lib/lib_AT91SAM7.c **** //* \brief Configure USART
1093 352:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
1094 353:lib/lib_AT91SAM7.c **** void AT91F_US_Configure (
1095 354:lib/lib_AT91SAM7.c **** AT91PS_USART pUSART, // \arg pointer to a USART controller
1096 355:lib/lib_AT91SAM7.c **** unsigned int mainClock, // \arg peripheral clock
1097 356:lib/lib_AT91SAM7.c **** unsigned int mode , // \arg mode Register to be programmed
1098 357:lib/lib_AT91SAM7.c **** unsigned int baudRate , // \arg baudrate to be programmed
1099 358:lib/lib_AT91SAM7.c **** unsigned int timeguard ) // \arg timeguard to be programmed
1100 359:lib/lib_AT91SAM7.c **** {
1102 492 @ args = 4, pretend = 0, frame = 0
1103 493 @ frame_needed = 0, uses_anonymous_args = 0
1105 495 026c 30402DE9 stmfd sp!, {r4, r5, lr}
1107 360:lib/lib_AT91SAM7.c **** //* Disable interrupts
1108 361:lib/lib_AT91SAM7.c **** pUSART->US_IDR = (unsigned int) -1;
1109 362:lib/lib_AT91SAM7.c ****
1110 363:lib/lib_AT91SAM7.c **** //* Reset receiver and transmitter
1111 364:lib/lib_AT91SAM7.c **** pUSART->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS ;
1113 498 0270 ACC0A0E3 mov ip, #172
1115 500 0274 0040A0E1 mov r4, r0
1120 276:./include/lib_AT91SAM7.h **** }
1121 277:./include/lib_AT91SAM7.h ****
1122 278:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1123 279:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsRxEmpty
1124 280:./include/lib_AT91SAM7.h **** //* \brief Test if the current transfer descriptor has been filled
1125 281:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1126 282:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsRxEmpty ( // \return return 1 if transfer is complete
1127 283:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
1128 284:./include/lib_AT91SAM7.h **** {
1129 285:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RCR);
1130 286:./include/lib_AT91SAM7.h **** }
1131 287:./include/lib_AT91SAM7.h ****
1132 288:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1133 289:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_IsNextRxEmpty
1134 290:./include/lib_AT91SAM7.h **** //* \brief Test if the next transfer descriptor has been moved to the current td
1135 291:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1136 292:./include/lib_AT91SAM7.h **** static inline int AT91F_PDC_IsNextRxEmpty ( // \return return 1 if transfer is complete
1137 293:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
1138 294:./include/lib_AT91SAM7.h **** {
1139 295:./include/lib_AT91SAM7.h **** return !(pPDC->PDC_RNCR);
1140 296:./include/lib_AT91SAM7.h **** }
1141 297:./include/lib_AT91SAM7.h ****
1142 298:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1143 299:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_Open
1144 300:./include/lib_AT91SAM7.h **** //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
1145 301:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1146 302:./include/lib_AT91SAM7.h **** extern void AT91F_PDC_Open(AT91PS_PDC pPDC); // \arg pointer to a PDC controller
1147 303:./include/lib_AT91SAM7.h ****
1148 304:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1149 305:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_Close
1150 306:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
1151 307:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1152 308:./include/lib_AT91SAM7.h **** extern void AT91F_PDC_Close(AT91PS_PDC pPDC); // \arg pointer to a PDC controller
1153 309:./include/lib_AT91SAM7.h ****
1154 310:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1155 311:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_SendFrame
1156 312:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
1157 313:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1158 314:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PDC_SendFrame(
1159 315:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC,
1160 316:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer,
1161 317:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
1162 318:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer,
1163 319:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer);
1164 320:./include/lib_AT91SAM7.h ****
1165 321:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1166 322:./include/lib_AT91SAM7.h **** //* \fn AT91F_PDC_ReceiveFrame
1167 323:./include/lib_AT91SAM7.h **** //* \brief Close PDC: disable TX and RX reset transfer descriptors
1168 324:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1169 325:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PDC_ReceiveFrame (
1170 326:./include/lib_AT91SAM7.h **** AT91PS_PDC pPDC,
1171 327:./include/lib_AT91SAM7.h **** unsigned char *pBuffer,
1172 328:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
1173 329:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer,
1174 330:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer);
1175 331:./include/lib_AT91SAM7.h ****
1176 332:./include/lib_AT91SAM7.h **** /* *****************************************************************************
1177 333:./include/lib_AT91SAM7.h **** SOFTWARE API FOR DBGU
1178 334:./include/lib_AT91SAM7.h **** ***************************************************************************** */
1179 335:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1180 336:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_InterruptEnable
1181 337:./include/lib_AT91SAM7.h **** //* \brief Enable DBGU Interrupt
1182 338:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1183 339:./include/lib_AT91SAM7.h **** static inline void AT91F_DBGU_InterruptEnable(
1184 340:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
1185 341:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg dbgu interrupt to be enabled
1186 342:./include/lib_AT91SAM7.h **** {
1187 343:./include/lib_AT91SAM7.h **** pDbgu->DBGU_IER = flag;
1188 344:./include/lib_AT91SAM7.h **** }
1189 345:./include/lib_AT91SAM7.h ****
1190 346:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1191 347:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_InterruptDisable
1192 348:./include/lib_AT91SAM7.h **** //* \brief Disable DBGU Interrupt
1193 349:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1194 350:./include/lib_AT91SAM7.h **** static inline void AT91F_DBGU_InterruptDisable(
1195 351:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
1196 352:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg dbgu interrupt to be disabled
1197 353:./include/lib_AT91SAM7.h **** {
1198 354:./include/lib_AT91SAM7.h **** pDbgu->DBGU_IDR = flag;
1199 355:./include/lib_AT91SAM7.h **** }
1200 356:./include/lib_AT91SAM7.h ****
1201 357:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1202 358:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_GetInterruptMaskStatus
1203 359:./include/lib_AT91SAM7.h **** //* \brief Return DBGU Interrupt Mask Status
1204 360:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1205 361:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_DBGU_GetInterruptMaskStatus( // \return DBGU Interrupt Mask Status
1206 362:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu) // \arg pointer to a DBGU controller
1207 363:./include/lib_AT91SAM7.h **** {
1208 364:./include/lib_AT91SAM7.h **** return pDbgu->DBGU_IMR;
1209 365:./include/lib_AT91SAM7.h **** }
1210 366:./include/lib_AT91SAM7.h ****
1211 367:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1212 368:./include/lib_AT91SAM7.h **** //* \fn AT91F_DBGU_IsInterruptMasked
1213 369:./include/lib_AT91SAM7.h **** //* \brief Test if DBGU Interrupt is Masked
1214 370:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1215 371:./include/lib_AT91SAM7.h **** static inline int AT91F_DBGU_IsInterruptMasked(
1216 372:./include/lib_AT91SAM7.h **** AT91PS_DBGU pDbgu, // \arg pointer to a DBGU controller
1217 373:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1218 374:./include/lib_AT91SAM7.h **** {
1219 375:./include/lib_AT91SAM7.h **** return (AT91F_DBGU_GetInterruptMaskStatus(pDbgu) & flag);
1220 376:./include/lib_AT91SAM7.h **** }
1221 377:./include/lib_AT91SAM7.h ****
1222 378:./include/lib_AT91SAM7.h **** /* *****************************************************************************
1223 379:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PIO
1224 380:./include/lib_AT91SAM7.h **** ***************************************************************************** */
1225 381:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1226 382:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgPeriph
1227 383:./include/lib_AT91SAM7.h **** //* \brief Enable pins to be drived by peripheral
1228 384:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1229 385:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgPeriph(
1230 386:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1231 387:./include/lib_AT91SAM7.h **** unsigned int periphAEnable, // \arg PERIPH A to enable
1232 388:./include/lib_AT91SAM7.h **** unsigned int periphBEnable) // \arg PERIPH B to enable
1233 389:./include/lib_AT91SAM7.h ****
1234 390:./include/lib_AT91SAM7.h **** {
1235 391:./include/lib_AT91SAM7.h **** pPio->PIO_ASR = periphAEnable;
1236 392:./include/lib_AT91SAM7.h **** pPio->PIO_BSR = periphBEnable;
1237 393:./include/lib_AT91SAM7.h **** pPio->PIO_PDR = (periphAEnable | periphBEnable); // Set in Periph mode
1238 394:./include/lib_AT91SAM7.h **** }
1239 395:./include/lib_AT91SAM7.h ****
1240 396:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1241 397:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgOutput
1242 398:./include/lib_AT91SAM7.h **** //* \brief Enable PIO in output mode
1243 399:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1244 400:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgOutput(
1245 401:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1246 402:./include/lib_AT91SAM7.h **** unsigned int pioEnable) // \arg PIO to be enabled
1247 403:./include/lib_AT91SAM7.h **** {
1248 404:./include/lib_AT91SAM7.h **** pPio->PIO_PER = pioEnable; // Set in PIO mode
1249 405:./include/lib_AT91SAM7.h **** pPio->PIO_OER = pioEnable; // Configure in Output
1250 406:./include/lib_AT91SAM7.h **** }
1251 407:./include/lib_AT91SAM7.h ****
1252 408:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1253 409:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgInput
1254 410:./include/lib_AT91SAM7.h **** //* \brief Enable PIO in input mode
1255 411:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1256 412:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgInput(
1257 413:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1258 414:./include/lib_AT91SAM7.h **** unsigned int inputEnable) // \arg PIO to be enabled
1259 415:./include/lib_AT91SAM7.h **** {
1260 416:./include/lib_AT91SAM7.h **** // Disable output
1261 417:./include/lib_AT91SAM7.h **** pPio->PIO_ODR = inputEnable;
1262 418:./include/lib_AT91SAM7.h **** pPio->PIO_PER = inputEnable;
1263 419:./include/lib_AT91SAM7.h **** }
1264 420:./include/lib_AT91SAM7.h ****
1265 421:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1266 422:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgOpendrain
1267 423:./include/lib_AT91SAM7.h **** //* \brief Configure PIO in open drain
1268 424:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1269 425:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgOpendrain(
1270 426:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1271 427:./include/lib_AT91SAM7.h **** unsigned int multiDrvEnable) // \arg pio to be configured in open drain
1272 428:./include/lib_AT91SAM7.h **** {
1273 429:./include/lib_AT91SAM7.h **** // Configure the multi-drive option
1274 430:./include/lib_AT91SAM7.h **** pPio->PIO_MDDR = ~multiDrvEnable;
1275 431:./include/lib_AT91SAM7.h **** pPio->PIO_MDER = multiDrvEnable;
1276 432:./include/lib_AT91SAM7.h **** }
1277 433:./include/lib_AT91SAM7.h ****
1278 434:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1279 435:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgPullup
1280 436:./include/lib_AT91SAM7.h **** //* \brief Enable pullup on PIO
1281 437:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1282 438:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgPullup(
1283 439:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1284 440:./include/lib_AT91SAM7.h **** unsigned int pullupEnable) // \arg enable pullup on PIO
1285 441:./include/lib_AT91SAM7.h **** {
1286 442:./include/lib_AT91SAM7.h **** // Connect or not Pullup
1287 443:./include/lib_AT91SAM7.h **** pPio->PIO_PPUDR = ~pullupEnable;
1288 444:./include/lib_AT91SAM7.h **** pPio->PIO_PPUER = pullupEnable;
1289 445:./include/lib_AT91SAM7.h **** }
1290 446:./include/lib_AT91SAM7.h ****
1291 447:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1292 448:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgDirectDrive
1293 449:./include/lib_AT91SAM7.h **** //* \brief Enable direct drive on PIO
1294 450:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1295 451:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgDirectDrive(
1296 452:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1297 453:./include/lib_AT91SAM7.h **** unsigned int directDrive) // \arg PIO to be configured with direct drive
1298 454:./include/lib_AT91SAM7.h ****
1299 455:./include/lib_AT91SAM7.h **** {
1300 456:./include/lib_AT91SAM7.h **** // Configure the Direct Drive
1301 457:./include/lib_AT91SAM7.h **** pPio->PIO_OWDR = ~directDrive;
1302 458:./include/lib_AT91SAM7.h **** pPio->PIO_OWER = directDrive;
1303 459:./include/lib_AT91SAM7.h **** }
1304 460:./include/lib_AT91SAM7.h ****
1305 461:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1306 462:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_CfgInputFilter
1307 463:./include/lib_AT91SAM7.h **** //* \brief Enable input filter on input PIO
1308 464:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1309 465:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_CfgInputFilter(
1310 466:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1311 467:./include/lib_AT91SAM7.h **** unsigned int inputFilter) // \arg PIO to be configured with input filter
1312 468:./include/lib_AT91SAM7.h ****
1313 469:./include/lib_AT91SAM7.h **** {
1314 470:./include/lib_AT91SAM7.h **** // Configure the Direct Drive
1315 471:./include/lib_AT91SAM7.h **** pPio->PIO_IFDR = ~inputFilter;
1316 472:./include/lib_AT91SAM7.h **** pPio->PIO_IFER = inputFilter;
1317 473:./include/lib_AT91SAM7.h **** }
1318 474:./include/lib_AT91SAM7.h ****
1319 475:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1320 476:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInput
1321 477:./include/lib_AT91SAM7.h **** //* \brief Return PIO input value
1322 478:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1323 479:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInput( // \return PIO input
1324 480:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1325 481:./include/lib_AT91SAM7.h **** {
1326 482:./include/lib_AT91SAM7.h **** return pPio->PIO_PDSR;
1327 483:./include/lib_AT91SAM7.h **** }
1328 484:./include/lib_AT91SAM7.h ****
1329 485:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1330 486:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInputSet
1331 487:./include/lib_AT91SAM7.h **** //* \brief Test if PIO is input flag is active
1332 488:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1333 489:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInputSet(
1334 490:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1335 491:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1336 492:./include/lib_AT91SAM7.h **** {
1337 493:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInput(pPio) & flag);
1338 494:./include/lib_AT91SAM7.h **** }
1339 495:./include/lib_AT91SAM7.h ****
1340 496:./include/lib_AT91SAM7.h ****
1341 497:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1342 498:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_SetOutput
1343 499:./include/lib_AT91SAM7.h **** //* \brief Set to 1 output PIO
1344 500:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1345 501:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_SetOutput(
1346 502:./include/lib_AT91SAM7.h **** const AT91PS_PIO pPio, // \arg pointer to a PIO controller
1347 503:./include/lib_AT91SAM7.h **** const unsigned int flag) // \arg output to be set
1348 504:./include/lib_AT91SAM7.h **** {
1349 505:./include/lib_AT91SAM7.h **** pPio->PIO_SODR = flag;
1350 506:./include/lib_AT91SAM7.h **** }
1351 507:./include/lib_AT91SAM7.h ****
1352 508:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1353 509:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_ClearOutput
1354 510:./include/lib_AT91SAM7.h **** //* \brief Set to 0 output PIO
1355 511:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1356 512:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_ClearOutput(
1357 513:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1358 514:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg output to be cleared
1359 515:./include/lib_AT91SAM7.h **** {
1360 516:./include/lib_AT91SAM7.h **** pPio->PIO_CODR = flag;
1361 517:./include/lib_AT91SAM7.h **** }
1362 518:./include/lib_AT91SAM7.h ****
1363 519:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1364 520:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_ForceOutput
1365 521:./include/lib_AT91SAM7.h **** //* \brief Force output when Direct drive option is enabled
1366 522:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1367 523:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_ForceOutput(
1368 524:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1369 525:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg output to be forced
1370 526:./include/lib_AT91SAM7.h **** {
1371 527:./include/lib_AT91SAM7.h **** pPio->PIO_ODSR = flag;
1372 528:./include/lib_AT91SAM7.h **** }
1373 529:./include/lib_AT91SAM7.h ****
1374 530:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1375 531:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Enable
1376 532:./include/lib_AT91SAM7.h **** //* \brief Enable PIO
1377 533:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1378 534:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_Enable(
1379 535:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1380 536:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be enabled
1381 537:./include/lib_AT91SAM7.h **** {
1382 538:./include/lib_AT91SAM7.h **** pPio->PIO_PER = flag;
1383 539:./include/lib_AT91SAM7.h **** }
1384 540:./include/lib_AT91SAM7.h ****
1385 541:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1386 542:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Disable
1387 543:./include/lib_AT91SAM7.h **** //* \brief Disable PIO
1388 544:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1389 545:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_Disable(
1390 546:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1391 547:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be disabled
1392 548:./include/lib_AT91SAM7.h **** {
1393 549:./include/lib_AT91SAM7.h **** pPio->PIO_PDR = flag;
1394 550:./include/lib_AT91SAM7.h **** }
1395 551:./include/lib_AT91SAM7.h ****
1396 552:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1397 553:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetStatus
1398 554:./include/lib_AT91SAM7.h **** //* \brief Return PIO Status
1399 555:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1400 556:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetStatus( // \return PIO Status
1401 557:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1402 558:./include/lib_AT91SAM7.h **** {
1403 559:./include/lib_AT91SAM7.h **** return pPio->PIO_PSR;
1404 560:./include/lib_AT91SAM7.h **** }
1405 561:./include/lib_AT91SAM7.h ****
1406 562:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1407 563:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsSet
1408 564:./include/lib_AT91SAM7.h **** //* \brief Test if PIO is Set
1409 565:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1410 566:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsSet(
1411 567:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1412 568:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1413 569:./include/lib_AT91SAM7.h **** {
1414 570:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetStatus(pPio) & flag);
1415 571:./include/lib_AT91SAM7.h **** }
1416 572:./include/lib_AT91SAM7.h ****
1417 573:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1418 574:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputEnable
1419 575:./include/lib_AT91SAM7.h **** //* \brief Output Enable PIO
1420 576:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1421 577:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputEnable(
1422 578:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1423 579:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output to be enabled
1424 580:./include/lib_AT91SAM7.h **** {
1425 581:./include/lib_AT91SAM7.h **** pPio->PIO_OER = flag;
1426 582:./include/lib_AT91SAM7.h **** }
1427 583:./include/lib_AT91SAM7.h ****
1428 584:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1429 585:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputDisable
1430 586:./include/lib_AT91SAM7.h **** //* \brief Output Enable PIO
1431 587:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1432 588:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputDisable(
1433 589:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1434 590:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output to be disabled
1435 591:./include/lib_AT91SAM7.h **** {
1436 592:./include/lib_AT91SAM7.h **** pPio->PIO_ODR = flag;
1437 593:./include/lib_AT91SAM7.h **** }
1438 594:./include/lib_AT91SAM7.h ****
1439 595:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1440 596:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputStatus
1441 597:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Status
1442 598:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1443 599:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputStatus( // \return PIO Output Status
1444 600:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1445 601:./include/lib_AT91SAM7.h **** {
1446 602:./include/lib_AT91SAM7.h **** return pPio->PIO_OSR;
1447 603:./include/lib_AT91SAM7.h **** }
1448 604:./include/lib_AT91SAM7.h ****
1449 605:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1450 606:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOuputSet
1451 607:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Output is Set
1452 608:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1453 609:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputSet(
1454 610:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1455 611:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1456 612:./include/lib_AT91SAM7.h **** {
1457 613:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputStatus(pPio) & flag);
1458 614:./include/lib_AT91SAM7.h **** }
1459 615:./include/lib_AT91SAM7.h ****
1460 616:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1461 617:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InputFilterEnable
1462 618:./include/lib_AT91SAM7.h **** //* \brief Input Filter Enable PIO
1463 619:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1464 620:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InputFilterEnable(
1465 621:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1466 622:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio input filter to be enabled
1467 623:./include/lib_AT91SAM7.h **** {
1468 624:./include/lib_AT91SAM7.h **** pPio->PIO_IFER = flag;
1469 625:./include/lib_AT91SAM7.h **** }
1470 626:./include/lib_AT91SAM7.h ****
1471 627:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1472 628:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InputFilterDisable
1473 629:./include/lib_AT91SAM7.h **** //* \brief Input Filter Disable PIO
1474 630:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1475 631:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InputFilterDisable(
1476 632:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1477 633:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio input filter to be disabled
1478 634:./include/lib_AT91SAM7.h **** {
1479 635:./include/lib_AT91SAM7.h **** pPio->PIO_IFDR = flag;
1480 636:./include/lib_AT91SAM7.h **** }
1481 637:./include/lib_AT91SAM7.h ****
1482 638:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1483 639:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInputFilterStatus
1484 640:./include/lib_AT91SAM7.h **** //* \brief Return PIO Input Filter Status
1485 641:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1486 642:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInputFilterStatus( // \return PIO Input Filter Status
1487 643:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1488 644:./include/lib_AT91SAM7.h **** {
1489 645:./include/lib_AT91SAM7.h **** return pPio->PIO_IFSR;
1490 646:./include/lib_AT91SAM7.h **** }
1491 647:./include/lib_AT91SAM7.h ****
1492 648:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1493 649:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInputFilterSet
1494 650:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Input filter is Set
1495 651:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1496 652:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInputFilterSet(
1497 653:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1498 654:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1499 655:./include/lib_AT91SAM7.h **** {
1500 656:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInputFilterStatus(pPio) & flag);
1501 657:./include/lib_AT91SAM7.h **** }
1502 658:./include/lib_AT91SAM7.h ****
1503 659:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1504 660:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputDataStatus
1505 661:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Data Status
1506 662:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1507 663:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputDataStatus( // \return PIO Output Data Status
1508 664:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1509 665:./include/lib_AT91SAM7.h **** {
1510 666:./include/lib_AT91SAM7.h **** return pPio->PIO_ODSR;
1511 667:./include/lib_AT91SAM7.h **** }
1512 668:./include/lib_AT91SAM7.h ****
1513 669:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1514 670:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InterruptEnable
1515 671:./include/lib_AT91SAM7.h **** //* \brief Enable PIO Interrupt
1516 672:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1517 673:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InterruptEnable(
1518 674:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1519 675:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio interrupt to be enabled
1520 676:./include/lib_AT91SAM7.h **** {
1521 677:./include/lib_AT91SAM7.h **** pPio->PIO_IER = flag;
1522 678:./include/lib_AT91SAM7.h **** }
1523 679:./include/lib_AT91SAM7.h ****
1524 680:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1525 681:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_InterruptDisable
1526 682:./include/lib_AT91SAM7.h **** //* \brief Disable PIO Interrupt
1527 683:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1528 684:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_InterruptDisable(
1529 685:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1530 686:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio interrupt to be disabled
1531 687:./include/lib_AT91SAM7.h **** {
1532 688:./include/lib_AT91SAM7.h **** pPio->PIO_IDR = flag;
1533 689:./include/lib_AT91SAM7.h **** }
1534 690:./include/lib_AT91SAM7.h ****
1535 691:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1536 692:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInterruptMaskStatus
1537 693:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Mask Status
1538 694:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1539 695:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInterruptMaskStatus( // \return PIO Interrupt Mask Status
1540 696:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1541 697:./include/lib_AT91SAM7.h **** {
1542 698:./include/lib_AT91SAM7.h **** return pPio->PIO_IMR;
1543 699:./include/lib_AT91SAM7.h **** }
1544 700:./include/lib_AT91SAM7.h ****
1545 701:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1546 702:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetInterruptStatus
1547 703:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Status
1548 704:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1549 705:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetInterruptStatus( // \return PIO Interrupt Status
1550 706:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1551 707:./include/lib_AT91SAM7.h **** {
1552 708:./include/lib_AT91SAM7.h **** return pPio->PIO_ISR;
1553 709:./include/lib_AT91SAM7.h **** }
1554 710:./include/lib_AT91SAM7.h ****
1555 711:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1556 712:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInterruptMasked
1557 713:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Interrupt is Masked
1558 714:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1559 715:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInterruptMasked(
1560 716:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1561 717:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1562 718:./include/lib_AT91SAM7.h **** {
1563 719:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInterruptMaskStatus(pPio) & flag);
1564 720:./include/lib_AT91SAM7.h **** }
1565 721:./include/lib_AT91SAM7.h ****
1566 722:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1567 723:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsInterruptSet
1568 724:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Interrupt is Set
1569 725:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1570 726:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsInterruptSet(
1571 727:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1572 728:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1573 729:./include/lib_AT91SAM7.h **** {
1574 730:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetInterruptStatus(pPio) & flag);
1575 731:./include/lib_AT91SAM7.h **** }
1576 732:./include/lib_AT91SAM7.h ****
1577 733:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1578 734:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_MultiDriverEnable
1579 735:./include/lib_AT91SAM7.h **** //* \brief Multi Driver Enable PIO
1580 736:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1581 737:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_MultiDriverEnable(
1582 738:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1583 739:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be enabled
1584 740:./include/lib_AT91SAM7.h **** {
1585 741:./include/lib_AT91SAM7.h **** pPio->PIO_MDER = flag;
1586 742:./include/lib_AT91SAM7.h **** }
1587 743:./include/lib_AT91SAM7.h ****
1588 744:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1589 745:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_MultiDriverDisable
1590 746:./include/lib_AT91SAM7.h **** //* \brief Multi Driver Disable PIO
1591 747:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1592 748:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_MultiDriverDisable(
1593 749:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1594 750:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio to be disabled
1595 751:./include/lib_AT91SAM7.h **** {
1596 752:./include/lib_AT91SAM7.h **** pPio->PIO_MDDR = flag;
1597 753:./include/lib_AT91SAM7.h **** }
1598 754:./include/lib_AT91SAM7.h ****
1599 755:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1600 756:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetMultiDriverStatus
1601 757:./include/lib_AT91SAM7.h **** //* \brief Return PIO Multi Driver Status
1602 758:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1603 759:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetMultiDriverStatus( // \return PIO Multi Driver Status
1604 760:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1605 761:./include/lib_AT91SAM7.h **** {
1606 762:./include/lib_AT91SAM7.h **** return pPio->PIO_MDSR;
1607 763:./include/lib_AT91SAM7.h **** }
1608 764:./include/lib_AT91SAM7.h ****
1609 765:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1610 766:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsMultiDriverSet
1611 767:./include/lib_AT91SAM7.h **** //* \brief Test if PIO MultiDriver is Set
1612 768:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1613 769:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsMultiDriverSet(
1614 770:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1615 771:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1616 772:./include/lib_AT91SAM7.h **** {
1617 773:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetMultiDriverStatus(pPio) & flag);
1618 774:./include/lib_AT91SAM7.h **** }
1619 775:./include/lib_AT91SAM7.h ****
1620 776:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1621 777:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_A_RegisterSelection
1622 778:./include/lib_AT91SAM7.h **** //* \brief PIO A Register Selection
1623 779:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1624 780:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_A_RegisterSelection(
1625 781:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1626 782:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio A register selection
1627 783:./include/lib_AT91SAM7.h **** {
1628 784:./include/lib_AT91SAM7.h **** pPio->PIO_ASR = flag;
1629 785:./include/lib_AT91SAM7.h **** }
1630 786:./include/lib_AT91SAM7.h ****
1631 787:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1632 788:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_B_RegisterSelection
1633 789:./include/lib_AT91SAM7.h **** //* \brief PIO B Register Selection
1634 790:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1635 791:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_B_RegisterSelection(
1636 792:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1637 793:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio B register selection
1638 794:./include/lib_AT91SAM7.h **** {
1639 795:./include/lib_AT91SAM7.h **** pPio->PIO_BSR = flag;
1640 796:./include/lib_AT91SAM7.h **** }
1641 797:./include/lib_AT91SAM7.h ****
1642 798:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1643 799:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_Get_AB_RegisterStatus
1644 800:./include/lib_AT91SAM7.h **** //* \brief Return PIO Interrupt Status
1645 801:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1646 802:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_Get_AB_RegisterStatus( // \return PIO AB Register Status
1647 803:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1648 804:./include/lib_AT91SAM7.h **** {
1649 805:./include/lib_AT91SAM7.h **** return pPio->PIO_ABSR;
1650 806:./include/lib_AT91SAM7.h **** }
1651 807:./include/lib_AT91SAM7.h ****
1652 808:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1653 809:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsAB_RegisterSet
1654 810:./include/lib_AT91SAM7.h **** //* \brief Test if PIO AB Register is Set
1655 811:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1656 812:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsAB_RegisterSet(
1657 813:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1658 814:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1659 815:./include/lib_AT91SAM7.h **** {
1660 816:./include/lib_AT91SAM7.h **** return (AT91F_PIO_Get_AB_RegisterStatus(pPio) & flag);
1661 817:./include/lib_AT91SAM7.h **** }
1662 818:./include/lib_AT91SAM7.h ****
1663 819:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1664 820:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputWriteEnable
1665 821:./include/lib_AT91SAM7.h **** //* \brief Output Write Enable PIO
1666 822:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1667 823:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputWriteEnable(
1668 824:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1669 825:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output write to be enabled
1670 826:./include/lib_AT91SAM7.h **** {
1671 827:./include/lib_AT91SAM7.h **** pPio->PIO_OWER = flag;
1672 828:./include/lib_AT91SAM7.h **** }
1673 829:./include/lib_AT91SAM7.h ****
1674 830:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1675 831:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_OutputWriteDisable
1676 832:./include/lib_AT91SAM7.h **** //* \brief Output Write Disable PIO
1677 833:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1678 834:./include/lib_AT91SAM7.h **** static inline void AT91F_PIO_OutputWriteDisable(
1679 835:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1680 836:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg pio output write to be disabled
1681 837:./include/lib_AT91SAM7.h **** {
1682 838:./include/lib_AT91SAM7.h **** pPio->PIO_OWDR = flag;
1683 839:./include/lib_AT91SAM7.h **** }
1684 840:./include/lib_AT91SAM7.h ****
1685 841:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1686 842:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetOutputWriteStatus
1687 843:./include/lib_AT91SAM7.h **** //* \brief Return PIO Output Write Status
1688 844:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1689 845:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetOutputWriteStatus( // \return PIO Output Write Status
1690 846:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1691 847:./include/lib_AT91SAM7.h **** {
1692 848:./include/lib_AT91SAM7.h **** return pPio->PIO_OWSR;
1693 849:./include/lib_AT91SAM7.h **** }
1694 850:./include/lib_AT91SAM7.h ****
1695 851:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1696 852:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOutputWriteSet
1697 853:./include/lib_AT91SAM7.h **** //* \brief Test if PIO OutputWrite is Set
1698 854:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1699 855:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputWriteSet(
1700 856:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1701 857:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1702 858:./include/lib_AT91SAM7.h **** {
1703 859:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputWriteStatus(pPio) & flag);
1704 860:./include/lib_AT91SAM7.h **** }
1705 861:./include/lib_AT91SAM7.h ****
1706 862:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1707 863:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_GetCfgPullup
1708 864:./include/lib_AT91SAM7.h **** //* \brief Return PIO Configuration Pullup
1709 865:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1710 866:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PIO_GetCfgPullup( // \return PIO Configuration Pullup
1711 867:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio) // \arg pointer to a PIO controller
1712 868:./include/lib_AT91SAM7.h **** {
1713 869:./include/lib_AT91SAM7.h **** return pPio->PIO_PPUSR;
1714 870:./include/lib_AT91SAM7.h **** }
1715 871:./include/lib_AT91SAM7.h ****
1716 872:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1717 873:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsOutputDataStatusSet
1718 874:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Output Data Status is Set
1719 875:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1720 876:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsOutputDataStatusSet(
1721 877:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1722 878:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1723 879:./include/lib_AT91SAM7.h **** {
1724 880:./include/lib_AT91SAM7.h **** return (AT91F_PIO_GetOutputDataStatus(pPio) & flag);
1725 881:./include/lib_AT91SAM7.h **** }
1726 882:./include/lib_AT91SAM7.h ****
1727 883:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1728 884:./include/lib_AT91SAM7.h **** //* \fn AT91F_PIO_IsCfgPullupStatusSet
1729 885:./include/lib_AT91SAM7.h **** //* \brief Test if PIO Configuration Pullup Status is Set
1730 886:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1731 887:./include/lib_AT91SAM7.h **** static inline int AT91F_PIO_IsCfgPullupStatusSet(
1732 888:./include/lib_AT91SAM7.h **** AT91PS_PIO pPio, // \arg pointer to a PIO controller
1733 889:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1734 890:./include/lib_AT91SAM7.h **** {
1735 891:./include/lib_AT91SAM7.h **** return (~AT91F_PIO_GetCfgPullup(pPio) & flag);
1736 892:./include/lib_AT91SAM7.h **** }
1737 893:./include/lib_AT91SAM7.h ****
1738 894:./include/lib_AT91SAM7.h **** /* *****************************************************************************
1739 895:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PMC
1740 896:./include/lib_AT91SAM7.h **** ***************************************************************************** */
1741 897:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1742 898:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgSysClkEnableReg
1743 899:./include/lib_AT91SAM7.h **** //* \brief Configure the System Clock Enable Register of the PMC controller
1744 900:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1745 901:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgSysClkEnableReg (
1746 902:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1747 903:./include/lib_AT91SAM7.h **** unsigned int mode)
1748 904:./include/lib_AT91SAM7.h **** {
1749 905:./include/lib_AT91SAM7.h **** //* Write to the SCER register
1750 906:./include/lib_AT91SAM7.h **** pPMC->PMC_SCER = mode;
1751 907:./include/lib_AT91SAM7.h **** }
1752 908:./include/lib_AT91SAM7.h ****
1753 909:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1754 910:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgSysClkDisableReg
1755 911:./include/lib_AT91SAM7.h **** //* \brief Configure the System Clock Disable Register of the PMC controller
1756 912:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1757 913:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgSysClkDisableReg (
1758 914:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1759 915:./include/lib_AT91SAM7.h **** unsigned int mode)
1760 916:./include/lib_AT91SAM7.h **** {
1761 917:./include/lib_AT91SAM7.h **** //* Write to the SCDR register
1762 918:./include/lib_AT91SAM7.h **** pPMC->PMC_SCDR = mode;
1763 919:./include/lib_AT91SAM7.h **** }
1764 920:./include/lib_AT91SAM7.h ****
1765 921:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1766 922:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetSysClkStatusReg
1767 923:./include/lib_AT91SAM7.h **** //* \brief Return the System Clock Status Register of the PMC controller
1768 924:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1769 925:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetSysClkStatusReg (
1770 926:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC // pointer to a CAN controller
1771 927:./include/lib_AT91SAM7.h **** )
1772 928:./include/lib_AT91SAM7.h **** {
1773 929:./include/lib_AT91SAM7.h **** return pPMC->PMC_SCSR;
1774 930:./include/lib_AT91SAM7.h **** }
1775 931:./include/lib_AT91SAM7.h ****
1776 932:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1777 933:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnablePeriphClock
1778 934:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock
1779 935:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1780 936:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnablePeriphClock (
1781 937:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1782 938:./include/lib_AT91SAM7.h **** unsigned int periphIds) // \arg IDs of peripherals to enable
1783 939:./include/lib_AT91SAM7.h **** {
1784 940:./include/lib_AT91SAM7.h **** pPMC->PMC_PCER = periphIds;
1785 941:./include/lib_AT91SAM7.h **** }
1786 942:./include/lib_AT91SAM7.h ****
1787 943:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1788 944:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisablePeriphClock
1789 945:./include/lib_AT91SAM7.h **** //* \brief Disable peripheral clock
1790 946:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1791 947:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisablePeriphClock (
1792 948:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1793 949:./include/lib_AT91SAM7.h **** unsigned int periphIds) // \arg IDs of peripherals to enable
1794 950:./include/lib_AT91SAM7.h **** {
1795 951:./include/lib_AT91SAM7.h **** pPMC->PMC_PCDR = periphIds;
1796 952:./include/lib_AT91SAM7.h **** }
1797 953:./include/lib_AT91SAM7.h ****
1798 954:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1799 955:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetPeriphClock
1800 956:./include/lib_AT91SAM7.h **** //* \brief Get peripheral clock status
1801 957:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1802 958:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetPeriphClock (
1803 959:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // \arg pointer to PMC controller
1804 960:./include/lib_AT91SAM7.h **** {
1805 961:./include/lib_AT91SAM7.h **** return pPMC->PMC_PCSR;
1806 962:./include/lib_AT91SAM7.h **** }
1807 963:./include/lib_AT91SAM7.h ****
1808 964:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1809 965:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_CfgMainOscillatorReg
1810 966:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator
1811 967:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1812 968:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgMainOscillatorReg (
1813 969:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1814 970:./include/lib_AT91SAM7.h **** unsigned int mode)
1815 971:./include/lib_AT91SAM7.h **** {
1816 972:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR = mode;
1817 973:./include/lib_AT91SAM7.h **** }
1818 974:./include/lib_AT91SAM7.h ****
1819 975:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1820 976:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainOscillatorReg
1821 977:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator
1822 978:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1823 979:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainOscillatorReg (
1824 980:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1825 981:./include/lib_AT91SAM7.h **** {
1826 982:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_MOR;
1827 983:./include/lib_AT91SAM7.h **** }
1828 984:./include/lib_AT91SAM7.h ****
1829 985:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1830 986:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_EnableMainOscillator
1831 987:./include/lib_AT91SAM7.h **** //* \brief Enable the main oscillator
1832 988:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1833 989:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_EnableMainOscillator(
1834 990:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1835 991:./include/lib_AT91SAM7.h **** {
1836 992:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR |= AT91C_CKGR_MOSCEN;
1837 993:./include/lib_AT91SAM7.h **** }
1838 994:./include/lib_AT91SAM7.h ****
1839 995:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1840 996:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_DisableMainOscillator
1841 997:./include/lib_AT91SAM7.h **** //* \brief Disable the main oscillator
1842 998:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1843 999:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_DisableMainOscillator (
1844 1000:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1845 1001:./include/lib_AT91SAM7.h **** {
1846 1002:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR &= ~AT91C_CKGR_MOSCEN;
1847 1003:./include/lib_AT91SAM7.h **** }
1848 1004:./include/lib_AT91SAM7.h ****
1849 1005:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1850 1006:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_CfgMainOscStartUpTime
1851 1007:./include/lib_AT91SAM7.h **** //* \brief Cfg MOR Register according to the main osc startup time
1852 1008:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1853 1009:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgMainOscStartUpTime (
1854 1010:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1855 1011:./include/lib_AT91SAM7.h **** unsigned int startup_time, // \arg main osc startup time in microsecond (us)
1856 1012:./include/lib_AT91SAM7.h **** unsigned int slowClock) // \arg slowClock in Hz
1857 1013:./include/lib_AT91SAM7.h **** {
1858 1014:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR &= ~AT91C_CKGR_OSCOUNT;
1859 1015:./include/lib_AT91SAM7.h **** pCKGR->CKGR_MOR |= ((slowClock * startup_time)/(8*1000000)) << 8;
1860 1016:./include/lib_AT91SAM7.h **** }
1861 1017:./include/lib_AT91SAM7.h ****
1862 1018:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1863 1019:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainClockFreqReg
1864 1020:./include/lib_AT91SAM7.h **** //* \brief Cfg the main oscillator
1865 1021:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1866 1022:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainClockFreqReg (
1867 1023:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
1868 1024:./include/lib_AT91SAM7.h **** {
1869 1025:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_MCFR;
1870 1026:./include/lib_AT91SAM7.h **** }
1871 1027:./include/lib_AT91SAM7.h ****
1872 1028:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1873 1029:./include/lib_AT91SAM7.h **** //* \fn AT91F_CKGR_GetMainClock
1874 1030:./include/lib_AT91SAM7.h **** //* \brief Return Main clock in Hz
1875 1031:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1876 1032:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetMainClock (
1877 1033:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1878 1034:./include/lib_AT91SAM7.h **** unsigned int slowClock) // \arg slowClock in Hz
1879 1035:./include/lib_AT91SAM7.h **** {
1880 1036:./include/lib_AT91SAM7.h **** return ((pCKGR->CKGR_MCFR & AT91C_CKGR_MAINF) * slowClock) >> 4;
1881 1037:./include/lib_AT91SAM7.h **** }
1882 1038:./include/lib_AT91SAM7.h ****
1883 1039:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1884 1040:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_CfgMCKReg
1885 1041:./include/lib_AT91SAM7.h **** //* \brief Cfg Master Clock Register
1886 1042:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1887 1043:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_CfgMCKReg (
1888 1044:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1889 1045:./include/lib_AT91SAM7.h **** unsigned int mode)
1890 1046:./include/lib_AT91SAM7.h **** {
1891 1047:./include/lib_AT91SAM7.h **** pPMC->PMC_MCKR = mode;
1892 1048:./include/lib_AT91SAM7.h **** }
1893 1049:./include/lib_AT91SAM7.h ****
1894 1050:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1895 1051:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetMCKReg
1896 1052:./include/lib_AT91SAM7.h **** //* \brief Return Master Clock Register
1897 1053:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1898 1054:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetMCKReg(
1899 1055:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // \arg pointer to PMC controller
1900 1056:./include/lib_AT91SAM7.h **** {
1901 1057:./include/lib_AT91SAM7.h **** return pPMC->PMC_MCKR;
1902 1058:./include/lib_AT91SAM7.h **** }
1903 1059:./include/lib_AT91SAM7.h ****
1904 1060:./include/lib_AT91SAM7.h **** //*------------------------------------------------------------------------------
1905 1061:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetMasterClock
1906 1062:./include/lib_AT91SAM7.h **** //* \brief Return master clock in Hz which correponds to processor clock for ARM7
1907 1063:./include/lib_AT91SAM7.h **** //*------------------------------------------------------------------------------
1908 1064:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_PMC_GetMasterClock (
1909 1065:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1910 1066:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
1911 1067:./include/lib_AT91SAM7.h **** unsigned int slowClock); // \arg slowClock in Hz
1912 1068:./include/lib_AT91SAM7.h ****
1913 1069:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1914 1070:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnablePCK
1915 1071:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock
1916 1072:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1917 1073:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnablePCK (
1918 1074:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1919 1075:./include/lib_AT91SAM7.h **** unsigned int pck, // \arg Peripheral clock identifier 0 .. 7
1920 1076:./include/lib_AT91SAM7.h **** unsigned int mode)
1921 1077:./include/lib_AT91SAM7.h **** {
1922 1078:./include/lib_AT91SAM7.h **** pPMC->PMC_PCKR[pck] = mode;
1923 1079:./include/lib_AT91SAM7.h **** pPMC->PMC_SCER = (1 << pck) << 8;
1924 1080:./include/lib_AT91SAM7.h **** }
1925 1081:./include/lib_AT91SAM7.h ****
1926 1082:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1927 1083:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisablePCK
1928 1084:./include/lib_AT91SAM7.h **** //* \brief Enable peripheral clock
1929 1085:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1930 1086:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisablePCK (
1931 1087:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to PMC controller
1932 1088:./include/lib_AT91SAM7.h **** unsigned int pck) // \arg Peripheral clock identifier 0 .. 7
1933 1089:./include/lib_AT91SAM7.h **** {
1934 1090:./include/lib_AT91SAM7.h **** pPMC->PMC_SCDR = (1 << pck) << 8;
1935 1091:./include/lib_AT91SAM7.h **** }
1936 1092:./include/lib_AT91SAM7.h ****
1937 1093:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1938 1094:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_EnableIt
1939 1095:./include/lib_AT91SAM7.h **** //* \brief Enable PMC interrupt
1940 1096:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1941 1097:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_EnableIt (
1942 1098:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // pointer to a PMC controller
1943 1099:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled
1944 1100:./include/lib_AT91SAM7.h **** {
1945 1101:./include/lib_AT91SAM7.h **** //* Write to the IER register
1946 1102:./include/lib_AT91SAM7.h **** pPMC->PMC_IER = flag;
1947 1103:./include/lib_AT91SAM7.h **** }
1948 1104:./include/lib_AT91SAM7.h ****
1949 1105:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1950 1106:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_DisableIt
1951 1107:./include/lib_AT91SAM7.h **** //* \brief Disable PMC interrupt
1952 1108:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1953 1109:./include/lib_AT91SAM7.h **** static inline void AT91F_PMC_DisableIt (
1954 1110:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // pointer to a PMC controller
1955 1111:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled
1956 1112:./include/lib_AT91SAM7.h **** {
1957 1113:./include/lib_AT91SAM7.h **** //* Write to the IDR register
1958 1114:./include/lib_AT91SAM7.h **** pPMC->PMC_IDR = flag;
1959 1115:./include/lib_AT91SAM7.h **** }
1960 1116:./include/lib_AT91SAM7.h ****
1961 1117:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1962 1118:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetStatus
1963 1119:./include/lib_AT91SAM7.h **** //* \brief Return PMC Interrupt Status
1964 1120:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1965 1121:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetStatus( // \return PMC Interrupt Status
1966 1122:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // pointer to a PMC controller
1967 1123:./include/lib_AT91SAM7.h **** {
1968 1124:./include/lib_AT91SAM7.h **** return pPMC->PMC_SR;
1969 1125:./include/lib_AT91SAM7.h **** }
1970 1126:./include/lib_AT91SAM7.h ****
1971 1127:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1972 1128:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_GetInterruptMaskStatus
1973 1129:./include/lib_AT91SAM7.h **** //* \brief Return PMC Interrupt Mask Status
1974 1130:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1975 1131:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_GetInterruptMaskStatus( // \return PMC Interrupt Mask Status
1976 1132:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC) // pointer to a PMC controller
1977 1133:./include/lib_AT91SAM7.h **** {
1978 1134:./include/lib_AT91SAM7.h **** return pPMC->PMC_IMR;
1979 1135:./include/lib_AT91SAM7.h **** }
1980 1136:./include/lib_AT91SAM7.h ****
1981 1137:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1982 1138:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_IsInterruptMasked
1983 1139:./include/lib_AT91SAM7.h **** //* \brief Test if PMC Interrupt is Masked
1984 1140:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1985 1141:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_IsInterruptMasked(
1986 1142:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to a PMC controller
1987 1143:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1988 1144:./include/lib_AT91SAM7.h **** {
1989 1145:./include/lib_AT91SAM7.h **** return (AT91F_PMC_GetInterruptMaskStatus(pPMC) & flag);
1990 1146:./include/lib_AT91SAM7.h **** }
1991 1147:./include/lib_AT91SAM7.h ****
1992 1148:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1993 1149:./include/lib_AT91SAM7.h **** //* \fn AT91F_PMC_IsStatusSet
1994 1150:./include/lib_AT91SAM7.h **** //* \brief Test if PMC Status is Set
1995 1151:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
1996 1152:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PMC_IsStatusSet(
1997 1153:./include/lib_AT91SAM7.h **** AT91PS_PMC pPMC, // \arg pointer to a PMC controller
1998 1154:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
1999 1155:./include/lib_AT91SAM7.h **** {
2000 1156:./include/lib_AT91SAM7.h **** return (AT91F_PMC_GetStatus(pPMC) & flag);
2001 1157:./include/lib_AT91SAM7.h **** }
2002 1158:./include/lib_AT91SAM7.h ****
2003 1159:./include/lib_AT91SAM7.h **** // ----------------------------------------------------------------------------
2004 1160:./include/lib_AT91SAM7.h **** // \fn AT91F_CKGR_CfgPLLReg
2005 1161:./include/lib_AT91SAM7.h **** // \brief Cfg the PLL Register
2006 1162:./include/lib_AT91SAM7.h **** // ----------------------------------------------------------------------------
2007 1163:./include/lib_AT91SAM7.h **** static inline void AT91F_CKGR_CfgPLLReg (
2008 1164:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
2009 1165:./include/lib_AT91SAM7.h **** unsigned int mode)
2010 1166:./include/lib_AT91SAM7.h **** {
2011 1167:./include/lib_AT91SAM7.h **** pCKGR->CKGR_PLLR = mode;
2012 1168:./include/lib_AT91SAM7.h **** }
2013 1169:./include/lib_AT91SAM7.h ****
2014 1170:./include/lib_AT91SAM7.h **** // ----------------------------------------------------------------------------
2015 1171:./include/lib_AT91SAM7.h **** // \fn AT91F_CKGR_GetPLLReg
2016 1172:./include/lib_AT91SAM7.h **** // \brief Get the PLL Register
2017 1173:./include/lib_AT91SAM7.h **** // ----------------------------------------------------------------------------
2018 1174:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_CKGR_GetPLLReg (
2019 1175:./include/lib_AT91SAM7.h **** AT91PS_CKGR pCKGR) // \arg pointer to CKGR controller
2020 1176:./include/lib_AT91SAM7.h **** {
2021 1177:./include/lib_AT91SAM7.h **** return pCKGR->CKGR_PLLR;
2022 1178:./include/lib_AT91SAM7.h **** }
2023 1179:./include/lib_AT91SAM7.h ****
2024 1180:./include/lib_AT91SAM7.h ****
2025 1181:./include/lib_AT91SAM7.h ****
2026 1182:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2027 1183:./include/lib_AT91SAM7.h **** SOFTWARE API FOR RSTC
2028 1184:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2029 1185:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2030 1186:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTSoftReset
2031 1187:./include/lib_AT91SAM7.h **** //* \brief Start Software Reset
2032 1188:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2033 1189:./include/lib_AT91SAM7.h **** static inline void AT91F_RSTSoftReset(
2034 1190:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC,
2035 1191:./include/lib_AT91SAM7.h **** unsigned int reset)
2036 1192:./include/lib_AT91SAM7.h **** {
2037 1193:./include/lib_AT91SAM7.h **** pRSTC->RSTC_RCR = (0xA5000000 | reset);
2038 1194:./include/lib_AT91SAM7.h **** }
2039 1195:./include/lib_AT91SAM7.h ****
2040 1196:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2041 1197:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTSetMode
2042 1198:./include/lib_AT91SAM7.h **** //* \brief Set Reset Mode
2043 1199:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2044 1200:./include/lib_AT91SAM7.h **** static inline void AT91F_RSTSetMode(
2045 1201:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC,
2046 1202:./include/lib_AT91SAM7.h **** unsigned int mode)
2047 1203:./include/lib_AT91SAM7.h **** {
2048 1204:./include/lib_AT91SAM7.h **** pRSTC->RSTC_RMR = (0xA5000000 | mode);
2049 1205:./include/lib_AT91SAM7.h **** }
2050 1206:./include/lib_AT91SAM7.h ****
2051 1207:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2052 1208:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTGetMode
2053 1209:./include/lib_AT91SAM7.h **** //* \brief Get Reset Mode
2054 1210:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2055 1211:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTGetMode(
2056 1212:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC)
2057 1213:./include/lib_AT91SAM7.h **** {
2058 1214:./include/lib_AT91SAM7.h **** return (pRSTC->RSTC_RMR);
2059 1215:./include/lib_AT91SAM7.h **** }
2060 1216:./include/lib_AT91SAM7.h ****
2061 1217:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2062 1218:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTGetStatus
2063 1219:./include/lib_AT91SAM7.h **** //* \brief Get Reset Status
2064 1220:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2065 1221:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTGetStatus(
2066 1222:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC)
2067 1223:./include/lib_AT91SAM7.h **** {
2068 1224:./include/lib_AT91SAM7.h **** return (pRSTC->RSTC_RSR);
2069 1225:./include/lib_AT91SAM7.h **** }
2070 1226:./include/lib_AT91SAM7.h ****
2071 1227:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2072 1228:./include/lib_AT91SAM7.h **** //* \fn AT91F_RSTIsSoftRstActive
2073 1229:./include/lib_AT91SAM7.h **** //* \brief Return !=0 if software reset is still not completed
2074 1230:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2075 1231:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RSTIsSoftRstActive(
2076 1232:./include/lib_AT91SAM7.h **** AT91PS_RSTC pRSTC)
2077 1233:./include/lib_AT91SAM7.h **** {
2078 1234:./include/lib_AT91SAM7.h **** return ((pRSTC->RSTC_RSR) & AT91C_RSTC_SRCMP);
2079 1235:./include/lib_AT91SAM7.h **** }
2080 1236:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2081 1237:./include/lib_AT91SAM7.h **** SOFTWARE API FOR RTTC
2082 1238:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2083 1239:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2084 1240:./include/lib_AT91SAM7.h **** //* \fn AT91F_SetRTT_TimeBase()
2085 1241:./include/lib_AT91SAM7.h **** //* \brief Set the RTT prescaler according to the TimeBase in ms
2086 1242:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2087 1243:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTSetTimeBase(
2088 1244:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC,
2089 1245:./include/lib_AT91SAM7.h **** unsigned int ms)
2090 1246:./include/lib_AT91SAM7.h **** {
2091 1247:./include/lib_AT91SAM7.h **** if (ms > 2000)
2092 1248:./include/lib_AT91SAM7.h **** return 1; // AT91C_TIME_OUT_OF_RANGE
2093 1249:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~0xFFFF;
2094 1250:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= (((ms << 15) /1000) & 0xFFFF);
2095 1251:./include/lib_AT91SAM7.h **** return 0;
2096 1252:./include/lib_AT91SAM7.h **** }
2097 1253:./include/lib_AT91SAM7.h ****
2098 1254:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2099 1255:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTSetPrescaler()
2100 1256:./include/lib_AT91SAM7.h **** //* \brief Set the new prescaler value
2101 1257:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2102 1258:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTSetPrescaler(
2103 1259:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC,
2104 1260:./include/lib_AT91SAM7.h **** unsigned int rtpres)
2105 1261:./include/lib_AT91SAM7.h **** {
2106 1262:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~0xFFFF;
2107 1263:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= (rtpres & 0xFFFF);
2108 1264:./include/lib_AT91SAM7.h **** return (pRTTC->RTTC_RTMR);
2109 1265:./include/lib_AT91SAM7.h **** }
2110 1266:./include/lib_AT91SAM7.h ****
2111 1267:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2112 1268:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTRestart()
2113 1269:./include/lib_AT91SAM7.h **** //* \brief Restart the RTT prescaler
2114 1270:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2115 1271:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTRestart(
2116 1272:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2117 1273:./include/lib_AT91SAM7.h **** {
2118 1274:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTRST;
2119 1275:./include/lib_AT91SAM7.h **** }
2120 1276:./include/lib_AT91SAM7.h ****
2121 1277:./include/lib_AT91SAM7.h ****
2122 1278:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2123 1279:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetAlarmINT()
2124 1280:./include/lib_AT91SAM7.h **** //* \brief Enable RTT Alarm Interrupt
2125 1281:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2126 1282:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetAlarmINT(
2127 1283:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2128 1284:./include/lib_AT91SAM7.h **** {
2129 1285:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_ALMIEN;
2130 1286:./include/lib_AT91SAM7.h **** }
2131 1287:./include/lib_AT91SAM7.h ****
2132 1288:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2133 1289:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ClearAlarmINT()
2134 1290:./include/lib_AT91SAM7.h **** //* \brief Disable RTT Alarm Interrupt
2135 1291:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2136 1292:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTClearAlarmINT(
2137 1293:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2138 1294:./include/lib_AT91SAM7.h **** {
2139 1295:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~AT91C_RTTC_ALMIEN;
2140 1296:./include/lib_AT91SAM7.h **** }
2141 1297:./include/lib_AT91SAM7.h ****
2142 1298:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2143 1299:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetRttIncINT()
2144 1300:./include/lib_AT91SAM7.h **** //* \brief Enable RTT INC Interrupt
2145 1301:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2146 1302:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetRttIncINT(
2147 1303:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2148 1304:./include/lib_AT91SAM7.h **** {
2149 1305:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR |= AT91C_RTTC_RTTINCIEN;
2150 1306:./include/lib_AT91SAM7.h **** }
2151 1307:./include/lib_AT91SAM7.h ****
2152 1308:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2153 1309:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ClearRttIncINT()
2154 1310:./include/lib_AT91SAM7.h **** //* \brief Disable RTT INC Interrupt
2155 1311:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2156 1312:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTClearRttIncINT(
2157 1313:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2158 1314:./include/lib_AT91SAM7.h **** {
2159 1315:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTMR &= ~AT91C_RTTC_RTTINCIEN;
2160 1316:./include/lib_AT91SAM7.h **** }
2161 1317:./include/lib_AT91SAM7.h ****
2162 1318:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2163 1319:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_SetAlarmValue()
2164 1320:./include/lib_AT91SAM7.h **** //* \brief Set RTT Alarm Value
2165 1321:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2166 1322:./include/lib_AT91SAM7.h **** static inline void AT91F_RTTSetAlarmValue(
2167 1323:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC, unsigned int _alarm)
2168 1324:./include/lib_AT91SAM7.h **** {
2169 1325:./include/lib_AT91SAM7.h **** pRTTC->RTTC_RTAR = _alarm;
2170 1326:./include/lib_AT91SAM7.h **** }
2171 1327:./include/lib_AT91SAM7.h ****
2172 1328:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2173 1329:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_GetAlarmValue()
2174 1330:./include/lib_AT91SAM7.h **** //* \brief Get RTT Alarm Value
2175 1331:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2176 1332:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTGetAlarmValue(
2177 1333:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2178 1334:./include/lib_AT91SAM7.h **** {
2179 1335:./include/lib_AT91SAM7.h **** return(pRTTC->RTTC_RTAR);
2180 1336:./include/lib_AT91SAM7.h **** }
2181 1337:./include/lib_AT91SAM7.h ****
2182 1338:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2183 1339:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTTGetStatus()
2184 1340:./include/lib_AT91SAM7.h **** //* \brief Read the RTT status
2185 1341:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2186 1342:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_RTTGetStatus(
2187 1343:./include/lib_AT91SAM7.h **** AT91PS_RTTC pRTTC)
2188 1344:./include/lib_AT91SAM7.h **** {
2189 1345:./include/lib_AT91SAM7.h **** return(pRTTC->RTTC_RTSR);
2190 1346:./include/lib_AT91SAM7.h **** }
2191 1347:./include/lib_AT91SAM7.h ****
2192 1348:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2193 1349:./include/lib_AT91SAM7.h **** //* \fn AT91F_RTT_ReadValue()
2194 1350:./include/lib_AT91SAM7.h **** //* \brief Read the RTT value
2195 1351:./include/lib_AT91SAM7.h **** //*--------------------------------------------------------------------------------------
2196 1352:./include/lib_AT91SAM7.h **** extern unsigned int AT91F_RTTReadValue(AT91PS_RTTC pRTTC);
2197 1353:./include/lib_AT91SAM7.h ****
2198 1354:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2199 1355:./include/lib_AT91SAM7.h **** SOFTWARE API FOR PITC
2200 1356:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2201 1357:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2202 1358:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITInit
2203 1359:./include/lib_AT91SAM7.h **** //* \brief System timer init : period in ‘second, system clock freq in MHz
2204 1360:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2205 1361:./include/lib_AT91SAM7.h **** static inline void AT91F_PITInit(
2206 1362:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC,
2207 1363:./include/lib_AT91SAM7.h **** unsigned int period,
2208 1364:./include/lib_AT91SAM7.h **** unsigned int pit_frequency)
2209 1365:./include/lib_AT91SAM7.h **** {
2210 1366:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR = period? (period * pit_frequency + 8) >> 4 : 0; // +8 to avoid %10 and /10
2211 1367:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR |= AT91C_PITC_PITEN;
2212 1368:./include/lib_AT91SAM7.h **** }
2213 1369:./include/lib_AT91SAM7.h ****
2214 1370:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2215 1371:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITSetPIV
2216 1372:./include/lib_AT91SAM7.h **** //* \brief Set the PIT Periodic Interval Value
2217 1373:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2218 1374:./include/lib_AT91SAM7.h **** static inline void AT91F_PITSetPIV(
2219 1375:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC,
2220 1376:./include/lib_AT91SAM7.h **** unsigned int piv)
2221 1377:./include/lib_AT91SAM7.h **** {
2222 1378:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR = piv | (pPITC->PITC_PIMR & (AT91C_PITC_PITEN | AT91C_PITC_PITIEN));
2223 1379:./include/lib_AT91SAM7.h **** }
2224 1380:./include/lib_AT91SAM7.h ****
2225 1381:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2226 1382:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITEnableInt
2227 1383:./include/lib_AT91SAM7.h **** //* \brief Enable PIT periodic interrupt
2228 1384:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2229 1385:./include/lib_AT91SAM7.h **** static inline void AT91F_PITEnableInt(
2230 1386:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2231 1387:./include/lib_AT91SAM7.h **** {
2232 1388:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR |= AT91C_PITC_PITIEN;
2233 1389:./include/lib_AT91SAM7.h **** }
2234 1390:./include/lib_AT91SAM7.h ****
2235 1391:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2236 1392:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITDisableInt
2237 1393:./include/lib_AT91SAM7.h **** //* \brief Disable PIT periodic interrupt
2238 1394:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2239 1395:./include/lib_AT91SAM7.h **** static inline void AT91F_PITDisableInt(
2240 1396:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2241 1397:./include/lib_AT91SAM7.h **** {
2242 1398:./include/lib_AT91SAM7.h **** pPITC->PITC_PIMR &= ~AT91C_PITC_PITIEN;
2243 1399:./include/lib_AT91SAM7.h **** }
2244 1400:./include/lib_AT91SAM7.h ****
2245 1401:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2246 1402:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetMode
2247 1403:./include/lib_AT91SAM7.h **** //* \brief Read PIT mode register
2248 1404:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2249 1405:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetMode(
2250 1406:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2251 1407:./include/lib_AT91SAM7.h **** {
2252 1408:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIMR);
2253 1409:./include/lib_AT91SAM7.h **** }
2254 1410:./include/lib_AT91SAM7.h ****
2255 1411:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2256 1412:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetStatus
2257 1413:./include/lib_AT91SAM7.h **** //* \brief Read PIT status register
2258 1414:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2259 1415:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetStatus(
2260 1416:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2261 1417:./include/lib_AT91SAM7.h **** {
2262 1418:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PISR);
2263 1419:./include/lib_AT91SAM7.h **** }
2264 1420:./include/lib_AT91SAM7.h ****
2265 1421:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2266 1422:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetPIIR
2267 1423:./include/lib_AT91SAM7.h **** //* \brief Read PIT CPIV and PICNT without ressetting the counters
2268 1424:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2269 1425:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetPIIR(
2270 1426:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2271 1427:./include/lib_AT91SAM7.h **** {
2272 1428:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIIR);
2273 1429:./include/lib_AT91SAM7.h **** }
2274 1430:./include/lib_AT91SAM7.h ****
2275 1431:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2276 1432:./include/lib_AT91SAM7.h **** //* \fn AT91F_PITGetPIVR
2277 1433:./include/lib_AT91SAM7.h **** //* \brief Read System timer CPIV and PICNT without ressetting the counters
2278 1434:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2279 1435:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_PITGetPIVR(
2280 1436:./include/lib_AT91SAM7.h **** AT91PS_PITC pPITC)
2281 1437:./include/lib_AT91SAM7.h **** {
2282 1438:./include/lib_AT91SAM7.h **** return(pPITC->PITC_PIVR);
2283 1439:./include/lib_AT91SAM7.h **** }
2284 1440:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2285 1441:./include/lib_AT91SAM7.h **** SOFTWARE API FOR WDTC
2286 1442:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2287 1443:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2288 1444:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTSetMode
2289 1445:./include/lib_AT91SAM7.h **** //* \brief Set Watchdog Mode Register
2290 1446:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2291 1447:./include/lib_AT91SAM7.h **** static inline void AT91F_WDTSetMode(
2292 1448:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC,
2293 1449:./include/lib_AT91SAM7.h **** unsigned int Mode)
2294 1450:./include/lib_AT91SAM7.h **** {
2295 1451:./include/lib_AT91SAM7.h **** pWDTC->WDTC_WDMR = Mode;
2296 1452:./include/lib_AT91SAM7.h **** }
2297 1453:./include/lib_AT91SAM7.h ****
2298 1454:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2299 1455:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTRestart
2300 1456:./include/lib_AT91SAM7.h **** //* \brief Restart Watchdog
2301 1457:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2302 1458:./include/lib_AT91SAM7.h **** static inline void AT91F_WDTRestart(
2303 1459:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC)
2304 1460:./include/lib_AT91SAM7.h **** {
2305 1461:./include/lib_AT91SAM7.h **** pWDTC->WDTC_WDCR = 0xA5000001;
2306 1462:./include/lib_AT91SAM7.h **** }
2307 1463:./include/lib_AT91SAM7.h ****
2308 1464:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2309 1465:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTSGettatus
2310 1466:./include/lib_AT91SAM7.h **** //* \brief Get Watchdog Status
2311 1467:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2312 1468:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_WDTSGettatus(
2313 1469:./include/lib_AT91SAM7.h **** AT91PS_WDTC pWDTC)
2314 1470:./include/lib_AT91SAM7.h **** {
2315 1471:./include/lib_AT91SAM7.h **** return(pWDTC->WDTC_WDSR & 0x3);
2316 1472:./include/lib_AT91SAM7.h **** }
2317 1473:./include/lib_AT91SAM7.h ****
2318 1474:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2319 1475:./include/lib_AT91SAM7.h **** //* \fn AT91F_WDTGetPeriod
2320 1476:./include/lib_AT91SAM7.h **** //* \brief Translate ms into Watchdog Compatible value
2321 1477:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2322 1478:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_WDTGetPeriod(unsigned int ms)
2323 1479:./include/lib_AT91SAM7.h **** {
2324 1480:./include/lib_AT91SAM7.h **** if ((ms < 4) || (ms > 16000))
2325 1481:./include/lib_AT91SAM7.h **** return 0;
2326 1482:./include/lib_AT91SAM7.h **** return((ms << 8) / 1000);
2327 1483:./include/lib_AT91SAM7.h **** }
2328 1484:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2329 1485:./include/lib_AT91SAM7.h **** SOFTWARE API FOR VREG
2330 1486:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2331 1487:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2332 1488:./include/lib_AT91SAM7.h **** //* \fn AT91F_VREG_Enable_LowPowerMode
2333 1489:./include/lib_AT91SAM7.h **** //* \brief Enable VREG Low Power Mode
2334 1490:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2335 1491:./include/lib_AT91SAM7.h **** static inline void AT91F_VREG_Enable_LowPowerMode(
2336 1492:./include/lib_AT91SAM7.h **** AT91PS_VREG pVREG)
2337 1493:./include/lib_AT91SAM7.h **** {
2338 1494:./include/lib_AT91SAM7.h **** pVREG->VREG_MR |= AT91C_VREG_PSTDBY;
2339 1495:./include/lib_AT91SAM7.h **** }
2340 1496:./include/lib_AT91SAM7.h ****
2341 1497:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2342 1498:./include/lib_AT91SAM7.h **** //* \fn AT91F_VREG_Disable_LowPowerMode
2343 1499:./include/lib_AT91SAM7.h **** //* \brief Disable VREG Low Power Mode
2344 1500:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2345 1501:./include/lib_AT91SAM7.h **** static inline void AT91F_VREG_Disable_LowPowerMode(
2346 1502:./include/lib_AT91SAM7.h **** AT91PS_VREG pVREG)
2347 1503:./include/lib_AT91SAM7.h **** {
2348 1504:./include/lib_AT91SAM7.h **** pVREG->VREG_MR &= ~AT91C_VREG_PSTDBY;
2349 1505:./include/lib_AT91SAM7.h **** }/* *****************************************************************************
2350 1506:./include/lib_AT91SAM7.h **** SOFTWARE API FOR MC
2351 1507:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2352 1508:./include/lib_AT91SAM7.h ****
2353 1509:./include/lib_AT91SAM7.h **** #define AT91C_MC_CORRECT_KEY ((unsigned int) 0x5A << 24) // (MC) Correct Protect Key
2354 1510:./include/lib_AT91SAM7.h ****
2355 1511:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2356 1512:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_Remap
2357 1513:./include/lib_AT91SAM7.h **** //* \brief Make Remap
2358 1514:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2359 1515:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_Remap (void) //
2360 1516:./include/lib_AT91SAM7.h **** {
2361 1517:./include/lib_AT91SAM7.h **** AT91PS_MC pMC = (AT91PS_MC) AT91C_BASE_MC;
2362 1518:./include/lib_AT91SAM7.h ****
2363 1519:./include/lib_AT91SAM7.h **** pMC->MC_RCR = AT91C_MC_RCB;
2364 1520:./include/lib_AT91SAM7.h **** }
2365 1521:./include/lib_AT91SAM7.h ****
2366 1522:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2367 1523:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_CfgModeReg
2368 1524:./include/lib_AT91SAM7.h **** //* \brief Configure the EFC Mode Register of the MC controller
2369 1525:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2370 1526:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_EFC_CfgModeReg (
2371 1527:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // pointer to a MC controller
2372 1528:./include/lib_AT91SAM7.h **** unsigned int mode) // mode register
2373 1529:./include/lib_AT91SAM7.h **** {
2374 1530:./include/lib_AT91SAM7.h **** // Write to the FMR register
2375 1531:./include/lib_AT91SAM7.h **** pMC->MC_FMR = mode;
2376 1532:./include/lib_AT91SAM7.h **** }
2377 1533:./include/lib_AT91SAM7.h ****
2378 1534:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2379 1535:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_GetModeReg
2380 1536:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Mode Regsiter
2381 1537:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2382 1538:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_GetModeReg(
2383 1539:./include/lib_AT91SAM7.h **** AT91PS_MC pMC) // pointer to a MC controller
2384 1540:./include/lib_AT91SAM7.h **** {
2385 1541:./include/lib_AT91SAM7.h **** return pMC->MC_FMR;
2386 1542:./include/lib_AT91SAM7.h **** }
2387 1543:./include/lib_AT91SAM7.h ****
2388 1544:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2389 1545:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_ComputeFMCN
2390 1546:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Mode Regsiter
2391 1547:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2392 1548:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_ComputeFMCN(
2393 1549:./include/lib_AT91SAM7.h **** int master_clock) // master clock in Hz
2394 1550:./include/lib_AT91SAM7.h **** {
2395 1551:./include/lib_AT91SAM7.h **** return (master_clock/1000000 +2);
2396 1552:./include/lib_AT91SAM7.h **** }
2397 1553:./include/lib_AT91SAM7.h ****
2398 1554:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2399 1555:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_PerformCmd
2400 1556:./include/lib_AT91SAM7.h **** //* \brief Perform EFC Command
2401 1557:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2402 1558:./include/lib_AT91SAM7.h **** static inline void AT91F_MC_EFC_PerformCmd (
2403 1559:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // pointer to a MC controller
2404 1560:./include/lib_AT91SAM7.h **** unsigned int transfer_cmd)
2405 1561:./include/lib_AT91SAM7.h **** {
2406 1562:./include/lib_AT91SAM7.h **** pMC->MC_FCR = transfer_cmd;
2407 1563:./include/lib_AT91SAM7.h **** }
2408 1564:./include/lib_AT91SAM7.h ****
2409 1565:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2410 1566:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_GetStatus
2411 1567:./include/lib_AT91SAM7.h **** //* \brief Return MC EFC Status
2412 1568:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2413 1569:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_GetStatus(
2414 1570:./include/lib_AT91SAM7.h **** AT91PS_MC pMC) // pointer to a MC controller
2415 1571:./include/lib_AT91SAM7.h **** {
2416 1572:./include/lib_AT91SAM7.h **** return pMC->MC_FSR;
2417 1573:./include/lib_AT91SAM7.h **** }
2418 1574:./include/lib_AT91SAM7.h ****
2419 1575:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2420 1576:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_IsInterruptMasked
2421 1577:./include/lib_AT91SAM7.h **** //* \brief Test if EFC MC Interrupt is Masked
2422 1578:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2423 1579:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_IsInterruptMasked(
2424 1580:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // \arg pointer to a MC controller
2425 1581:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
2426 1582:./include/lib_AT91SAM7.h **** {
2427 1583:./include/lib_AT91SAM7.h **** return (AT91F_MC_EFC_GetModeReg(pMC) & flag);
2428 1584:./include/lib_AT91SAM7.h **** }
2429 1585:./include/lib_AT91SAM7.h ****
2430 1586:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2431 1587:./include/lib_AT91SAM7.h **** //* \fn AT91F_MC_EFC_IsInterruptSet
2432 1588:./include/lib_AT91SAM7.h **** //* \brief Test if EFC MC Interrupt is Set
2433 1589:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2434 1590:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_MC_EFC_IsInterruptSet(
2435 1591:./include/lib_AT91SAM7.h **** AT91PS_MC pMC, // \arg pointer to a MC controller
2436 1592:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
2437 1593:./include/lib_AT91SAM7.h **** {
2438 1594:./include/lib_AT91SAM7.h **** return (AT91F_MC_EFC_GetStatus(pMC) & flag);
2439 1595:./include/lib_AT91SAM7.h **** }
2440 1596:./include/lib_AT91SAM7.h ****
2441 1597:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2442 1598:./include/lib_AT91SAM7.h **** SOFTWARE API FOR SPI
2443 1599:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2444 1600:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2445 1601:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgCs
2446 1602:./include/lib_AT91SAM7.h **** //* \brief Configure SPI chip select register
2447 1603:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2448 1604:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgCs (
2449 1605:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller
2450 1606:./include/lib_AT91SAM7.h **** int cs, // SPI cs number (0 to 3)
2451 1607:./include/lib_AT91SAM7.h **** int val) // chip select register
2452 1608:./include/lib_AT91SAM7.h **** {
2453 1609:./include/lib_AT91SAM7.h **** //* Write to the CSR register
2454 1610:./include/lib_AT91SAM7.h **** *(pSPI->SPI_CSR + cs) = val;
2455 1611:./include/lib_AT91SAM7.h **** }
2456 1612:./include/lib_AT91SAM7.h ****
2457 1613:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2458 1614:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_EnableIt
2459 1615:./include/lib_AT91SAM7.h **** //* \brief Enable SPI interrupt
2460 1616:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2461 1617:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_EnableIt (
2462 1618:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller
2463 1619:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled
2464 1620:./include/lib_AT91SAM7.h **** {
2465 1621:./include/lib_AT91SAM7.h **** //* Write to the IER register
2466 1622:./include/lib_AT91SAM7.h **** pSPI->SPI_IER = flag;
2467 1623:./include/lib_AT91SAM7.h **** }
2468 1624:./include/lib_AT91SAM7.h ****
2469 1625:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2470 1626:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_DisableIt
2471 1627:./include/lib_AT91SAM7.h **** //* \brief Disable SPI interrupt
2472 1628:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2473 1629:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_DisableIt (
2474 1630:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller
2475 1631:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled
2476 1632:./include/lib_AT91SAM7.h **** {
2477 1633:./include/lib_AT91SAM7.h **** //* Write to the IDR register
2478 1634:./include/lib_AT91SAM7.h **** pSPI->SPI_IDR = flag;
2479 1635:./include/lib_AT91SAM7.h **** }
2480 1636:./include/lib_AT91SAM7.h ****
2481 1637:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2482 1638:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Reset
2483 1639:./include/lib_AT91SAM7.h **** //* \brief Reset the SPI controller
2484 1640:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2485 1641:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Reset (
2486 1642:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller
2487 1643:./include/lib_AT91SAM7.h **** )
2488 1644:./include/lib_AT91SAM7.h **** {
2489 1645:./include/lib_AT91SAM7.h **** //* Write to the CR register
2490 1646:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SWRST;
2491 1647:./include/lib_AT91SAM7.h **** }
2492 1648:./include/lib_AT91SAM7.h ****
2493 1649:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2494 1650:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Enable
2495 1651:./include/lib_AT91SAM7.h **** //* \brief Enable the SPI controller
2496 1652:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2497 1653:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Enable (
2498 1654:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller
2499 1655:./include/lib_AT91SAM7.h **** )
2500 1656:./include/lib_AT91SAM7.h **** {
2501 1657:./include/lib_AT91SAM7.h **** //* Write to the CR register
2502 1658:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SPIEN;
2503 1659:./include/lib_AT91SAM7.h **** }
2504 1660:./include/lib_AT91SAM7.h ****
2505 1661:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2506 1662:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Disable
2507 1663:./include/lib_AT91SAM7.h **** //* \brief Disable the SPI controller
2508 1664:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2509 1665:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_Disable (
2510 1666:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI // pointer to a SPI controller
2511 1667:./include/lib_AT91SAM7.h **** )
2512 1668:./include/lib_AT91SAM7.h **** {
2513 1669:./include/lib_AT91SAM7.h **** //* Write to the CR register
2514 1670:./include/lib_AT91SAM7.h **** pSPI->SPI_CR = AT91C_SPI_SPIDIS;
2515 1671:./include/lib_AT91SAM7.h **** }
2516 1672:./include/lib_AT91SAM7.h ****
2517 1673:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2518 1674:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgMode
2519 1675:./include/lib_AT91SAM7.h **** //* \brief Enable the SPI controller
2520 1676:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2521 1677:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgMode (
2522 1678:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller
2523 1679:./include/lib_AT91SAM7.h **** int mode) // mode register
2524 1680:./include/lib_AT91SAM7.h **** {
2525 1681:./include/lib_AT91SAM7.h **** //* Write to the MR register
2526 1682:./include/lib_AT91SAM7.h **** pSPI->SPI_MR = mode;
2527 1683:./include/lib_AT91SAM7.h **** }
2528 1684:./include/lib_AT91SAM7.h ****
2529 1685:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2530 1686:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_CfgPCS
2531 1687:./include/lib_AT91SAM7.h **** //* \brief Switch to the correct PCS of SPI Mode Register : Fixed Peripheral Selected
2532 1688:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2533 1689:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_CfgPCS (
2534 1690:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI, // pointer to a SPI controller
2535 1691:./include/lib_AT91SAM7.h **** char PCS_Device) // PCS of the Device
2536 1692:./include/lib_AT91SAM7.h **** {
2537 1693:./include/lib_AT91SAM7.h **** //* Write to the MR register
2538 1694:./include/lib_AT91SAM7.h **** pSPI->SPI_MR &= 0xFFF0FFFF;
2539 1695:./include/lib_AT91SAM7.h **** pSPI->SPI_MR |= ( (PCS_Device<<16) & AT91C_SPI_PCS );
2540 1696:./include/lib_AT91SAM7.h **** }
2541 1697:./include/lib_AT91SAM7.h ****
2542 1698:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2543 1699:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_ReceiveFrame
2544 1700:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init
2545 1701:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2546 1702:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_ReceiveFrame (
2547 1703:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI,
2548 1704:./include/lib_AT91SAM7.h **** unsigned char *pBuffer,
2549 1705:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
2550 1706:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer,
2551 1707:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer )
2552 1708:./include/lib_AT91SAM7.h **** {
2553 1709:./include/lib_AT91SAM7.h **** return AT91F_PDC_ReceiveFrame(
2554 1710:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSPI->SPI_RPR),
2555 1711:./include/lib_AT91SAM7.h **** pBuffer,
2556 1712:./include/lib_AT91SAM7.h **** szBuffer,
2557 1713:./include/lib_AT91SAM7.h **** pNextBuffer,
2558 1714:./include/lib_AT91SAM7.h **** szNextBuffer);
2559 1715:./include/lib_AT91SAM7.h **** }
2560 1716:./include/lib_AT91SAM7.h ****
2561 1717:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2562 1718:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_SendFrame
2563 1719:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init
2564 1720:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2565 1721:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_SendFrame(
2566 1722:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI,
2567 1723:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer,
2568 1724:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
2569 1725:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer,
2570 1726:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer )
2571 1727:./include/lib_AT91SAM7.h **** {
2572 1728:./include/lib_AT91SAM7.h **** return AT91F_PDC_SendFrame(
2573 1729:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSPI->SPI_RPR),
2574 1730:./include/lib_AT91SAM7.h **** pBuffer,
2575 1731:./include/lib_AT91SAM7.h **** szBuffer,
2576 1732:./include/lib_AT91SAM7.h **** pNextBuffer,
2577 1733:./include/lib_AT91SAM7.h **** szNextBuffer);
2578 1734:./include/lib_AT91SAM7.h **** }
2579 1735:./include/lib_AT91SAM7.h ****
2580 1736:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2581 1737:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_Close
2582 1738:./include/lib_AT91SAM7.h **** //* \brief Close SPI: disable IT disable transfert, close PDC
2583 1739:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2584 1740:./include/lib_AT91SAM7.h **** extern void AT91F_SPI_Close(AT91PS_SPI pSPI); // \arg pointer to a SPI controller
2585 1741:./include/lib_AT91SAM7.h ****
2586 1742:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2587 1743:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_PutChar
2588 1744:./include/lib_AT91SAM7.h **** //* \brief Send a character,does not check if ready to send
2589 1745:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2590 1746:./include/lib_AT91SAM7.h **** static inline void AT91F_SPI_PutChar (
2591 1747:./include/lib_AT91SAM7.h **** AT91PS_SPI pSPI,
2592 1748:./include/lib_AT91SAM7.h **** unsigned int character,
2593 1749:./include/lib_AT91SAM7.h **** unsigned int cs_number )
2594 1750:./include/lib_AT91SAM7.h **** {
2595 1751:./include/lib_AT91SAM7.h **** unsigned int value_for_cs;
2596 1752:./include/lib_AT91SAM7.h **** value_for_cs = (~(1 << cs_number)) & 0xF; //Place a zero among a 4 ONEs number
2597 1753:./include/lib_AT91SAM7.h **** pSPI->SPI_TDR = (character & 0xFFFF) | (value_for_cs << 16);
2598 1754:./include/lib_AT91SAM7.h **** }
2599 1755:./include/lib_AT91SAM7.h ****
2600 1756:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2601 1757:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_GetChar
2602 1758:./include/lib_AT91SAM7.h **** //* \brief Receive a character,does not check if a character is available
2603 1759:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2604 1760:./include/lib_AT91SAM7.h **** static inline int AT91F_SPI_GetChar (
2605 1761:./include/lib_AT91SAM7.h **** const AT91PS_SPI pSPI)
2606 1762:./include/lib_AT91SAM7.h **** {
2607 1763:./include/lib_AT91SAM7.h **** return((pSPI->SPI_RDR) & 0xFFFF);
2608 1764:./include/lib_AT91SAM7.h **** }
2609 1765:./include/lib_AT91SAM7.h ****
2610 1766:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2611 1767:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_GetInterruptMaskStatus
2612 1768:./include/lib_AT91SAM7.h **** //* \brief Return SPI Interrupt Mask Status
2613 1769:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2614 1770:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SPI_GetInterruptMaskStatus( // \return SPI Interrupt Mask Status
2615 1771:./include/lib_AT91SAM7.h **** AT91PS_SPI pSpi) // \arg pointer to a SPI controller
2616 1772:./include/lib_AT91SAM7.h **** {
2617 1773:./include/lib_AT91SAM7.h **** return pSpi->SPI_IMR;
2618 1774:./include/lib_AT91SAM7.h **** }
2619 1775:./include/lib_AT91SAM7.h ****
2620 1776:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2621 1777:./include/lib_AT91SAM7.h **** //* \fn AT91F_SPI_IsInterruptMasked
2622 1778:./include/lib_AT91SAM7.h **** //* \brief Test if SPI Interrupt is Masked
2623 1779:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2624 1780:./include/lib_AT91SAM7.h **** static inline int AT91F_SPI_IsInterruptMasked(
2625 1781:./include/lib_AT91SAM7.h **** AT91PS_SPI pSpi, // \arg pointer to a SPI controller
2626 1782:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
2627 1783:./include/lib_AT91SAM7.h **** {
2628 1784:./include/lib_AT91SAM7.h **** return (AT91F_SPI_GetInterruptMaskStatus(pSpi) & flag);
2629 1785:./include/lib_AT91SAM7.h **** }
2630 1786:./include/lib_AT91SAM7.h ****
2631 1787:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2632 1788:./include/lib_AT91SAM7.h **** SOFTWARE API FOR ADC
2633 1789:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2634 1790:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2635 1791:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_EnableIt
2636 1792:./include/lib_AT91SAM7.h **** //* \brief Enable ADC interrupt
2637 1793:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2638 1794:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_EnableIt (
2639 1795:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2640 1796:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be enabled
2641 1797:./include/lib_AT91SAM7.h **** {
2642 1798:./include/lib_AT91SAM7.h **** //* Write to the IER register
2643 1799:./include/lib_AT91SAM7.h **** pADC->ADC_IER = flag;
2644 1800:./include/lib_AT91SAM7.h **** }
2645 1801:./include/lib_AT91SAM7.h ****
2646 1802:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2647 1803:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_DisableIt
2648 1804:./include/lib_AT91SAM7.h **** //* \brief Disable ADC interrupt
2649 1805:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2650 1806:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_DisableIt (
2651 1807:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2652 1808:./include/lib_AT91SAM7.h **** unsigned int flag) // IT to be disabled
2653 1809:./include/lib_AT91SAM7.h **** {
2654 1810:./include/lib_AT91SAM7.h **** //* Write to the IDR register
2655 1811:./include/lib_AT91SAM7.h **** pADC->ADC_IDR = flag;
2656 1812:./include/lib_AT91SAM7.h **** }
2657 1813:./include/lib_AT91SAM7.h ****
2658 1814:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2659 1815:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetStatus
2660 1816:./include/lib_AT91SAM7.h **** //* \brief Return ADC Interrupt Status
2661 1817:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2662 1818:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetStatus( // \return ADC Interrupt Status
2663 1819:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC) // pointer to a ADC controller
2664 1820:./include/lib_AT91SAM7.h **** {
2665 1821:./include/lib_AT91SAM7.h **** return pADC->ADC_SR;
2666 1822:./include/lib_AT91SAM7.h **** }
2667 1823:./include/lib_AT91SAM7.h ****
2668 1824:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2669 1825:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetInterruptMaskStatus
2670 1826:./include/lib_AT91SAM7.h **** //* \brief Return ADC Interrupt Mask Status
2671 1827:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2672 1828:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetInterruptMaskStatus( // \return ADC Interrupt Mask Status
2673 1829:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC) // pointer to a ADC controller
2674 1830:./include/lib_AT91SAM7.h **** {
2675 1831:./include/lib_AT91SAM7.h **** return pADC->ADC_IMR;
2676 1832:./include/lib_AT91SAM7.h **** }
2677 1833:./include/lib_AT91SAM7.h ****
2678 1834:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2679 1835:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_IsInterruptMasked
2680 1836:./include/lib_AT91SAM7.h **** //* \brief Test if ADC Interrupt is Masked
2681 1837:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2682 1838:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_IsInterruptMasked(
2683 1839:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // \arg pointer to a ADC controller
2684 1840:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
2685 1841:./include/lib_AT91SAM7.h **** {
2686 1842:./include/lib_AT91SAM7.h **** return (AT91F_ADC_GetInterruptMaskStatus(pADC) & flag);
2687 1843:./include/lib_AT91SAM7.h **** }
2688 1844:./include/lib_AT91SAM7.h ****
2689 1845:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2690 1846:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_IsStatusSet
2691 1847:./include/lib_AT91SAM7.h **** //* \brief Test if ADC Status is Set
2692 1848:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2693 1849:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_IsStatusSet(
2694 1850:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // \arg pointer to a ADC controller
2695 1851:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
2696 1852:./include/lib_AT91SAM7.h **** {
2697 1853:./include/lib_AT91SAM7.h **** return (AT91F_ADC_GetStatus(pADC) & flag);
2698 1854:./include/lib_AT91SAM7.h **** }
2699 1855:./include/lib_AT91SAM7.h ****
2700 1856:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2701 1857:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_CfgModeReg
2702 1858:./include/lib_AT91SAM7.h **** //* \brief Configure the Mode Register of the ADC controller
2703 1859:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2704 1860:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_CfgModeReg (
2705 1861:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2706 1862:./include/lib_AT91SAM7.h **** unsigned int mode) // mode register
2707 1863:./include/lib_AT91SAM7.h **** {
2708 1864:./include/lib_AT91SAM7.h **** //* Write to the MR register
2709 1865:./include/lib_AT91SAM7.h **** pADC->ADC_MR = mode;
2710 1866:./include/lib_AT91SAM7.h **** }
2711 1867:./include/lib_AT91SAM7.h ****
2712 1868:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2713 1869:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetModeReg
2714 1870:./include/lib_AT91SAM7.h **** //* \brief Return the Mode Register of the ADC controller value
2715 1871:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2716 1872:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetModeReg (
2717 1873:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2718 1874:./include/lib_AT91SAM7.h **** )
2719 1875:./include/lib_AT91SAM7.h **** {
2720 1876:./include/lib_AT91SAM7.h **** return pADC->ADC_MR;
2721 1877:./include/lib_AT91SAM7.h **** }
2722 1878:./include/lib_AT91SAM7.h ****
2723 1879:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2724 1880:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_CfgTimings
2725 1881:./include/lib_AT91SAM7.h **** //* \brief Configure the different necessary timings of the ADC controller
2726 1882:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2727 1883:./include/lib_AT91SAM7.h **** extern void AT91F_ADC_CfgTimings (
2728 1884:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2729 1885:./include/lib_AT91SAM7.h **** unsigned int mck_clock, // in MHz
2730 1886:./include/lib_AT91SAM7.h **** unsigned int adc_clock, // in MHz
2731 1887:./include/lib_AT91SAM7.h **** unsigned int startup_time, // in us
2732 1888:./include/lib_AT91SAM7.h **** unsigned int sample_and_hold_time); // in ns
2733 1889:./include/lib_AT91SAM7.h ****
2734 1890:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2735 1891:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_EnableChannel
2736 1892:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value
2737 1893:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2738 1894:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_EnableChannel (
2739 1895:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2740 1896:./include/lib_AT91SAM7.h **** unsigned int channel) // mode register
2741 1897:./include/lib_AT91SAM7.h **** {
2742 1898:./include/lib_AT91SAM7.h **** //* Write to the CHER register
2743 1899:./include/lib_AT91SAM7.h **** pADC->ADC_CHER = channel;
2744 1900:./include/lib_AT91SAM7.h **** }
2745 1901:./include/lib_AT91SAM7.h ****
2746 1902:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2747 1903:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_DisableChannel
2748 1904:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value
2749 1905:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2750 1906:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_DisableChannel (
2751 1907:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC, // pointer to a ADC controller
2752 1908:./include/lib_AT91SAM7.h **** unsigned int channel) // mode register
2753 1909:./include/lib_AT91SAM7.h **** {
2754 1910:./include/lib_AT91SAM7.h **** //* Write to the CHDR register
2755 1911:./include/lib_AT91SAM7.h **** pADC->ADC_CHDR = channel;
2756 1912:./include/lib_AT91SAM7.h **** }
2757 1913:./include/lib_AT91SAM7.h ****
2758 1914:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2759 1915:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetChannelStatus
2760 1916:./include/lib_AT91SAM7.h **** //* \brief Return ADC Timer Register Value
2761 1917:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2762 1918:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetChannelStatus (
2763 1919:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2764 1920:./include/lib_AT91SAM7.h **** )
2765 1921:./include/lib_AT91SAM7.h **** {
2766 1922:./include/lib_AT91SAM7.h **** return pADC->ADC_CHSR;
2767 1923:./include/lib_AT91SAM7.h **** }
2768 1924:./include/lib_AT91SAM7.h ****
2769 1925:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2770 1926:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_StartConversion
2771 1927:./include/lib_AT91SAM7.h **** //* \brief Software request for a analog to digital conversion
2772 1928:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2773 1929:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_StartConversion (
2774 1930:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2775 1931:./include/lib_AT91SAM7.h **** )
2776 1932:./include/lib_AT91SAM7.h **** {
2777 1933:./include/lib_AT91SAM7.h **** pADC->ADC_CR = AT91C_ADC_START;
2778 1934:./include/lib_AT91SAM7.h **** }
2779 1935:./include/lib_AT91SAM7.h ****
2780 1936:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2781 1937:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_SoftReset
2782 1938:./include/lib_AT91SAM7.h **** //* \brief Software reset
2783 1939:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2784 1940:./include/lib_AT91SAM7.h **** static inline void AT91F_ADC_SoftReset (
2785 1941:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2786 1942:./include/lib_AT91SAM7.h **** )
2787 1943:./include/lib_AT91SAM7.h **** {
2788 1944:./include/lib_AT91SAM7.h **** pADC->ADC_CR = AT91C_ADC_SWRST;
2789 1945:./include/lib_AT91SAM7.h **** }
2790 1946:./include/lib_AT91SAM7.h ****
2791 1947:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2792 1948:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetLastConvertedData
2793 1949:./include/lib_AT91SAM7.h **** //* \brief Return the Last Converted Data
2794 1950:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2795 1951:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetLastConvertedData (
2796 1952:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2797 1953:./include/lib_AT91SAM7.h **** )
2798 1954:./include/lib_AT91SAM7.h **** {
2799 1955:./include/lib_AT91SAM7.h **** return pADC->ADC_LCDR;
2800 1956:./include/lib_AT91SAM7.h **** }
2801 1957:./include/lib_AT91SAM7.h ****
2802 1958:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2803 1959:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH0
2804 1960:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 0 Converted Data
2805 1961:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2806 1962:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH0 (
2807 1963:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2808 1964:./include/lib_AT91SAM7.h **** )
2809 1965:./include/lib_AT91SAM7.h **** {
2810 1966:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR0;
2811 1967:./include/lib_AT91SAM7.h **** }
2812 1968:./include/lib_AT91SAM7.h ****
2813 1969:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2814 1970:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH1
2815 1971:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 1 Converted Data
2816 1972:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2817 1973:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH1 (
2818 1974:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2819 1975:./include/lib_AT91SAM7.h **** )
2820 1976:./include/lib_AT91SAM7.h **** {
2821 1977:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR1;
2822 1978:./include/lib_AT91SAM7.h **** }
2823 1979:./include/lib_AT91SAM7.h ****
2824 1980:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2825 1981:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH2
2826 1982:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 2 Converted Data
2827 1983:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2828 1984:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH2 (
2829 1985:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2830 1986:./include/lib_AT91SAM7.h **** )
2831 1987:./include/lib_AT91SAM7.h **** {
2832 1988:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR2;
2833 1989:./include/lib_AT91SAM7.h **** }
2834 1990:./include/lib_AT91SAM7.h ****
2835 1991:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2836 1992:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH3
2837 1993:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 3 Converted Data
2838 1994:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2839 1995:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH3 (
2840 1996:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2841 1997:./include/lib_AT91SAM7.h **** )
2842 1998:./include/lib_AT91SAM7.h **** {
2843 1999:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR3;
2844 2000:./include/lib_AT91SAM7.h **** }
2845 2001:./include/lib_AT91SAM7.h ****
2846 2002:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2847 2003:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH4
2848 2004:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 4 Converted Data
2849 2005:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2850 2006:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH4 (
2851 2007:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2852 2008:./include/lib_AT91SAM7.h **** )
2853 2009:./include/lib_AT91SAM7.h **** {
2854 2010:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR4;
2855 2011:./include/lib_AT91SAM7.h **** }
2856 2012:./include/lib_AT91SAM7.h ****
2857 2013:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2858 2014:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH5
2859 2015:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 5 Converted Data
2860 2016:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2861 2017:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH5 (
2862 2018:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2863 2019:./include/lib_AT91SAM7.h **** )
2864 2020:./include/lib_AT91SAM7.h **** {
2865 2021:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR5;
2866 2022:./include/lib_AT91SAM7.h **** }
2867 2023:./include/lib_AT91SAM7.h ****
2868 2024:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2869 2025:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH6
2870 2026:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 6 Converted Data
2871 2027:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2872 2028:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH6 (
2873 2029:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2874 2030:./include/lib_AT91SAM7.h **** )
2875 2031:./include/lib_AT91SAM7.h **** {
2876 2032:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR6;
2877 2033:./include/lib_AT91SAM7.h **** }
2878 2034:./include/lib_AT91SAM7.h ****
2879 2035:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2880 2036:./include/lib_AT91SAM7.h **** //* \fn AT91F_ADC_GetConvertedDataCH7
2881 2037:./include/lib_AT91SAM7.h **** //* \brief Return the Channel 7 Converted Data
2882 2038:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2883 2039:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_ADC_GetConvertedDataCH7 (
2884 2040:./include/lib_AT91SAM7.h **** AT91PS_ADC pADC // pointer to a ADC controller
2885 2041:./include/lib_AT91SAM7.h **** )
2886 2042:./include/lib_AT91SAM7.h **** {
2887 2043:./include/lib_AT91SAM7.h **** return pADC->ADC_CDR7;
2888 2044:./include/lib_AT91SAM7.h **** }
2889 2045:./include/lib_AT91SAM7.h ****
2890 2046:./include/lib_AT91SAM7.h **** /* *****************************************************************************
2891 2047:./include/lib_AT91SAM7.h **** SOFTWARE API FOR SSC
2892 2048:./include/lib_AT91SAM7.h **** ***************************************************************************** */
2893 2049:./include/lib_AT91SAM7.h **** //* Define the standard I2S mode configuration
2894 2050:./include/lib_AT91SAM7.h ****
2895 2051:./include/lib_AT91SAM7.h **** //* Configuration to set in the SSC Transmit Clock Mode Register
2896 2052:./include/lib_AT91SAM7.h **** //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits
2897 2053:./include/lib_AT91SAM7.h **** //* nb_slot_by_frame : number of channels
2898 2054:./include/lib_AT91SAM7.h **** #define AT91C_I2S_ASY_MASTER_TX_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
2899 2055:./include/lib_AT91SAM7.h **** AT91C_SSC_CKS_DIV +\
2900 2056:./include/lib_AT91SAM7.h **** AT91C_SSC_CKO_CONTINOUS +\
2901 2057:./include/lib_AT91SAM7.h **** AT91C_SSC_CKG_NONE +\
2902 2058:./include/lib_AT91SAM7.h **** AT91C_SSC_START_FALL_RF +\
2903 2059:./include/lib_AT91SAM7.h **** AT91C_SSC_STTOUT +\
2904 2060:./include/lib_AT91SAM7.h **** ((1<<16) & AT91C_SSC_STTDLY) +\
2905 2061:./include/lib_AT91SAM7.h **** ((((nb_bit_by_slot*nb_slot_by_frame)/2)-1) <<24))
2906 2062:./include/lib_AT91SAM7.h ****
2907 2063:./include/lib_AT91SAM7.h ****
2908 2064:./include/lib_AT91SAM7.h **** //* Configuration to set in the SSC Transmit Frame Mode Register
2909 2065:./include/lib_AT91SAM7.h **** //* Parameters : nb_bit_by_slot : 8, 16 or 32 bits
2910 2066:./include/lib_AT91SAM7.h **** //* nb_slot_by_frame : number of channels
2911 2067:./include/lib_AT91SAM7.h **** #define AT91C_I2S_ASY_TX_FRAME_SETTING(nb_bit_by_slot, nb_slot_by_frame)( +\
2912 2068:./include/lib_AT91SAM7.h **** (nb_bit_by_slot-1) +\
2913 2069:./include/lib_AT91SAM7.h **** AT91C_SSC_MSBF +\
2914 2070:./include/lib_AT91SAM7.h **** (((nb_slot_by_frame-1)<<8) & AT91C_SSC_DATNB) +\
2915 2071:./include/lib_AT91SAM7.h **** (((nb_bit_by_slot-1)<<16) & AT91C_SSC_FSLEN) +\
2916 2072:./include/lib_AT91SAM7.h **** AT91C_SSC_FSOS_NEGATIVE)
2917 2073:./include/lib_AT91SAM7.h ****
2918 2074:./include/lib_AT91SAM7.h ****
2919 2075:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2920 2076:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_SetBaudrate
2921 2077:./include/lib_AT91SAM7.h **** //* \brief Set the baudrate according to the CPU clock
2922 2078:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2923 2079:./include/lib_AT91SAM7.h **** extern void AT91F_SSC_SetBaudrate (
2924 2080:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2925 2081:./include/lib_AT91SAM7.h **** unsigned int mainClock, // \arg peripheral clock
2926 2082:./include/lib_AT91SAM7.h **** unsigned int speed); // \arg SSC baudrate
2927 2083:./include/lib_AT91SAM7.h ****
2928 2084:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2929 2085:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_Configure
2930 2086:./include/lib_AT91SAM7.h **** //* \brief Configure SSC
2931 2087:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2932 2088:./include/lib_AT91SAM7.h **** extern void AT91F_SSC_Configure (
2933 2089:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2934 2090:./include/lib_AT91SAM7.h **** unsigned int syst_clock, // \arg System Clock Frequency
2935 2091:./include/lib_AT91SAM7.h **** unsigned int baud_rate, // \arg Expected Baud Rate Frequency
2936 2092:./include/lib_AT91SAM7.h **** unsigned int clock_rx, // \arg Receiver Clock Parameters
2937 2093:./include/lib_AT91SAM7.h **** unsigned int mode_rx, // \arg mode Register to be programmed
2938 2094:./include/lib_AT91SAM7.h **** unsigned int clock_tx, // \arg Transmitter Clock Parameters
2939 2095:./include/lib_AT91SAM7.h **** unsigned int mode_tx); // \arg mode Register to be programmed
2940 2096:./include/lib_AT91SAM7.h ****
2941 2097:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2942 2098:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableRx
2943 2099:./include/lib_AT91SAM7.h **** //* \brief Enable receiving datas
2944 2100:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2945 2101:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableRx (
2946 2102:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2947 2103:./include/lib_AT91SAM7.h **** {
2948 2104:./include/lib_AT91SAM7.h **** //* Enable receiver
2949 2105:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_RXEN;
2950 2106:./include/lib_AT91SAM7.h **** }
2951 2107:./include/lib_AT91SAM7.h ****
2952 2108:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2953 2109:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableRx
2954 2110:./include/lib_AT91SAM7.h **** //* \brief Disable receiving datas
2955 2111:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2956 2112:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableRx (
2957 2113:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2958 2114:./include/lib_AT91SAM7.h **** {
2959 2115:./include/lib_AT91SAM7.h **** //* Disable receiver
2960 2116:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_RXDIS;
2961 2117:./include/lib_AT91SAM7.h **** }
2962 2118:./include/lib_AT91SAM7.h ****
2963 2119:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2964 2120:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableTx
2965 2121:./include/lib_AT91SAM7.h **** //* \brief Enable sending datas
2966 2122:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2967 2123:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableTx (
2968 2124:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2969 2125:./include/lib_AT91SAM7.h **** {
2970 2126:./include/lib_AT91SAM7.h **** //* Enable transmitter
2971 2127:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_TXEN;
2972 2128:./include/lib_AT91SAM7.h **** }
2973 2129:./include/lib_AT91SAM7.h ****
2974 2130:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2975 2131:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableTx
2976 2132:./include/lib_AT91SAM7.h **** //* \brief Disable sending datas
2977 2133:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2978 2134:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableTx (
2979 2135:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC) // \arg pointer to a SSC controller
2980 2136:./include/lib_AT91SAM7.h **** {
2981 2137:./include/lib_AT91SAM7.h **** //* Disable transmitter
2982 2138:./include/lib_AT91SAM7.h **** pSSC->SSC_CR = AT91C_SSC_TXDIS;
2983 2139:./include/lib_AT91SAM7.h **** }
2984 2140:./include/lib_AT91SAM7.h ****
2985 2141:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2986 2142:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_EnableIt
2987 2143:./include/lib_AT91SAM7.h **** //* \brief Enable SSC IT
2988 2144:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2989 2145:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_EnableIt (
2990 2146:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
2991 2147:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg IT to be enabled
2992 2148:./include/lib_AT91SAM7.h **** {
2993 2149:./include/lib_AT91SAM7.h **** //* Write to the IER register
2994 2150:./include/lib_AT91SAM7.h **** pSSC->SSC_IER = flag;
2995 2151:./include/lib_AT91SAM7.h **** }
2996 2152:./include/lib_AT91SAM7.h ****
2997 2153:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
2998 2154:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_DisableIt
2999 2155:./include/lib_AT91SAM7.h **** //* \brief Disable SSC IT
3000 2156:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3001 2157:./include/lib_AT91SAM7.h **** static inline void AT91F_SSC_DisableIt (
3002 2158:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC, // \arg pointer to a SSC controller
3003 2159:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg IT to be disabled
3004 2160:./include/lib_AT91SAM7.h **** {
3005 2161:./include/lib_AT91SAM7.h **** //* Write to the IDR register
3006 2162:./include/lib_AT91SAM7.h **** pSSC->SSC_IDR = flag;
3007 2163:./include/lib_AT91SAM7.h **** }
3008 2164:./include/lib_AT91SAM7.h ****
3009 2165:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3010 2166:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_ReceiveFrame
3011 2167:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init
3012 2168:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3013 2169:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_ReceiveFrame (
3014 2170:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC,
3015 2171:./include/lib_AT91SAM7.h **** unsigned char *pBuffer,
3016 2172:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
3017 2173:./include/lib_AT91SAM7.h **** unsigned char *pNextBuffer,
3018 2174:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer )
3019 2175:./include/lib_AT91SAM7.h **** {
3020 2176:./include/lib_AT91SAM7.h **** return AT91F_PDC_ReceiveFrame(
3021 2177:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSSC->SSC_RPR),
3022 2178:./include/lib_AT91SAM7.h **** pBuffer,
3023 2179:./include/lib_AT91SAM7.h **** szBuffer,
3024 2180:./include/lib_AT91SAM7.h **** pNextBuffer,
3025 2181:./include/lib_AT91SAM7.h **** szNextBuffer);
3026 2182:./include/lib_AT91SAM7.h **** }
3027 2183:./include/lib_AT91SAM7.h ****
3028 2184:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3029 2185:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_SendFrame
3030 2186:./include/lib_AT91SAM7.h **** //* \brief Return 2 if PDC has been initialized with Buffer and Next Buffer, 1 if PDC has been init
3031 2187:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3032 2188:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_SendFrame(
3033 2189:./include/lib_AT91SAM7.h **** AT91PS_SSC pSSC,
3034 2190:./include/lib_AT91SAM7.h **** const unsigned char *pBuffer,
3035 2191:./include/lib_AT91SAM7.h **** unsigned int szBuffer,
3036 2192:./include/lib_AT91SAM7.h **** const unsigned char *pNextBuffer,
3037 2193:./include/lib_AT91SAM7.h **** unsigned int szNextBuffer )
3038 2194:./include/lib_AT91SAM7.h **** {
3039 2195:./include/lib_AT91SAM7.h **** return AT91F_PDC_SendFrame(
3040 2196:./include/lib_AT91SAM7.h **** (AT91PS_PDC) &(pSSC->SSC_RPR),
3041 2197:./include/lib_AT91SAM7.h **** pBuffer,
3042 2198:./include/lib_AT91SAM7.h **** szBuffer,
3043 2199:./include/lib_AT91SAM7.h **** pNextBuffer,
3044 2200:./include/lib_AT91SAM7.h **** szNextBuffer);
3045 2201:./include/lib_AT91SAM7.h **** }
3046 2202:./include/lib_AT91SAM7.h ****
3047 2203:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3048 2204:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_GetInterruptMaskStatus
3049 2205:./include/lib_AT91SAM7.h **** //* \brief Return SSC Interrupt Mask Status
3050 2206:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3051 2207:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_SSC_GetInterruptMaskStatus( // \return SSC Interrupt Mask Status
3052 2208:./include/lib_AT91SAM7.h **** AT91PS_SSC pSsc) // \arg pointer to a SSC controller
3053 2209:./include/lib_AT91SAM7.h **** {
3054 2210:./include/lib_AT91SAM7.h **** return pSsc->SSC_IMR;
3055 2211:./include/lib_AT91SAM7.h **** }
3056 2212:./include/lib_AT91SAM7.h ****
3057 2213:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3058 2214:./include/lib_AT91SAM7.h **** //* \fn AT91F_SSC_IsInterruptMasked
3059 2215:./include/lib_AT91SAM7.h **** //* \brief Test if SSC Interrupt is Masked
3060 2216:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3061 2217:./include/lib_AT91SAM7.h **** static inline int AT91F_SSC_IsInterruptMasked(
3062 2218:./include/lib_AT91SAM7.h **** AT91PS_SSC pSsc, // \arg pointer to a SSC controller
3063 2219:./include/lib_AT91SAM7.h **** unsigned int flag) // \arg flag to be tested
3064 2220:./include/lib_AT91SAM7.h **** {
3065 2221:./include/lib_AT91SAM7.h **** return (AT91F_SSC_GetInterruptMaskStatus(pSsc) & flag);
3066 2222:./include/lib_AT91SAM7.h **** }
3067 2223:./include/lib_AT91SAM7.h ****
3068 2224:./include/lib_AT91SAM7.h **** /* *****************************************************************************
3069 2225:./include/lib_AT91SAM7.h **** SOFTWARE API FOR USART
3070 2226:./include/lib_AT91SAM7.h **** ***************************************************************************** */
3071 2227:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3072 2228:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_Baudrate
3073 2229:./include/lib_AT91SAM7.h **** //* \brief Calculate the baudrate
3074 2230:./include/lib_AT91SAM7.h **** //* Standard Asynchronous Mode : 8 bits , 1 stop , no parity
3075 2231:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_MODE ( AT91C_US_USMODE_NORMAL + \
3076 2232:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \
3077 2233:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \
3078 2234:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \
3079 2235:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK )
3080 2236:./include/lib_AT91SAM7.h ****
3081 2237:./include/lib_AT91SAM7.h **** //* Standard External Asynchronous Mode : 8 bits , 1 stop , no parity
3082 2238:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_SCK_MODE ( AT91C_US_USMODE_NORMAL + \
3083 2239:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \
3084 2240:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \
3085 2241:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \
3086 2242:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_EXT )
3087 2243:./include/lib_AT91SAM7.h ****
3088 2244:./include/lib_AT91SAM7.h **** //* Standard Synchronous Mode : 8 bits , 1 stop , no parity
3089 2245:./include/lib_AT91SAM7.h **** #define AT91C_US_SYNC_MODE ( AT91C_US_SYNC + \
3090 2246:./include/lib_AT91SAM7.h **** AT91C_US_USMODE_NORMAL + \
3091 2247:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \
3092 2248:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \
3093 2249:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \
3094 2250:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK )
3095 2251:./include/lib_AT91SAM7.h ****
3096 2252:./include/lib_AT91SAM7.h **** //* SCK used Label
3097 2253:./include/lib_AT91SAM7.h **** #define AT91C_US_SCK_USED (AT91C_US_CKLO | AT91C_US_CLKS_EXT)
3098 2254:./include/lib_AT91SAM7.h ****
3099 2255:./include/lib_AT91SAM7.h **** //* Standard ISO T=0 Mode : 8 bits , 1 stop , parity
3100 2256:./include/lib_AT91SAM7.h **** #define AT91C_US_ISO_READER_MODE ( AT91C_US_USMODE_ISO7816_0 + \
3101 2257:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK +\
3102 2258:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \
3103 2259:./include/lib_AT91SAM7.h **** AT91C_US_PAR_EVEN + \
3104 2260:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \
3105 2261:./include/lib_AT91SAM7.h **** AT91C_US_CKLO +\
3106 2262:./include/lib_AT91SAM7.h **** AT91C_US_OVER)
3107 2263:./include/lib_AT91SAM7.h ****
3108 2264:./include/lib_AT91SAM7.h **** //* Standard IRDA mode
3109 2265:./include/lib_AT91SAM7.h **** #define AT91C_US_ASYNC_IRDA_MODE ( AT91C_US_USMODE_IRDA + \
3110 2266:./include/lib_AT91SAM7.h **** AT91C_US_NBSTOP_1_BIT + \
3111 2267:./include/lib_AT91SAM7.h **** AT91C_US_PAR_NONE + \
3112 2268:./include/lib_AT91SAM7.h **** AT91C_US_CHRL_8_BITS + \
3113 2269:./include/lib_AT91SAM7.h **** AT91C_US_CLKS_CLOCK )
3114 2270:./include/lib_AT91SAM7.h ****
3115 2271:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3116 2272:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_Baudrate
3117 2273:./include/lib_AT91SAM7.h **** //* \brief Caluculate baud_value according to the main clock and the baud rate
3118 2274:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3119 2275:./include/lib_AT91SAM7.h **** static inline unsigned int AT91F_US_Baudrate (
3120 2276:./include/lib_AT91SAM7.h **** const unsigned int main_clock, // \arg peripheral clock
3121 2277:./include/lib_AT91SAM7.h **** const unsigned int baud_rate) // \arg UART baudrate
3122 2278:./include/lib_AT91SAM7.h **** {
3123 2279:./include/lib_AT91SAM7.h **** unsigned int baud_value = ((main_clock*10)/(baud_rate * 16));
3125 506 0278 010181E0 add r0, r1, r1, asl #2
3132 513 027c 0010E0E3 mvn r1, #0
3134 515 0280 0C1084E5 str r1, [r4, #12]
3140 521 0284 8000A0E1 mov r0, r0, asl #1
3141 522 0288 0312A0E1 mov r1, r3, asl #4
3147 528 028c 00C084E5 str ip, [r4, #0]
3149 530 0290 0250A0E1 mov r5, r2
3155 536 0294 FEFFFFEB bl __udivsi3
3157 2280:./include/lib_AT91SAM7.h **** if ((baud_value % 10) >= 5)
3159 539 0298 34309FE5 ldr r3, .L49
3161 541 029c 931082E0 umull r1, r2, r3, r0
3162 542 02a0 A221A0E1 mov r2, r2, lsr #3
3163 543 02a4 023182E0 add r3, r2, r2, asl #2
3164 544 02a8 830040E0 sub r0, r0, r3, asl #1
3166 546 02ac 040050E3 cmp r0, #4
3167 2281:./include/lib_AT91SAM7.h **** baud_value = (baud_value / 10) + 1;
3169 548 02b0 013082E2 add r3, r2, #1
3171 2282:./include/lib_AT91SAM7.h **** else
3172 2283:./include/lib_AT91SAM7.h **** baud_value /= 10;
3174 551 02b4 0230A091 movls r3, r2
3177 2284:./include/lib_AT91SAM7.h **** return baud_value;
3178 2285:./include/lib_AT91SAM7.h **** }
3179 2286:./include/lib_AT91SAM7.h ****
3180 2287:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3181 2288:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_SetBaudrate
3182 2289:./include/lib_AT91SAM7.h **** //* \brief Set the baudrate according to the CPU clock
3183 2290:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3184 2291:./include/lib_AT91SAM7.h **** static inline void AT91F_US_SetBaudrate (
3185 2292:./include/lib_AT91SAM7.h **** AT91PS_USART pUSART, // \arg pointer to a USART controller
3186 2293:./include/lib_AT91SAM7.h **** unsigned int mainClock, // \arg peripheral clock
3187 2294:./include/lib_AT91SAM7.h **** unsigned int speed) // \arg UART baudrate
3188 2295:./include/lib_AT91SAM7.h **** {
3189 2296:./include/lib_AT91SAM7.h **** //* Define the baud rate divisor register
3190 2297:./include/lib_AT91SAM7.h **** pUSART->US_BRGR = AT91F_US_Baudrate(mainClock, speed);
3192 555 02b8 203084E5 str r3, [r4, #32]
3197 2298:./include/lib_AT91SAM7.h **** }
3198 2299:./include/lib_AT91SAM7.h ****
3199 2300:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3200 2301:./include/lib_AT91SAM7.h **** //* \fn AT91F_US_SetTimeguard
3201 2302:./include/lib_AT91SAM7.h **** //* \brief Set USART timeguard
3202 2303:./include/lib_AT91SAM7.h **** //*----------------------------------------------------------------------------
3203 2304:./include/lib_AT91SAM7.h **** static inline void AT91F_US_SetTimeguard (
3204 2305:./include/lib_AT91SAM7.h **** AT91PS_USART pUSART, // \arg pointer to a USART controller
3205 2306:./include/lib_AT91SAM7.h **** unsigned int timeguard) // \arg timeguard value
3206 2307:./include/lib_AT91SAM7.h **** {
3207 2308:./include/lib_AT91SAM7.h **** //* Write the Timeguard Register
3208 2309:./include/lib_AT91SAM7.h **** pUSART->US_TTGR = timeguard ;
3210 561 02bc 0C309DE5 ldr r3, [sp, #12]
3214 365:lib/lib_AT91SAM7.c ****
3215 366:lib/lib_AT91SAM7.c **** //* Define the baud rate divisor register
3216 367:lib/lib_AT91SAM7.c **** AT91F_US_SetBaudrate(pUSART, mainClock, baudRate);
3217 368:lib/lib_AT91SAM7.c ****
3218 369:lib/lib_AT91SAM7.c **** //* Write the Timeguard Register
3219 370:lib/lib_AT91SAM7.c **** AT91F_US_SetTimeguard(pUSART, timeguard);
3220 371:lib/lib_AT91SAM7.c ****
3221 372:lib/lib_AT91SAM7.c **** //* Clear Transmit and Receive Counters
3222 373:lib/lib_AT91SAM7.c **** AT91F_PDC_Open((AT91PS_PDC) &(pUSART->US_RPR));
3224 566 02c0 010C84E2 add r0, r4, #256
3228 570 02c4 283084E5 str r3, [r4, #40]
3232 574 02c8 FEFFFFEB bl AT91F_PDC_Open
3233 374:lib/lib_AT91SAM7.c ****
3234 375:lib/lib_AT91SAM7.c **** //* Define the USART mode
3235 376:lib/lib_AT91SAM7.c **** pUSART->US_MR = mode ;
3237 576 02cc 045084E5 str r5, [r4, #4]
3238 377:lib/lib_AT91SAM7.c ****
3239 378:lib/lib_AT91SAM7.c **** }
3241 578 02d0 3080BDE8 ldmfd sp!, {r4, r5, pc}
3245 582 02d4 CDCCCCCC .word -858993459
3248 586 .global AT91F_SSC_Configure
3249 588 AT91F_SSC_Configure:
3252 591 @ args = 12, pretend = 0, frame = 0
3253 592 @ frame_needed = 0, uses_anonymous_args = 0
3256 595 02d8 82CCA0E3 mov ip, #33280
3258 597 02dc F0412DE9 stmfd sp!, {r4, r5, r6, r7, r8, lr}
3261 600 02e0 02C08CE2 add ip, ip, #2
3263 602 02e4 00E0E0E3 mvn lr, #0
3265 604 02e8 18809DE5 ldr r8, [sp, #24]
3266 605 02ec 1C608DE2 add r6, sp, #28
3267 606 02f0 C00096E8 ldmia r6, {r6, r7} @ phole ldm
3269 608 02f4 48E080E5 str lr, [r0, #72]
3271 610 02f8 00C080E5 str ip, [r0, #0]
3273 612 02fc 0040A0E1 mov r4, r0
3274 613 0300 0350A0E1 mov r5, r3
3276 615 0304 FEFFFFEB bl AT91F_SSC_SetBaudrate
3279 618 0308 010C84E2 add r0, r4, #256
3281 620 030c 105084E5 str r5, [r4, #16]
3283 622 0310 186084E5 str r6, [r4, #24]
3285 624 0314 148084E5 str r8, [r4, #20]
3287 626 0318 1C7084E5 str r7, [r4, #28]
3289 628 031c F041BDE8 ldmfd sp!, {r4, r5, r6, r7, r8, lr}
3291 630 0320 FEFFFFEA b AT91F_PDC_Open
3294 634 .global AT91F_PDC_ReceiveFrame
3295 636 AT91F_PDC_ReceiveFrame:
3298 639 @ args = 4, pretend = 0, frame = 0
3299 640 @ frame_needed = 0, uses_anonymous_args = 0
3300 641 @ link register save eliminated.
3302 643 0324 00C0A0E1 mov ip, r0
3306 647 0328 040090E5 ldr r0, [r0, #4]
3311 652 032c 000050E3 cmp r0, #0
3313 654 @ lr needed for prologue
3317 658 0330 0200A0E3 mov r0, #2
3321 662 0334 D200001A bne .L54
3325 666 0338 00108CE5 str r1, [ip, #0]
3327 668 033c 04208CE5 str r2, [ip, #4]
3333 674 0340 10308CE5 str r3, [ip, #16]
3335 676 0344 00309DE5 ldr r3, [sp, #0]
3337 678 0348 14308CE5 str r3, [ip, #20]
3338 679 034c 1EFF2FE1 bx lr
3346 687 0350 14309CE5 ldr r3, [ip, #20]
3351 692 0354 000053E3 cmp r3, #0
3352 693 0358 0000A0E3 mov r0, #0
3356 697 035c 0100A003 moveq r0, #1
3358 699 0360 10108C05 streq r1, [ip, #16]
3360 701 0364 14208C05 streq r2, [ip, #20]
3364 705 0368 1EFF2FE1 bx lr
3367 709 .global AT91F_PDC_Close
3368 711 AT91F_PDC_Close:
3371 714 @ args = 0, pretend = 0, frame = 0
3372 715 @ frame_needed = 0, uses_anonymous_args = 0
3373 716 @ link register save eliminated.
3378 721 036c 0030A0E3 mov r3, #0
3384 727 0370 0220A0E3 mov r2, #2
3390 733 0374 021CA0E3 mov r1, #512
3396 739 0378 202080E5 str r2, [r0, #32]
3400 743 @ lr needed for prologue
3404 747 037c 201080E5 str r1, [r0, #32]
3410 753 0380 183080E5 str r3, [r0, #24]
3412 755 0384 1C3080E5 str r3, [r0, #28]
3418 761 0388 103080E5 str r3, [r0, #16]
3420 763 038c 143080E5 str r3, [r0, #20]
3426 769 0390 083080E5 str r3, [r0, #8]
3428 771 0394 0C3080E5 str r3, [r0, #12]
3434 777 0398 003080E5 str r3, [r0, #0]
3436 779 039c 043080E5 str r3, [r0, #4]
3440 783 03a0 1EFF2FE1 bx lr
3443 787 .global AT91F_US_Close
3446 379:lib/lib_AT91SAM7.c ****
3447 380:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
3448 381:lib/lib_AT91SAM7.c **** //* \fn AT91F_US_Close
3449 382:lib/lib_AT91SAM7.c **** //* \brief Close USART: disable IT disable receiver and transmitter, close PDC
3450 383:lib/lib_AT91SAM7.c **** //*----------------------------------------------------------------------------
3451 384:lib/lib_AT91SAM7.c **** void AT91F_US_Close(AT91PS_USART pUSART) // \arg pointer to a USART controller
3452 385:lib/lib_AT91SAM7.c **** {
3454 792 @ args = 0, pretend = 0, frame = 0
3455 793 @ frame_needed = 0, uses_anonymous_args = 0
3457 386:lib/lib_AT91SAM7.c **** //* Reset the baud rate divisor register
3458 387:lib/lib_AT91SAM7.c **** pUSART->US_BRGR = 0 ;
3460 796 03a4 0030A0E3 mov r3, #0
3461 388:lib/lib_AT91SAM7.c ****
3462 389:lib/lib_AT91SAM7.c **** //* Reset the USART mode
3463 390:lib/lib_AT91SAM7.c **** pUSART->US_MR = 0 ;
3464 391:lib/lib_AT91SAM7.c ****
3465 392:lib/lib_AT91SAM7.c **** //* Reset the Timeguard Register
3466 393:lib/lib_AT91SAM7.c **** pUSART->US_TTGR = 0;
3467 394:lib/lib_AT91SAM7.c ****
3468 395:lib/lib_AT91SAM7.c **** //* Disable all interrupts
3469 396:lib/lib_AT91SAM7.c **** pUSART->US_IDR = 0xFFFFFFFF ;
3471 798 03a8 0020E0E3 mvn r2, #0
3473 800 03ac 203080E5 str r3, [r0, #32]
3475 802 03b0 10402DE9 stmfd sp!, {r4, lr}
3478 805 03b4 043080E5 str r3, [r0, #4]
3480 807 03b8 0040A0E1 mov r4, r0
3482 809 03bc 283080E5 str r3, [r0, #40]
3484 811 03c0 0C2080E5 str r2, [r0, #12]
3485 397:lib/lib_AT91SAM7.c ****
3486 398:lib/lib_AT91SAM7.c **** //* Abort the Peripheral Data Transfers
3487 399:lib/lib_AT91SAM7.c **** AT91F_PDC_Close((AT91PS_PDC) &(pUSART->US_RPR));
3489 813 03c4 010C80E2 add r0, r0, #256
3491 815 03c8 FEFFFFEB bl AT91F_PDC_Close
3492 400:lib/lib_AT91SAM7.c ****
3493 401:lib/lib_AT91SAM7.c **** //* Disable receiver and transmitter and stop any activity immediately
3494 402:lib/lib_AT91SAM7.c **** pUSART->US_CR = AT91C_US_TXDIS | AT91C_US_RXDIS | AT91C_US_RSTTX | AT91C_US_RSTRX ;
3496 817 03cc AC30A0E3 mov r3, #172
3497 818 03d0 003084E5 str r3, [r4, #0]
3498 403:lib/lib_AT91SAM7.c **** }
3500 820 03d4 1080BDE8 ldmfd sp!, {r4, pc}
3503 824 .global AT91F_SPI_Close
3504 826 AT91F_SPI_Close:
3507 829 @ args = 0, pretend = 0, frame = 0
3508 830 @ frame_needed = 0, uses_anonymous_args = 0
3511 833 03d8 0030A0E3 mov r3, #0
3513 835 03dc 0020E0E3 mvn r2, #0
3515 837 03e0 303080E5 str r3, [r0, #48]
3517 839 03e4 10402DE9 stmfd sp!, {r4, lr}
3520 842 03e8 343080E5 str r3, [r0, #52]
3522 844 03ec 0040A0E1 mov r4, r0
3524 846 03f0 383080E5 str r3, [r0, #56]
3526 848 03f4 3C3080E5 str r3, [r0, #60]
3528 850 03f8 043080E5 str r3, [r0, #4]
3530 852 03fc 182080E5 str r2, [r0, #24]
3532 854 0400 010C80E2 add r0, r0, #256
3534 856 0404 FEFFFFEB bl AT91F_PDC_Close
3536 858 0408 0230A0E3 mov r3, #2
3537 859 040c 003084E5 str r3, [r4, #0]
3539 861 0410 1080BDE8 ldmfd sp!, {r4, pc}
3542 865 .global AT91F_PMC_GetMasterClock
3543 867 AT91F_PMC_GetMasterClock:
3546 870 @ args = 0, pretend = 0, frame = 0
3547 871 @ frame_needed = 0, uses_anonymous_args = 0
3550 874 0414 303090E5 ldr r3, [r0, #48]
3553 877 0418 03C003E2 and ip, r3, #3
3555 879 041c 1C3003E2 and r3, r3, #28
3557 881 0420 2331A0E1 mov r3, r3, lsr #2
3558 882 0424 0100A0E3 mov r0, #1
3561 885 0428 30402DE9 stmfd sp!, {r4, r5, lr}
3564 888 042c 1053A0E1 mov r5, r0, asl r3
3567 891 0430 01005CE3 cmp ip, #1
3569 893 0434 0130A0E1 mov r3, r1
3571 895 0438 0510A0E1 mov r1, r5
3574 898 043c 2601000A beq .L69
3577 901 0440 0200A0E1 mov r0, r2
3579 903 0444 1201002A bcs .L74
3582 906 0448 FEFFFFEB bl __udivsi3
3584 908 044c 3080BDE8 ldmfd sp!, {r4, r5, pc}
3588 912 0450 03005CE3 cmp ip, #3
3589 913 0454 0000A0E3 mov r0, #0
3591 915 0458 3080BD18 ldmnefd sp!, {r4, r5, pc}
3593 917 045c 0C1093E5 ldr r1, [r3, #12]
3598 922 0460 043093E5 ldr r3, [r3, #4]
3603 927 0464 0338A0E1 mov r3, r3, asl #16
3604 928 0468 2338A0E1 mov r3, r3, lsr #16
3605 929 046c 930200E0 mul r0, r3, r2
3606 930 0470 3E43C1E3 bic r4, r1, #-134217728
3607 931 0474 2002A0E1 mov r0, r0, lsr #4
3608 932 0478 FF1001E2 and r1, r1, #255
3610 934 047c FEFFFFEB bl __udivsi3
3612 936 0480 2448A0E1 mov r4, r4, lsr #16
3613 937 0484 0448A0E1 mov r4, r4, asl #16
3614 938 0488 2448A0E1 mov r4, r4, lsr #16
3615 939 048c 014084E2 add r4, r4, #1
3616 940 0490 940000E0 mul r0, r4, r0
3617 941 0494 0510A0E1 mov r1, r5
3618 942 0498 FEFFFFEB bl __udivsi3
3620 944 049c 3080BDE8 ldmfd sp!, {r4, r5, pc}
3626 950 04a0 043093E5 ldr r3, [r3, #4]
3631 955 04a4 0338A0E1 mov r3, r3, asl #16
3632 956 04a8 2338A0E1 mov r3, r3, lsr #16
3633 957 04ac 930200E0 mul r0, r3, r2
3634 958 04b0 2002A0E1 mov r0, r0, lsr #4
3635 959 04b4 FEFFFFEB bl __udivsi3
3637 961 04b8 3080BDE8 ldmfd sp!, {r4, r5, pc}
3641 *ABS*:00000000 lib_AT91SAM7.c
3642 /tmp/ccdTAyiH.s:13 .text:00000000 AT91F_AIC_ConfigureIt
3643 /tmp/ccdTAyiH.s:21 .text:00000000 $a
3644 /tmp/ccdTAyiH.s:54 .text:00000034 AT91F_AIC_SetExceptionVector
3645 /tmp/ccdTAyiH.s:92 .text:0000006c AT91F_AIC_Open
3646 /tmp/ccdTAyiH.s:168 .text:000000ec AT91F_RTTReadValue
3647 /tmp/ccdTAyiH.s:204 .text:0000011c AT91F_ADC_CfgTimings
3648 /tmp/ccdTAyiH.s:249 .text:00000188 $d
3649 /tmp/ccdTAyiH.s:255 .text:0000018c AT91F_SSC_SetBaudrate
3650 /tmp/ccdTAyiH.s:262 .text:0000018c $a
3651 /tmp/ccdTAyiH.s:306 .text:000001d8 $d
3652 /tmp/ccdTAyiH.s:312 .text:000001dc AT91F_PDC_SendFrame
3653 /tmp/ccdTAyiH.s:319 .text:000001dc $a
3654 /tmp/ccdTAyiH.s:387 .text:00000224 AT91F_PDC_Open
3655 /tmp/ccdTAyiH.s:489 .text:0000026c AT91F_US_Configure
3656 /tmp/ccdTAyiH.s:582 .text:000002d4 $d
3657 /tmp/ccdTAyiH.s:588 .text:000002d8 AT91F_SSC_Configure
3658 /tmp/ccdTAyiH.s:595 .text:000002d8 $a
3659 /tmp/ccdTAyiH.s:636 .text:00000324 AT91F_PDC_ReceiveFrame
3660 /tmp/ccdTAyiH.s:711 .text:0000036c AT91F_PDC_Close
3661 /tmp/ccdTAyiH.s:789 .text:000003a4 AT91F_US_Close
3662 /tmp/ccdTAyiH.s:826 .text:000003d8 AT91F_SPI_Close
3663 /tmp/ccdTAyiH.s:867 .text:00000414 AT91F_PMC_GetMasterClock