📄 lis302.lst
字号:
1 .file "LIS302.c"
9 .Ltext0:
10 .align 2
11 .global initAccel
13 initAccel:
14 .LFB2:
15 .file 1 "LIS302.c"
1:LIS302.c **** //**********************************************************
2:LIS302.c **** //
3:LIS302.c **** // LIS30 Accelerometer Library
4:LIS302.c **** // LIS302.c
5:LIS302.c **** // Ryan Owens
6:LIS302.c **** // Copyright Sparkfun Electronics
7:LIS302.c **** //
8:LIS302.c **** //**********************************************************
9:LIS302.c **** //NOTE: SelectAccel and UnSelectAccel macros must be externally
10:LIS302.c **** // defined. They should assert and de-assert the CS line
11:LIS302.c **** // respectively.
12:LIS302.c ****
13:LIS302.c **** #include "LPC214x.h"
14:LIS302.c **** #include "LIS302.h"
15:LIS302.c **** #include "spi0.h"
16:LIS302.c ****
17:LIS302.c **** void initAccel(char range){
16 Function supports interworking.
17 @ args = 0, pretend = 0, frame = 4
18 @ frame_needed = 1, uses_anonymous_args = 0
19 mov ip, sp
20 0000 0DC0A0E1 .LCFI0:
21 stmfd sp!, {fp, ip, lr, pc}
22 0004 00D82DE9 .LCFI1:
23 sub fp, ip, #4
24 0008 04B04CE2 .LCFI2:
25 sub sp, sp, #4
26 000c 04D04DE2 .LCFI3:
27 mov r3, r0
28 0010 0030A0E1 strb r3, [fp, #-16]
29 0014 10304BE5 .loc 1 18 0
18:LIS302.c **** if ( 1 == range ) {
30 #-16] @ zero_extendqisi2
31 0018 10305BE5 cmp r3, #1
32 001c 010053E3 bne .L2
33 0020 0300001A .loc 1 20 0
19:LIS302.c **** //Use Full Scale
20:LIS302.c **** WriteLis302Register(Ctrl_Reg1, FS | PD | XEN | YEN | ZEN);
34 r0, #32
35 0024 2000A0E3 mov r1, #103
36 0028 6710A0E3 bl WriteLis302Register
37 002c FEFFFFEB b .L4
38 0030 020000EA .L2:
39 .loc 1 22 0
21:LIS302.c **** } else {
22:LIS302.c **** WriteLis302Register(Ctrl_Reg1, PD | XEN | YEN | ZEN);
40 0, #32
41 0034 2000A0E3 mov r1, #71
42 0038 4710A0E3 bl WriteLis302Register
43 003c FEFFFFEB .L4:
44 .loc 1 25 0
23:LIS302.c **** }
24:LIS302.c **** //WriteLis302Register(Ctrl_Reg2, HP_FF_WU1 | FDS | HP_coeff1 | HP_coeff2);
25:LIS302.c **** WriteLis302Register(Ctrl_Reg3, 0x00 );
45 r0, #34
46 0040 2200A0E3 mov r1, #0
47 0044 0010A0E3 bl WriteLis302Register
48 0048 FEFFFFEB .loc 1 27 0
26:LIS302.c ****
27:LIS302.c **** WriteLis302Register(FF_WU_CFG_1, 0x50 );
49 r0, #48
50 004c 3000A0E3 mov r1, #80
51 0050 5010A0E3 bl WriteLis302Register
52 0054 FEFFFFEB .loc 1 28 0
28:LIS302.c **** }
53 sp, fp, #12
54 0058 0CD04BE2 ldmfd sp, {fp, sp, lr}
55 005c 00689DE8 bx lr
56 0060 1EFF2FE1 .LFE2:
58 .align 2
59 .global accelX
61 accelX:
62 .LFB3:
63 .loc 1 30 0
29:LIS302.c ****
30:LIS302.c **** char accelX(void){
64 supports interworking.
65 @ args = 0, pretend = 0, frame = 0
66 @ frame_needed = 1, uses_anonymous_args = 0
67 mov ip, sp
68 0064 0DC0A0E1 .LCFI4:
69 stmfd sp!, {fp, ip, lr, pc}
70 0068 00D82DE9 .LCFI5:
71 sub fp, ip, #4
72 006c 04B04CE2 .LCFI6:
73 .loc 1 31 0
31:LIS302.c **** return ReadLis302Register(OutX);
74 41
75 0070 2900A0E3 bl ReadLis302Register
76 0074 FEFFFFEB mov r3, r0
77 0078 0030A0E1 .loc 1 32 0
32:LIS302.c **** }
78 r0, r3
79 007c 0300A0E1 sub sp, fp, #12
80 0080 0CD04BE2 ldmfd sp, {fp, sp, lr}
81 0084 00689DE8 bx lr
82 0088 1EFF2FE1 .LFE3:
84 .align 2
85 .global accelY
87 accelY:
88 .LFB4:
89 .loc 1 34 0
33:LIS302.c ****
34:LIS302.c **** char accelY(void){
90 supports interworking.
91 @ args = 0, pretend = 0, frame = 0
92 @ frame_needed = 1, uses_anonymous_args = 0
93 mov ip, sp
94 008c 0DC0A0E1 .LCFI7:
95 stmfd sp!, {fp, ip, lr, pc}
96 0090 00D82DE9 .LCFI8:
97 sub fp, ip, #4
98 0094 04B04CE2 .LCFI9:
99 .loc 1 35 0
35:LIS302.c **** return ReadLis302Register(OutY);
100 43
101 0098 2B00A0E3 bl ReadLis302Register
102 009c FEFFFFEB mov r3, r0
103 00a0 0030A0E1 .loc 1 36 0
36:LIS302.c **** }
104 r0, r3
105 00a4 0300A0E1 sub sp, fp, #12
106 00a8 0CD04BE2 ldmfd sp, {fp, sp, lr}
107 00ac 00689DE8 bx lr
108 00b0 1EFF2FE1 .LFE4:
110 .align 2
111 .global accelZ
113 accelZ:
114 .LFB5:
115 .loc 1 38 0
37:LIS302.c ****
38:LIS302.c **** char accelZ(void){
116 supports interworking.
117 @ args = 0, pretend = 0, frame = 0
118 @ frame_needed = 1, uses_anonymous_args = 0
119 mov ip, sp
120 00b4 0DC0A0E1 .LCFI10:
121 stmfd sp!, {fp, ip, lr, pc}
122 00b8 00D82DE9 .LCFI11:
123 sub fp, ip, #4
124 00bc 04B04CE2 .LCFI12:
125 .loc 1 39 0
39:LIS302.c **** return ReadLis302Register(OutZ);
126 45
127 00c0 2D00A0E3 bl ReadLis302Register
128 00c4 FEFFFFEB mov r3, r0
129 00c8 0030A0E1 .loc 1 40 0
40:LIS302.c **** }
130 r0, r3
131 00cc 0300A0E1 sub sp, fp, #12
132 00d0 0CD04BE2 ldmfd sp, {fp, sp, lr}
133 00d4 00689DE8 bx lr
134 00d8 1EFF2FE1 .LFE5:
136 .align 2
137 .global powerdownAccel
139 powerdownAccel:
140 .LFB6:
141 .loc 1 42 0
41:LIS302.c ****
42:LIS302.c **** void powerdownAccel(void){
142 supports interworking.
143 @ args = 0, pretend = 0, frame = 0
144 @ frame_needed = 1, uses_anonymous_args = 0
145 mov ip, sp
146 00dc 0DC0A0E1 .LCFI13:
147 stmfd sp!, {fp, ip, lr, pc}
148 00e0 00D82DE9 .LCFI14:
149 sub fp, ip, #4
150 00e4 04B04CE2 .LCFI15:
151 .loc 1 43 0
43:LIS302.c **** SelectAccel();
152 -536870900
153 00e8 CE32A0E3 add r3, r3, #163840
154 00ec 0A3983E2 mov r2, #128
155 00f0 8020A0E3 str r2, [r3, #0]
156 00f4 002083E5 .loc 1 44 0
44:LIS302.c **** SPI0_send(WRITE | Ctrl_Reg1);
157 r0, #32
158 00f8 2000A0E3 bl SPI0_send
159 00fc FEFFFFEB .loc 1 45 0
45:LIS302.c **** SPI0_send(~PD);
160 v r0, #191
161 0100 BF00A0E3 bl SPI0_send
162 0104 FEFFFFEB .loc 1 46 0
46:LIS302.c **** UnselectAccel();
163 v r3, #-536870908
164 0108 4E32A0E3 add r3, r3, #163840
165 010c 0A3983E2 mov r2, #128
166 0110 8020A0E3 str r2, [r3, #0]
167 0114 002083E5 .loc 1 47 0
47:LIS302.c **** }
168 sp, fp, #12
169 0118 0CD04BE2 ldmfd sp, {fp, sp, lr}
170 011c 00689DE8 bx lr
171 0120 1EFF2FE1 .LFE6:
173 .align 2
174 .global ReadLis302Register
176 ReadLis302Register:
177 .LFB7:
178 .loc 1 49 0
48:LIS302.c ****
49:LIS302.c **** char ReadLis302Register(char register_name){
179 supports interworking.
180 @ args = 0, pretend = 0, frame = 8
181 @ frame_needed = 1, uses_anonymous_args = 0
182 mov ip, sp
183 0124 0DC0A0E1 .LCFI16:
184 stmfd sp!, {fp, ip, lr, pc}
185 0128 00D82DE9 .LCFI17:
186 sub fp, ip, #4
187 012c 04B04CE2 .LCFI18:
188 sub sp, sp, #8
189 0130 08D04DE2 .LCFI19:
190 mov r3, r0
191 0134 0030A0E1 strb r3, [fp, #-20]
192 0138 14304BE5 .loc 1 52 0
50:LIS302.c **** char register_contents;
51:LIS302.c ****
52:LIS302.c **** SelectAccel();
193 870900
194 013c CE32A0E3 add r3, r3, #163840
195 0140 0A3983E2 mov r2, #128
196 0144 8020A0E3 str r2, [r3, #0]
197 0148 002083E5 .loc 1 53 0
53:LIS302.c **** SPI0_send(READ | register_name);
198 r3, [fp, #-20]
199 014c 14305BE5 mvn r3, r3, asl #25
200 0150 833CE0E1 mvn r3, r3, lsr #25
201 0154 A33CE0E1 and r3, r3, #255
202 0158 FF3003E2 mov r0, r3
203 015c 0300A0E1 bl SPI0_send
204 0160 FEFFFFEB .loc 1 54 0
54:LIS302.c **** register_contents=SPI0_recv();
205 0_recv
206 0164 FEFFFFEB mov r3, r0
207 0168 0030A0E1 strb r3, [fp, #-13]
208 016c 0D304BE5 .loc 1 55 0
55:LIS302.c **** UnselectAccel();
209 r3, #-536870908
210 0170 4E32A0E3 add r3, r3, #163840
211 0174 0A3983E2 mov r2, #128
212 0178 8020A0E3 str r2, [r3, #0]
213 017c 002083E5 .loc 1 56 0
56:LIS302.c **** return register_contents;
214 r3, [fp, #-13] @ zero_extendqisi2
215 0180 0D305BE5 .loc 1 57 0
57:LIS302.c **** }
216 ov r0, r3
217 0184 0300A0E1 sub sp, fp, #12
218 0188 0CD04BE2 ldmfd sp, {fp, sp, lr}
219 018c 00689DE8 bx lr
220 0190 1EFF2FE1 .LFE7:
222 .align 2
223 .global WriteLis302Register
225 WriteLis302Register:
226 .LFB8:
227 .loc 1 59 0
58:LIS302.c ****
59:LIS302.c **** void WriteLis302Register(char register_name, char register_value){
228 supports interworking.
229 @ args = 0, pretend = 0, frame = 8
230 @ frame_needed = 1, uses_anonymous_args = 0
231 mov ip, sp
232 0194 0DC0A0E1 .LCFI20:
233 stmfd sp!, {fp, ip, lr, pc}
234 0198 00D82DE9 .LCFI21:
235 sub fp, ip, #4
236 019c 04B04CE2 .LCFI22:
237 sub sp, sp, #8
238 01a0 08D04DE2 .LCFI23:
239 mov r3, r0
240 01a4 0030A0E1 mov r2, r1
241 01a8 0120A0E1 strb r3, [fp, #-16]
242 01ac 10304BE5 mov r3, r2
243 01b0 0230A0E1 strb r3, [fp, #-20]
244 01b4 14304BE5 .loc 1 60 0
60:LIS302.c **** SelectAccel();
245 900
246 01b8 CE32A0E3 add r3, r3, #163840
247 01bc 0A3983E2 mov r2, #128
248 01c0 8020A0E3 str r2, [r3, #0]
249 01c4 002083E5 .loc 1 61 0
61:LIS302.c **** SPI0_send(WRITE | register_name);
250 r3, [fp, #-16] @ zero_extendqisi2
251 01c8 10305BE5 mov r0, r3
252 01cc 0300A0E1 bl SPI0_send
253 01d0 FEFFFFEB .loc 1 62 0
62:LIS302.c **** SPI0_send(register_value);
254 b r3, [fp, #-20] @ zero_extendqisi2
255 01d4 14305BE5 mov r0, r3
256 01d8 0300A0E1 bl SPI0_send
257 01dc FEFFFFEB .loc 1 63 0
63:LIS302.c **** UnselectAccel();
258 r3, #-536870908
259 01e0 4E32A0E3 add r3, r3, #163840
260 01e4 0A3983E2 mov r2, #128
261 01e8 8020A0E3 str r2, [r3, #0]
262 01ec 002083E5 .loc 1 64 0
64:LIS302.c **** }
263 sp, fp, #12
264 01f0 0CD04BE2 ldmfd sp, {fp, sp, lr}
265 01f4 00689DE8 bx lr
266 01f8 1EFF2FE1 .LFE8:
268 .section .debug_frame,"",%progbits
460 .section .debug_loc,"",%progbits
DEFINED SYMBOLS
*ABS*:00000000 LIS302.c
e:\Temp/ccGqbaaa.s:13 .text:00000000 initAccel
e:\Temp/ccGqbaaa.s:20 .text:00000000 $a
e:\Temp/ccGqbaaa.s:226 .text:00000194 WriteLis302Register
e:\Temp/ccGqbaaa.s:62 .text:00000064 accelX
e:\Temp/ccGqbaaa.s:177 .text:00000124 ReadLis302Register
e:\Temp/ccGqbaaa.s:88 .text:0000008c accelY
e:\Temp/ccGqbaaa.s:114 .text:000000b4 accelZ
e:\Temp/ccGqbaaa.s:140 .text:000000dc powerdownAccel
UNDEFINED SYMBOLS
SPI0_send
SPI0_recv
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -