paths changed
[kk_librfid.git] / firmware / lib / lib_AT91SAM7.lst
blob07dac5406469489c75a228941188f570bb75ca9a
1    1                            .file   "lib_AT91SAM7.c"
2    9                    .Ltext0:
3   10                            .align  2
4   11                            .global AT91F_AIC_ConfigureIt
5   13                    AT91F_AIC_ConfigureIt:
6   14                    .LFB275:
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 **** {
42   16                            .loc 1 34 0
43   17                            @ args = 4, pretend = 0, frame = 0
44   18                            @ frame_needed = 0, uses_anonymous_args = 0
45   19                    .LVL0:
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 ;
52   20                            .loc 1 40 0
53   21 0000 01C0A0E3              mov     ip, #1
54   22 0004 1CC1A0E1              mov     ip, ip, asl r1
55   23                    .LVL1:
56   24                            .loc 1 34 0
57   25 0008 10402DE9              stmfd   sp!, {r4, lr}
58   26                    .LCFI0:
59   27                            .loc 1 38 0
60   28 000c 01E180E0              add     lr, r0, r1, asl #2
61   29 0010 80409EE5              ldr     r4, [lr, #128]
62   30                    .LVL2:
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  ;
69   31                            .loc 1 46 0
70   32 0014 023083E1              orr     r3, r3, r2
71   33                    .LVL3:
72   34                            .loc 1 44 0
73   35 0018 08209DE5              ldr     r2, [sp, #8]
74   36                    .LVL4:
75   37                            .loc 1 42 0
76   38 001c 24C180E5              str     ip, [r0, #292]
77   39                            .loc 1 44 0
78   40 0020 80208EE5              str     r2, [lr, #128]
79   41                            .loc 1 46 0
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 ;
83   43                            .loc 1 48 0
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 **** }
88   45                            .loc 1 51 0
89   46 002c 0400A0E1              mov     r0, r4
90   47                    .LVL5:
91   48 0030 1080BDE8              ldmfd   sp!, {r4, pc}
92   49                    .LFE275:
93   51                            .align  2
94   52                            .global AT91F_AIC_SetExceptionVector
95   54                    AT91F_AIC_SetExceptionVector:
96   55                    .LFB276:
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 **** {
106   56                            .loc 1 60 0
107   57                            @ args = 0, pretend = 0, frame = 0
108   58                            @ frame_needed = 0, uses_anonymous_args = 0
109   59                            @ link register save eliminated.
110   60                    .LVL6:
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)
114   61                            .loc 1 63 0
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
122   66                            .loc 1 66 0
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
126   70                            .loc 1 61 0
127   71 0050 002090E5              ldr     r2, [r0, #0]
128   72                    .LVL7:
129   73                            .loc 1 66 0
130   74 0054 FF34C3E3              bic     r3, r3, #-16777216
131   75 0058 EA3483E3              orr     r3, r3, #-369098752
132   76                            .loc 1 64 0
133   77 005c 00108005              streq   r1, [r0, #0]
134   78                            .loc 1 66 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 **** }
139   80                            .loc 1 69 0
140   81 0064 0200A0E1              mov     r0, r2
141   82                    .LVL8:
142   83                            .loc 1 60 0
143   84                            @ lr needed for prologue
144   85                            .loc 1 69 0
145   86 0068 1EFF2FE1              bx      lr
146   87                    .LFE276:
147   89                            .align  2
148   90                            .global AT91F_AIC_Open
149   92                    AT91F_AIC_Open:
150   93                    .LFB277:
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 **** {
164   94                            .loc 1 82 0
165   95                            @ args = 8, pretend = 0, frame = 0
166   96                            @ frame_needed = 0, uses_anonymous_args = 0
167   97                    .LVL9:
168   98 006c F0452DE9              stmfd   sp!, {r4, r5, r6, r7, r8, sl, lr}
169   99                    .LCFI1:
170  100 0070 0050A0E1              mov     r5, r0
171  101 0074 04D04DE2              sub     sp, sp, #4
172  102                    .LCFI2:
173  103                            .loc 1 82 0
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
178  108                    .LVL10:
179  109 0088 0170A0E3              mov     r7, #1
180  110                    .LVL11:
181  111                    .L9:
182  112                    .LBB6:
183  113                    .LBB7:
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;
266  115                            .loc 2 81 0
267  116 008c 1734A0E1              mov     r3, r7, asl r4
268  117                    .LVL12:
269  118                    .LBE7:
270  119                    .LBE6:
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
277  120                            .loc 1 88 0
278  121 0090 0410A0E1              mov     r1, r4
279  122                    .LBB8:
280  123                    .LBB9:
281   82:./include/lib_AT91SAM7.h ****     //* Disable the interrupt on the interrupt controller
282   83:./include/lib_AT91SAM7.h ****     pAic->AIC_IDCR = mask ;
283  124                            .loc 2 83 0
284  125 0094 243185E5              str     r3, [r5, #292]
285  126                    .LBE9:
286  127                    .LBE8:
287  128                            .loc 1 86 0
288  129 0098 014084E2              add     r4, r4, #1
289  130                    .LBB10:
290  131                    .LBB11:
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 ;
293  132                            .loc 2 85 0
294  133 009c 283185E5              str     r3, [r5, #296]
295  134                    .LBE11:
296  135                    .LBE10:
297  136                            .loc 1 88 0
298  137 00a0 0500A0E1              mov     r0, r5
299  138 00a4 0020A0E3              mov     r2, #0
300  139 00a8 4030A0E3              mov     r3, #64
301  140                    .LVL13:
302  141 00ac 00608DE5              str     r6, [sp, #0]
303  142 00b0 FEFFFFEB              bl      AT91F_AIC_ConfigureIt
304  143                            .loc 1 86 0
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);
311  146                            .loc 1 92 0
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);
317  150                            .loc 1 94 0
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;
323  154                            .loc 1 96 0
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;
327  157                            .loc 1 97 0
328  158 00dc 24209DE5              ldr     r2, [sp, #36]
329  159 00e0 382185E5              str     r2, [r5, #312]
330   98:lib/lib_AT91SAM7.c **** }
331  160                            .loc 1 98 0
332  161 00e4 04D08DE2              add     sp, sp, #4
333  162 00e8 F085BDE8              ldmfd   sp!, {r4, r5, r6, r7, r8, sl, pc}
334  163                    .LFE277:
335  165                            .align  2
336  166                            .global AT91F_RTTReadValue
337  168                    AT91F_RTTReadValue:
338  169                    .LFB283:
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 **** {
468  170                            .loc 1 227 0
469  171                            @ args = 0, pretend = 0, frame = 8
470  172                            @ frame_needed = 0, uses_anonymous_args = 0
471  173                            @ link register save eliminated.
472  174                    .LVL14:
473  175 00ec 08D04DE2              sub     sp, sp, #8
474  176                    .LCFI3:
475  177                            @ lr needed for prologue
476  178                    .L17:
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;
481  179                            .loc 1 231 0
482  180 00f0 083090E5              ldr     r3, [r0, #8]
483  181 00f4 04308DE5              str     r3, [sp, #4]
484  182                    .LVL15:
485  232:lib/lib_AT91SAM7.c ****            val2 = pRTTC->RTTC_RTVR;
486  183                            .loc 1 232 0
487  184 00f8 082090E5              ldr     r2, [r0, #8]
488  185 00fc 00208DE5              str     r2, [sp, #0]
489  186                    .LVL16:
490  233:lib/lib_AT91SAM7.c ****    }       
491  234:lib/lib_AT91SAM7.c ****    while(val1 != val2);
492  187                            .loc 1 234 0
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);
498  192                            .loc 1 235 0
499  193 0110 04009DE5              ldr     r0, [sp, #4]
500  194                    .LVL17:
501  236:lib/lib_AT91SAM7.c **** }
502  195                            .loc 1 236 0
503  196 0114 08D08DE2              add     sp, sp, #8
504  197 0118 1EFF2FE1              bx      lr
505  198                    .LFE283:
506  200                            .global __udivsi3
507  201                            .align  2
508  202                            .global AT91F_ADC_CfgTimings
509  204                    AT91F_ADC_CfgTimings:
510  205                    .LFB285:
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 **** {
548  206                            .loc 1 273 0
549  207                            @ args = 4, pretend = 0, frame = 0
550  208                            @ frame_needed = 0, uses_anonymous_args = 0
551  209                    .LVL18:
552  210 011c 70402DE9              stmfd   sp!, {r4, r5, r6, lr}
553  211                    .LCFI4:
554  212                            .loc 1 273 0
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
564  214                            .loc 1 281 0
565  215 0124 0100A0E1              mov     r0, r1
566  216                    .LVL19:
567  217 0128 8210A0E1              mov     r1, r2, asl #1
568  218                    .LVL20:
569  219                            .loc 1 273 0
570  220 012c 0240A0E1              mov     r4, r2
571  221 0130 0350A0E1              mov     r5, r3
572  222                            .loc 1 281 0
573  223 0134 FEFFFFEB              bl      __udivsi3
574  224                    .LVL21:
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 **** }
595  244                            .loc 1 282 0
596  245 0184 7080BDE8              ldmfd   sp!, {r4, r5, r6, pc}
597  246                    .L25:
598  247                            .align  2
599  248                    .L24:
600  249 0188 D34D6210              .word   274877907
601  250                    .LFE285:
602  252                            .align  2
603  253                            .global AT91F_SSC_SetBaudrate
604  255                    AT91F_SSC_SetBaudrate:
605  256                    .LFB286:
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 **** {
616  257                            .loc 1 292 0
617  258                            @ args = 0, pretend = 0, frame = 0
618  259                            @ frame_needed = 0, uses_anonymous_args = 0
619  260                    .LVL22:
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)
623  261                            .loc 1 295 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);
629  263                            .loc 1 299 0
630  264 0190 011181E0              add     r1, r1, r1, asl #2
631  265                    .LVL23:
632  266                            .loc 1 292 0
633  267 0194 10402DE9              stmfd   sp!, {r4, lr}
634  268                    .LCFI5:
635  269                            .loc 1 295 0
636  270 0198 0230A0E1              mov     r3, r2
637  271                    .LVL24:
638  272                            .loc 1 292 0
639  273 019c 0040A0E1              mov     r4, r0
640  274                            .loc 1 299 0
641  275 01a0 8100A0E1              mov     r0, r1, asl #1
642  276                    .LVL25:
643  277 01a4 8210A0E1              mov     r1, r2, asl #1
644  278                            .loc 1 295 0
645  279 01a8 7200000A              beq     .L29
646  280                            .loc 1 299 0
647  281 01ac FEFFFFEB              bl      __udivsi3
648  282                    .LVL26:
649  300:lib/lib_AT91SAM7.c ****            if ((baud_value % 10) >= 5)
650  283                            .loc 1 300 0
651  284 01b0 20309FE5              ldr     r3, .L33
652  285                    .LVL27:
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
657  290                    .LVL28:
658  291 01c4 040050E3              cmp     r0, #4
659  301:lib/lib_AT91SAM7.c ****                   baud_value = (baud_value / 10) + 1;
660  292                            .loc 1 301 0
661  293 01c8 013082E2              add     r3, r2, #1
662  294                    .LVL29:
663  302:lib/lib_AT91SAM7.c ****            else
664  303:lib/lib_AT91SAM7.c ****                   baud_value /= 10;
665  295                            .loc 1 303 0
666  296 01cc 0230A091              movls   r3, r2
667  297                    .LVL30:
668  298                    .L29:
669  304:lib/lib_AT91SAM7.c ****         }
670  305:lib/lib_AT91SAM7.c **** 
671  306:lib/lib_AT91SAM7.c ****         pSSC->SSC_CMR = baud_value;
672  299                            .loc 1 306 0
673  300 01d0 043084E5              str     r3, [r4, #4]
674  307:lib/lib_AT91SAM7.c **** }
675  301                            .loc 1 307 0
676  302 01d4 1080BDE8              ldmfd   sp!, {r4, pc}
677  303                    .L34:
678  304                            .align  2
679  305                    .L33:
680  306 01d8 CDCCCCCC              .word   -858993459
681  307                    .LFE286:
682  309                            .align  2
683  310                            .global AT91F_PDC_SendFrame
684  312                    AT91F_PDC_SendFrame:
685  313                    .LFB280:
686  314                            .loc 1 149 0
687  315                            @ args = 4, pretend = 0, frame = 0
688  316                            @ frame_needed = 0, uses_anonymous_args = 0
689  317                            @ link register save eliminated.
690  318                    .LVL31:
691  319 01dc 00C0A0E1              mov     ip, r0
692  320                    .LBB22:
693  321                    .LBB23:
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);
874  322                            .loc 2 265 0
875  323 01e0 0C0090E5              ldr     r0, [r0, #12]
876  324                    .LVL32:
877  325                    .LBE23:
878  326                    .LBE22:
879  327                            .loc 1 150 0
880  328 01e4 000050E3              cmp     r0, #0
881  329                            .loc 1 149 0
882  330                            @ lr needed for prologue
883  331                    .LBB24:
884  332                    .LBB25:
885  333                            .loc 2 189 0
886  334 01e8 0200A0E3              mov     r0, #2
887  335                    .LBE25:
888  336                    .LBE24:
889  337                            .loc 1 150 0
890  338 01ec 8000001A              bne     .L36
891  339                    .LBB26:
892  340                    .LBB27:
893  341                            .loc 2 214 0
894  342 01f0 08108CE5              str     r1, [ip, #8]
895  343                            .loc 2 215 0
896  344 01f4 0C208CE5              str     r2, [ip, #12]
897  345                    .LBE27:
898  346                    .LBE26:
899  347                    .LBB28:
900  348                    .LBB29:
901  349                            .loc 2 188 0
902  350 01f8 18308CE5              str     r3, [ip, #24]
903  351                            .loc 2 189 0
904  352 01fc 00309DE5              ldr     r3, [sp, #0]
905  353                    .LVL33:
906  354 0200 1C308CE5              str     r3, [ip, #28]
907  355 0204 1EFF2FE1              bx      lr
908  356                    .LVL34:
909  357                    .L36:
910  358                    .LBE29:
911  359                    .LBE28:
912  360                    .LBB30:
913  361                    .LBB31:
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);
924  362                            .loc 2 275 0
925  363 0208 1C309CE5              ldr     r3, [ip, #28]
926  364                    .LVL35:
927  365                    .LBE31:
928  366                    .LBE30:
929  367                            .loc 1 156 0
930  368 020c 000053E3              cmp     r3, #0
931  369 0210 0000A0E3              mov     r0, #0
932  370                    .LBB32:
933  371                    .LBB33:
934  372                            .loc 2 189 0
935  373 0214 0100A003              moveq   r0, #1
936  374                            .loc 2 188 0
937  375 0218 18108C05              streq   r1, [ip, #24]
938  376                            .loc 2 189 0
939  377 021c 1C208C05              streq   r2, [ip, #28]
940  378                    .LBE33:
941  379                    .LBE32:
942  380                            .loc 1 165 0
943  381 0220 1EFF2FE1              bx      lr
944  382                    .LFE280:
945  384                            .align  2
946  385                            .global AT91F_PDC_Open
947  387                    AT91F_PDC_Open:
948  388                    .LFB278:
949  389                            .loc 1 105 0
950  390                            @ args = 0, pretend = 0, frame = 0
951  391                            @ frame_needed = 0, uses_anonymous_args = 0
952  392                            @ link register save eliminated.
953  393                    .LVL36:
954  394                    .LBB50:
955  395                    .LBB51:
956  396                            .loc 2 188 0
957  397 0224 0030A0E3              mov     r3, #0
958  398                    .LBE51:
959  399                    .LBE50:
960  400                    .LBB52:
961  401                    .LBB53:
962  402                            .loc 2 255 0
963  403 0228 0220A0E3              mov     r2, #2
964  404                    .LBE53:
965  405                    .LBE52:
966  406                    .LBB54:
967  407                    .LBB55:
968  408                            .loc 2 245 0
969  409 022c 021CA0E3              mov     r1, #512
970  410                    .LBE55:
971  411                    .LBE54:
972  412                    .LBB56:
973  413                    .LBB57:
974  414                            .loc 2 255 0
975  415 0230 202080E5              str     r2, [r0, #32]
976  416                    .LBE57:
977  417                    .LBE56:
978  418                    .LBB58:
979  419                    .LBB59:
980  420                            .loc 2 245 0
981  421 0234 201080E5              str     r1, [r0, #32]
982  422                    .LBE59:
983  423                    .LBE58:
984  424                    .LBB60:
985  425                    .LBB61:
986  426                            .loc 2 235 0
987  427 0238 012042E2              sub     r2, r2, #1
988  428                    .LBE61:
989  429                    .LBE60:
990  430                    .LBB62:
991  431                    .LBB63:
992  432                            .loc 2 188 0
993  433 023c 183080E5              str     r3, [r0, #24]
994  434                            .loc 2 189 0
995  435 0240 1C3080E5              str     r3, [r0, #28]
996  436                    .LBE63:
997  437                    .LBE62:
998  438                    .LBB64:
999  439                    .LBB65:
1000  440                            .loc 2 175 0
1001  441 0244 103080E5              str     r3, [r0, #16]
1002  442                            .loc 2 176 0
1003  443 0248 143080E5              str     r3, [r0, #20]
1004  444                    .LBE65:
1005  445                    .LBE64:
1006  446                    .LBB66:
1007  447                    .LBB67:
1008  448                            .loc 2 214 0
1009  449 024c 083080E5              str     r3, [r0, #8]
1010  450                            .loc 2 215 0
1011  451 0250 0C3080E5              str     r3, [r0, #12]
1012  452                    .LBE67:
1013  453                    .LBE66:
1014  454                    .LBB68:
1015  455                    .LBB69:
1016  456                            .loc 2 201 0
1017  457 0254 003080E5              str     r3, [r0, #0]
1018  458                            .loc 2 202 0
1019  459 0258 043080E5              str     r3, [r0, #4]
1020  460                    .LBE69:
1021  461                    .LBE68:
1022  462                    .LBB70:
1023  463                    .LBB71:
1024  464                            .loc 2 225 0
1025  465 025c 013C83E2              add     r3, r3, #256
1026  466                    .LBE71:
1027  467                    .LBE70:
1028  468                    .LBB72:
1029  469                    .LBB73:
1030  470                            .loc 2 235 0
1031  471 0260 202080E5              str     r2, [r0, #32]
1032  472                    .LBE73:
1033  473                    .LBE72:
1034  474                            .loc 1 105 0
1035  475                            @ lr needed for prologue
1036  476                    .LBB74:
1037  477                    .LBB75:
1038  478                            .loc 2 225 0
1039  479 0264 203080E5              str     r3, [r0, #32]
1040  480                    .LBE75:
1041  481                    .LBE74:
1042  482                            .loc 1 119 0
1043  483 0268 1EFF2FE1              bx      lr
1044  484                    .LFE278:
1045  486                            .align  2
1046  487                            .global AT91F_US_Configure
1047  489                    AT91F_US_Configure:
1048  490                    .LFB288:
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 **** {
1101  491                            .loc 1 359 0
1102  492                            @ args = 4, pretend = 0, frame = 0
1103  493                            @ frame_needed = 0, uses_anonymous_args = 0
1104  494                    .LVL37:
1105  495 026c 30402DE9              stmfd   sp!, {r4, r5, lr}
1106  496                    .LCFI6:
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 ;
1112  497                            .loc 1 364 0
1113  498 0270 ACC0A0E3              mov     ip, #172
1114  499                            .loc 1 359 0
1115  500 0274 0040A0E1              mov     r4, r0
1116  501                    .LBB82:
1117  502                    .LBB83:
1118  503                    .LBB84:
1119  504                    .LBB85:
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));
3124  505                            .loc 2 2279 0
3125  506 0278 010181E0              add     r0, r1, r1, asl #2
3126  507                    .LVL38:
3127  508                    .LBE85:
3128  509                    .LBE84:
3129  510                    .LBE83:
3130  511                    .LBE82:
3131  512                            .loc 1 361 0
3132  513 027c 0010E0E3              mvn     r1, #0
3133  514                    .LVL39:
3134  515 0280 0C1084E5              str     r1, [r4, #12]
3135  516                    .LBB86:
3136  517                    .LBB87:
3137  518                    .LBB88:
3138  519                    .LBB89:
3139  520                            .loc 2 2279 0
3140  521 0284 8000A0E1              mov     r0, r0, asl #1
3141  522 0288 0312A0E1              mov     r1, r3, asl #4
3142  523                    .LBE89:
3143  524                    .LBE88:
3144  525                    .LBE87:
3145  526                    .LBE86:
3146  527                            .loc 1 364 0
3147  528 028c 00C084E5              str     ip, [r4, #0]
3148  529                            .loc 1 359 0
3149  530 0290 0250A0E1              mov     r5, r2
3150  531                    .LBB90:
3151  532                    .LBB91:
3152  533                    .LBB92:
3153  534                    .LBB93:
3154  535                            .loc 2 2279 0
3155  536 0294 FEFFFFEB              bl      __udivsi3
3156  537                    .LVL40:
3157 2280:./include/lib_AT91SAM7.h ****      if ((baud_value % 10) >= 5)
3158  538                            .loc 2 2280 0
3159  539 0298 34309FE5              ldr     r3, .L49
3160  540                    .LVL41:
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
3165  545                    .LVL42:
3166  546 02ac 040050E3              cmp     r0, #4
3167 2281:./include/lib_AT91SAM7.h ****              baud_value = (baud_value / 10) + 1;
3168  547                            .loc 2 2281 0
3169  548 02b0 013082E2              add     r3, r2, #1
3170  549                    .LVL43:
3171 2282:./include/lib_AT91SAM7.h ****      else
3172 2283:./include/lib_AT91SAM7.h ****              baud_value /= 10;
3173  550                            .loc 2 2283 0
3174  551 02b4 0230A091              movls   r3, r2
3175  552                    .LBE93:
3176  553                    .LBE92:
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);
3191  554                            .loc 2 2297 0
3192  555 02b8 203084E5              str     r3, [r4, #32]
3193  556                    .LBE91:
3194  557                    .LBE90:
3195  558                    .LBB94:
3196  559                    .LBB95:
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 ;
3209  560                            .loc 2 2309 0
3210  561 02bc 0C309DE5              ldr     r3, [sp, #12]
3211  562                    .LVL44:
3212  563                    .LBE95:
3213  564                    .LBE94:
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));
3223  565                            .loc 1 373 0
3224  566 02c0 010C84E2              add     r0, r4, #256
3225  567                    .LBB96:
3226  568                    .LBB97:
3227  569                            .loc 2 2309 0
3228  570 02c4 283084E5              str     r3, [r4, #40]
3229  571                    .LBE97:
3230  572                    .LBE96:
3231  573                            .loc 1 373 0
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  ;
3236  575                            .loc 1 376 0
3237  576 02cc 045084E5              str     r5, [r4, #4]
3238  377:lib/lib_AT91SAM7.c **** 
3239  378:lib/lib_AT91SAM7.c **** }
3240  577                            .loc 1 378 0
3241  578 02d0 3080BDE8              ldmfd   sp!, {r4, r5, pc}
3242  579                    .L50:
3243  580                            .align  2
3244  581                    .L49:
3245  582 02d4 CDCCCCCC              .word   -858993459
3246  583                    .LFE288:
3247  585                            .align  2
3248  586                            .global AT91F_SSC_Configure
3249  588                    AT91F_SSC_Configure:
3250  589                    .LFB287:
3251  590                            .loc 1 321 0
3252  591                            @ args = 12, pretend = 0, frame = 0
3253  592                            @ frame_needed = 0, uses_anonymous_args = 0
3254  593                    .LVL45:
3255  594                            .loc 1 326 0
3256  595 02d8 82CCA0E3              mov     ip, #33280
3257  596                            .loc 1 321 0
3258  597 02dc F0412DE9              stmfd   sp!, {r4, r5, r6, r7, r8, lr}
3259  598                    .LCFI7:
3260  599                            .loc 1 326 0
3261  600 02e0 02C08CE2              add     ip, ip, #2
3262  601                            .loc 1 323 0
3263  602 02e4 00E0E0E3              mvn     lr, #0
3264  603                            .loc 1 321 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
3268  607                            .loc 1 323 0
3269  608 02f4 48E080E5              str     lr, [r0, #72]
3270  609                            .loc 1 326 0
3271  610 02f8 00C080E5              str     ip, [r0, #0]
3272  611                            .loc 1 321 0
3273  612 02fc 0040A0E1              mov     r4, r0
3274  613 0300 0350A0E1              mov     r5, r3
3275  614                            .loc 1 329 0
3276  615 0304 FEFFFFEB              bl      AT91F_SSC_SetBaudrate
3277  616                    .LVL46:
3278  617                            .loc 1 344 0
3279  618 0308 010C84E2              add     r0, r4, #256
3280  619                            .loc 1 332 0
3281  620 030c 105084E5              str     r5, [r4, #16]
3282  621                            .loc 1 335 0
3283  622 0310 186084E5              str     r6, [r4, #24]
3284  623                            .loc 1 338 0
3285  624 0314 148084E5              str     r8, [r4, #20]
3286  625                            .loc 1 341 0
3287  626 0318 1C7084E5              str     r7, [r4, #28]
3288  627                            .loc 1 347 0
3289  628 031c F041BDE8              ldmfd   sp!, {r4, r5, r6, r7, r8, lr}
3290  629                            .loc 1 344 0
3291  630 0320 FEFFFFEA              b       AT91F_PDC_Open
3292  631                    .LFE287:
3293  633                            .align  2
3294  634                            .global AT91F_PDC_ReceiveFrame
3295  636                    AT91F_PDC_ReceiveFrame:
3296  637                    .LFB281:
3297  638                            .loc 1 177 0
3298  639                            @ args = 4, pretend = 0, frame = 0
3299  640                            @ frame_needed = 0, uses_anonymous_args = 0
3300  641                            @ link register save eliminated.
3301  642                    .LVL47:
3302  643 0324 00C0A0E1              mov     ip, r0
3303  644                    .LBB108:
3304  645                    .LBB109:
3305  646                            .loc 2 285 0
3306  647 0328 040090E5              ldr     r0, [r0, #4]
3307  648                    .LVL48:
3308  649                    .LBE109:
3309  650                    .LBE108:
3310  651                            .loc 1 178 0
3311  652 032c 000050E3              cmp     r0, #0
3312  653                            .loc 1 177 0
3313  654                            @ lr needed for prologue
3314  655                    .LBB110:
3315  656                    .LBB111:
3316  657                            .loc 2 176 0
3317  658 0330 0200A0E3              mov     r0, #2
3318  659                    .LBE111:
3319  660                    .LBE110:
3320  661                            .loc 1 178 0
3321  662 0334 D200001A              bne     .L54
3322  663                    .LBB112:
3323  664                    .LBB113:
3324  665                            .loc 2 201 0
3325  666 0338 00108CE5              str     r1, [ip, #0]
3326  667                            .loc 2 202 0
3327  668 033c 04208CE5              str     r2, [ip, #4]
3328  669                    .LBE113:
3329  670                    .LBE112:
3330  671                    .LBB114:
3331  672                    .LBB115:
3332  673                            .loc 2 175 0
3333  674 0340 10308CE5              str     r3, [ip, #16]
3334  675                            .loc 2 176 0
3335  676 0344 00309DE5              ldr     r3, [sp, #0]
3336  677                    .LVL49:
3337  678 0348 14308CE5              str     r3, [ip, #20]
3338  679 034c 1EFF2FE1              bx      lr
3339  680                    .LVL50:
3340  681                    .L54:
3341  682                    .LBE115:
3342  683                    .LBE114:
3343  684                    .LBB116:
3344  685                    .LBB117:
3345  686                            .loc 2 295 0
3346  687 0350 14309CE5              ldr     r3, [ip, #20]
3347  688                    .LVL51:
3348  689                    .LBE117:
3349  690                    .LBE116:
3350  691                            .loc 1 184 0
3351  692 0354 000053E3              cmp     r3, #0
3352  693 0358 0000A0E3              mov     r0, #0
3353  694                    .LBB118:
3354  695                    .LBB119:
3355  696                            .loc 2 176 0
3356  697 035c 0100A003              moveq   r0, #1
3357  698                            .loc 2 175 0
3358  699 0360 10108C05              streq   r1, [ip, #16]
3359  700                            .loc 2 176 0
3360  701 0364 14208C05              streq   r2, [ip, #20]
3361  702                    .LBE119:
3362  703                    .LBE118:
3363  704                            .loc 1 193 0
3364  705 0368 1EFF2FE1              bx      lr
3365  706                    .LFE281:
3366  708                            .align  2
3367  709                            .global AT91F_PDC_Close
3368  711                    AT91F_PDC_Close:
3369  712                    .LFB279:
3370  713                            .loc 1 126 0
3371  714                            @ args = 0, pretend = 0, frame = 0
3372  715                            @ frame_needed = 0, uses_anonymous_args = 0
3373  716                            @ link register save eliminated.
3374  717                    .LVL52:
3375  718                    .LBB132:
3376  719                    .LBB133:
3377  720                            .loc 2 188 0
3378  721 036c 0030A0E3              mov     r3, #0
3379  722                    .LBE133:
3380  723                    .LBE132:
3381  724                    .LBB134:
3382  725                    .LBB135:
3383  726                            .loc 2 255 0
3384  727 0370 0220A0E3              mov     r2, #2
3385  728                    .LBE135:
3386  729                    .LBE134:
3387  730                    .LBB136:
3388  731                    .LBB137:
3389  732                            .loc 2 245 0
3390  733 0374 021CA0E3              mov     r1, #512
3391  734                    .LBE137:
3392  735                    .LBE136:
3393  736                    .LBB138:
3394  737                    .LBB139:
3395  738                            .loc 2 255 0
3396  739 0378 202080E5              str     r2, [r0, #32]
3397  740                    .LBE139:
3398  741                    .LBE138:
3399  742                            .loc 1 126 0
3400  743                            @ lr needed for prologue
3401  744                    .LBB140:
3402  745                    .LBB141:
3403  746                            .loc 2 245 0
3404  747 037c 201080E5              str     r1, [r0, #32]
3405  748                    .LBE141:
3406  749                    .LBE140:
3407  750                    .LBB142:
3408  751                    .LBB143:
3409  752                            .loc 2 188 0
3410  753 0380 183080E5              str     r3, [r0, #24]
3411  754                            .loc 2 189 0
3412  755 0384 1C3080E5              str     r3, [r0, #28]
3413  756                    .LBE143:
3414  757                    .LBE142:
3415  758                    .LBB144:
3416  759                    .LBB145:
3417  760                            .loc 2 175 0
3418  761 0388 103080E5              str     r3, [r0, #16]
3419  762                            .loc 2 176 0
3420  763 038c 143080E5              str     r3, [r0, #20]
3421  764                    .LBE145:
3422  765                    .LBE144:
3423  766                    .LBB146:
3424  767                    .LBB147:
3425  768                            .loc 2 214 0
3426  769 0390 083080E5              str     r3, [r0, #8]
3427  770                            .loc 2 215 0
3428  771 0394 0C3080E5              str     r3, [r0, #12]
3429  772                    .LBE147:
3430  773                    .LBE146:
3431  774                    .LBB148:
3432  775                    .LBB149:
3433  776                            .loc 2 201 0
3434  777 0398 003080E5              str     r3, [r0, #0]
3435  778                            .loc 2 202 0
3436  779 039c 043080E5              str     r3, [r0, #4]
3437  780                    .LBE149:
3438  781                    .LBE148:
3439  782                            .loc 1 137 0
3440  783 03a0 1EFF2FE1              bx      lr
3441  784                    .LFE279:
3442  786                            .align  2
3443  787                            .global AT91F_US_Close
3444  789                    AT91F_US_Close:
3445  790                    .LFB289:
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 **** {
3453  791                            .loc 1 385 0
3454  792                            @ args = 0, pretend = 0, frame = 0
3455  793                            @ frame_needed = 0, uses_anonymous_args = 0
3456  794                    .LVL53:
3457  386:lib/lib_AT91SAM7.c ****     //* Reset the baud rate divisor register
3458  387:lib/lib_AT91SAM7.c ****     pUSART->US_BRGR = 0 ;
3459  795                            .loc 1 387 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 ;
3470  797                            .loc 1 396 0
3471  798 03a8 0020E0E3              mvn     r2, #0
3472  799                            .loc 1 387 0
3473  800 03ac 203080E5              str     r3, [r0, #32]
3474  801                            .loc 1 385 0
3475  802 03b0 10402DE9              stmfd   sp!, {r4, lr}
3476  803                    .LCFI8:
3477  804                            .loc 1 390 0
3478  805 03b4 043080E5              str     r3, [r0, #4]
3479  806                            .loc 1 385 0
3480  807 03b8 0040A0E1              mov     r4, r0
3481  808                            .loc 1 393 0
3482  809 03bc 283080E5              str     r3, [r0, #40]
3483  810                            .loc 1 396 0
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));
3488  812                            .loc 1 399 0
3489  813 03c4 010C80E2              add     r0, r0, #256
3490  814                    .LVL54:
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 ;
3495  816                            .loc 1 402 0
3496  817 03cc AC30A0E3              mov     r3, #172
3497  818 03d0 003084E5              str     r3, [r4, #0]
3498  403:lib/lib_AT91SAM7.c **** }
3499  819                            .loc 1 403 0
3500  820 03d4 1080BDE8              ldmfd   sp!, {r4, pc}
3501  821                    .LFE289:
3502  823                            .align  2
3503  824                            .global AT91F_SPI_Close
3504  826                    AT91F_SPI_Close:
3505  827                    .LFB284:
3506  828                            .loc 1 243 0
3507  829                            @ args = 0, pretend = 0, frame = 0
3508  830                            @ frame_needed = 0, uses_anonymous_args = 0
3509  831                    .LVL55:
3510  832                            .loc 1 245 0
3511  833 03d8 0030A0E3              mov     r3, #0
3512  834                            .loc 1 254 0
3513  835 03dc 0020E0E3              mvn     r2, #0
3514  836                            .loc 1 245 0
3515  837 03e0 303080E5              str     r3, [r0, #48]
3516  838                            .loc 1 243 0
3517  839 03e4 10402DE9              stmfd   sp!, {r4, lr}
3518  840                    .LCFI9:
3519  841                            .loc 1 246 0
3520  842 03e8 343080E5              str     r3, [r0, #52]
3521  843                            .loc 1 243 0
3522  844 03ec 0040A0E1              mov     r4, r0
3523  845                            .loc 1 247 0
3524  846 03f0 383080E5              str     r3, [r0, #56]
3525  847                            .loc 1 248 0
3526  848 03f4 3C3080E5              str     r3, [r0, #60]
3527  849                            .loc 1 251 0
3528  850 03f8 043080E5              str     r3, [r0, #4]
3529  851                            .loc 1 254 0
3530  852 03fc 182080E5              str     r2, [r0, #24]
3531  853                            .loc 1 257 0
3532  854 0400 010C80E2              add     r0, r0, #256
3533  855                    .LVL56:
3534  856 0404 FEFFFFEB              bl      AT91F_PDC_Close
3535  857                            .loc 1 260 0
3536  858 0408 0230A0E3              mov     r3, #2
3537  859 040c 003084E5              str     r3, [r4, #0]
3538  860                            .loc 1 261 0
3539  861 0410 1080BDE8              ldmfd   sp!, {r4, pc}
3540  862                    .LFE284:
3541  864                            .align  2
3542  865                            .global AT91F_PMC_GetMasterClock
3543  867                    AT91F_PMC_GetMasterClock:
3544  868                    .LFB282:
3545  869                            .loc 1 203 0
3546  870                            @ args = 0, pretend = 0, frame = 0
3547  871                            @ frame_needed = 0, uses_anonymous_args = 0
3548  872                    .LVL57:
3549  873                            .loc 1 204 0
3550  874 0414 303090E5              ldr     r3, [r0, #48]
3551  875                    .LVL58:
3552  876                            .loc 1 208 0
3553  877 0418 03C003E2              and     ip, r3, #3
3554  878                            .loc 1 205 0
3555  879 041c 1C3003E2              and     r3, r3, #28
3556  880                    .LVL59:
3557  881 0420 2331A0E1              mov     r3, r3, lsr #2
3558  882 0424 0100A0E3              mov     r0, #1
3559  883                    .LVL60:
3560  884                            .loc 1 203 0
3561  885 0428 30402DE9              stmfd   sp!, {r4, r5, lr}
3562  886                    .LCFI10:
3563  887                            .loc 1 205 0
3564  888 042c 1053A0E1              mov     r5, r0, asl r3
3565  889                    .LVL61:
3566  890                            .loc 1 208 0
3567  891 0430 01005CE3              cmp     ip, #1
3568  892                            .loc 1 203 0
3569  893 0434 0130A0E1              mov     r3, r1
3570  894                            .loc 1 212 0
3571  895 0438 0510A0E1              mov     r1, r5
3572  896                    .LVL62:
3573  897                            .loc 1 208 0
3574  898 043c 2601000A              beq     .L69
3575  899                    .LVL63:
3576  900                            .loc 1 210 0
3577  901 0440 0200A0E1              mov     r0, r2
3578  902                            .loc 1 208 0
3579  903 0444 1201002A              bcs     .L74
3580  904                    .LVL64:
3581  905                            .loc 1 212 0
3582  906 0448 FEFFFFEB              bl      __udivsi3
3583  907                    .LVL65:
3584  908 044c 3080BDE8              ldmfd   sp!, {r4, r5, pc}
3585  909                    .LVL66:
3586  910                    .L74:
3587  911                            .loc 1 208 0
3588  912 0450 03005CE3              cmp     ip, #3
3589  913 0454 0000A0E3              mov     r0, #0
3590  914                    .LVL67:
3591  915 0458 3080BD18              ldmnefd sp!, {r4, r5, pc}
3592  916                            .loc 1 214 0
3593  917 045c 0C1093E5              ldr     r1, [r3, #12]
3594  918                    .LVL68:
3595  919                    .LBB154:
3596  920                    .LBB155:
3597  921                            .loc 2 1036 0
3598  922 0460 043093E5              ldr     r3, [r3, #4]
3599  923                    .LVL69:
3600  924                    .LBE155:
3601  925                    .LBE154:
3602  926                            .loc 1 217 0
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
3609  933                    .LVL70:
3610  934 047c FEFFFFEB              bl      __udivsi3
3611  935                    .LVL71:
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
3619  943                            .loc 1 220 0
3620  944 049c 3080BDE8              ldmfd   sp!, {r4, r5, pc}
3621  945                    .LVL72:
3622  946                    .L69:
3623  947                    .LBB156:
3624  948                    .LBB157:
3625  949                            .loc 2 1036 0
3626  950 04a0 043093E5              ldr     r3, [r3, #4]
3627  951                    .LVL73:
3628  952                    .LBE157:
3629  953                    .LBE156:
3630  954                            .loc 1 212 0
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
3636  960                    .LVL74:
3637  961 04b8 3080BDE8              ldmfd   sp!, {r4, r5, pc}
3638  962                    .LFE282:
3639  1207                   .Letext0:
3640 DEFINED SYMBOLS
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
3665 UNDEFINED SYMBOLS
3666 __udivsi3