📄 main.lss
字号:
WriteLis302Register(CLICK_THSZ, 0xff );
21f0: e3a0003c mov r0, #60 ; 0x3c
21f4: e3a010ff mov r1, #255 ; 0xff
21f8: eb0000e2 bl 2588 <WriteLis302Register>
WriteLis302Register(CLICK_timelimit, 0x5 );
21fc: e3a0003d mov r0, #61 ; 0x3d
2200: e3a01005 mov r1, #5 ; 0x5
2204: eb0000df bl 2588 <WriteLis302Register>
WriteLis302Register(CLICK_latency, 0xf5 );
2208: e3a0003e mov r0, #62 ; 0x3e
220c: e3a010f5 mov r1, #245 ; 0xf5
2210: eb0000dc bl 2588 <WriteLis302Register>
WriteLis302Register(CLICK_window, 0xb5 );
2214: e3a0003f mov r0, #63 ; 0x3f
2218: e3a010b5 mov r1, #181 ; 0xb5
221c: eb0000d9 bl 2588 <WriteLis302Register>
WriteLis302Register(Ctrl_Reg3, I1CFG0|I1CFG1|I1CFG2 );
2220: e3a00022 mov r0, #34 ; 0x22
2224: e3a01007 mov r1, #7 ; 0x7
2228: eb0000d6 bl 2588 <WriteLis302Register>
//Make sure Accelerometer is not selected
UnselectAccel();
222c: e3a0324e mov r3, #-536870908 ; 0xe0000004
2230: e283390a add r3, r3, #163840 ; 0x28000
2234: e3a02080 mov r2, #128 ; 0x80
2238: e5832000 str r2, [r3]
}
223c: e24bd00c sub sp, fp, #12 ; 0xc
2240: e89d6800 ldmia sp, {fp, sp, lr}
2244: e12fff1e bx lr
00002248 <iniciar_SPI>:
void iniciar_SPI(void)
{
2248: e1a0c00d mov ip, sp
224c: e92dd800 stmdb sp!, {fp, ip, lr, pc}
2250: e24cb004 sub fp, ip, #4 ; 0x4
IODIR0 |= 0x00000080; // P0.7 SS_LIS302DL
2254: e3a0228e mov r2, #-536870904 ; 0xe0000008
2258: e282290a add r2, r2, #163840 ; 0x28000
225c: e3a0328e mov r3, #-536870904 ; 0xe0000008
2260: e283390a add r3, r3, #163840 ; 0x28000
2264: e5933000 ldr r3, [r3]
2268: e3833080 orr r3, r3, #128 ; 0x80
226c: e5823000 str r3, [r2]
UnselectAccel();
2270: e3a0324e mov r3, #-536870908 ; 0xe0000004
2274: e283390a add r3, r3, #163840 ; 0x28000
2278: e3a02080 mov r2, #128 ; 0x80
227c: e5832000 str r2, [r3]
printf("INICIO SPI:\n\r");
2280: e59f0040 ldr r0, [pc, #64] ; 22c8 <.text+0x2c8>
2284: eb0006ce bl 3dc4 <__printf_from_arm>
SPI0_Init(); //Select pin functions for SPI signals.
2288: eb0000d8 bl 25f0 <SPI0_Init>
S0SPCCR = 64; // SCK = 1 MHz (60MHz / 64 ~= 1Mhz)
228c: e3a032ce mov r3, #-536870900 ; 0xe000000c
2290: e2833802 add r3, r3, #131072 ; 0x20000
2294: e3a02040 mov r2, #64 ; 0x40
2298: e5c32000 strb r2, [r3]
S0SPCR = 0x20; //antes 0x20
229c: e3a0320e mov r3, #-536870912 ; 0xe0000000
22a0: e2833802 add r3, r3, #131072 ; 0x20000
22a4: e3a02020 mov r2, #32 ; 0x20
22a8: e1c320b0 strh r2, [r3]
UnselectAccel();
22ac: e3a0324e mov r3, #-536870908 ; 0xe0000004
22b0: e283390a add r3, r3, #163840 ; 0x28000
22b4: e3a02080 mov r2, #128 ; 0x80
22b8: e5832000 str r2, [r3]
}
22bc: e24bd00c sub sp, fp, #12 ; 0xc
22c0: e89d6800 ldmia sp, {fp, sp, lr}
22c4: e12fff1e bx lr
22c8: 00003e7c andeq r3, r0, ip, ror lr
000022cc <esperando>:
void esperando(void)
{
22cc: e1a0c00d mov ip, sp
22d0: e92dd800 stmdb sp!, {fp, ip, lr, pc}
22d4: e24cb004 sub fp, ip, #4 ; 0x4
for (i=0 ; i< 100000; i++);
22d8: e59f204c ldr r2, [pc, #76] ; 232c <.text+0x32c>
22dc: e3a03000 mov r3, #0 ; 0x0
22e0: e5823000 str r3, [r2]
22e4: ea000004 b 22fc <esperando+0x30>
22e8: e59f303c ldr r3, [pc, #60] ; 232c <.text+0x32c>
22ec: e5933000 ldr r3, [r3]
22f0: e2832001 add r2, r3, #1 ; 0x1
22f4: e59f3030 ldr r3, [pc, #48] ; 232c <.text+0x32c>
22f8: e5832000 str r2, [r3]
22fc: e59f3028 ldr r3, [pc, #40] ; 232c <.text+0x32c>
2300: e5932000 ldr r2, [r3]
2304: e3a03b61 mov r3, #99328 ; 0x18400
2308: e2833fa7 add r3, r3, #668 ; 0x29c
230c: e2833003 add r3, r3, #3 ; 0x3
2310: e1520003 cmp r2, r3
2314: 9afffff3 bls 22e8 <esperando+0x1c>
printf("\n\rFIN\n\r");
2318: e59f0010 ldr r0, [pc, #16] ; 2330 <.text+0x330>
231c: eb0006a8 bl 3dc4 <__printf_from_arm>
}
2320: e24bd00c sub sp, fp, #12 ; 0xc
2324: e89d6800 ldmia sp, {fp, sp, lr}
2328: e12fff1e bx lr
232c: 40000010 andmi r0, r0, r0, lsl r0
2330: 00003e8c andeq r3, r0, ip, lsl #29
00002334 <main>:
int main(void)
{
2334: e1a0c00d mov ip, sp
2338: e92dd800 stmdb sp!, {fp, ip, lr, pc}
233c: e24cb004 sub fp, ip, #4 ; 0x4
LEDS_init(); /* init the LEDs for this board */
2340: eb0006a2 bl 3dd0 <__LEDS_init_from_arm>
VCOM_init(); /* init the USB Virtual COM port */
2344: eb000223 bl 2bd8 <VCOM_init>
printf_output(&VCOM_putchar); /* define the output for the printf/puts */
2348: e59f008c ldr r0, [pc, #140] ; 23dc <.text+0x3dc>
234c: eb0006a2 bl 3ddc <__printf_output_from_arm>
LEDS_on(LED3);
2350: e3a00601 mov r0, #1048576 ; 0x100000
2354: eb0006a3 bl 3de8 <__LEDS_on_from_arm>
count = 0;
2358: e59f2080 ldr r2, [pc, #128] ; 23e0 <.text+0x3e0>
235c: e3a03000 mov r3, #0 ; 0x0
2360: e5823000 str r3, [r2]
while (1)
{
k = VCOM_getchar();
2364: eb0001d7 bl 2ac8 <VCOM_getchar>
2368: e1a03000 mov r3, r0
236c: e1a02003 mov r2, r3
2370: e59f306c ldr r3, [pc, #108] ; 23e4 <.text+0x3e4>
2374: e5832000 str r2, [r3]
LEDS_on(LED1);
2378: e3a00501 mov r0, #4194304 ; 0x400000
237c: eb000699 bl 3de8 <__LEDS_on_from_arm>
print_banner();
2380: ebffff7a bl 2170 <print_banner>
printf("inicia spi\n\r");
2384: e59f005c ldr r0, [pc, #92] ; 23e8 <.text+0x3e8>
2388: eb00068d bl 3dc4 <__printf_from_arm>
iniciar_SPI();
238c: ebffffad bl 2248 <iniciar_SPI>
esperando();
2390: ebffffcd bl 22cc <esperando>
printf("Iniciando acelerometro \n\r");
2394: e59f0050 ldr r0, [pc, #80] ; 23ec <.text+0x3ec>
2398: eb000689 bl 3dc4 <__printf_from_arm>
initializeAccelerometer(1);
239c: e3a00001 mov r0, #1 ; 0x1
23a0: ebffff83 bl 21b4 <initializeAccelerometer>
esperando();
23a4: ebffffc8 bl 22cc <esperando>
WriteLis302Register(Ctrl_Reg1,0x6f);
23a8: e3a00020 mov r0, #32 ; 0x20
23ac: e3a0106f mov r1, #111 ; 0x6f
23b0: eb000074 bl 2588 <WriteLis302Register>
printf("Leer quien soy: %x\n\r",ReadLis302Register(WHO_AM_I));
23b4: e3a0000f mov r0, #15 ; 0xf
23b8: eb000056 bl 2518 <ReadLis302Register>
23bc: e1a03000 mov r3, r0
23c0: e59f0028 ldr r0, [pc, #40] ; 23f0 <.text+0x3f0>
23c4: e1a01003 mov r1, r3
23c8: eb00067d bl 3dc4 <__printf_from_arm>
LEDS_off(LED1);
23cc: e3a00501 mov r0, #4194304 ; 0x400000
23d0: eb000687 bl 3df4 <__LEDS_off_from_arm>
accelX();
23d4: eb00001f bl 2458 <accelX>
}
23d8: eaffffe1 b 2364 <main+0x30>
23dc: 00002a7c andeq r2, r0, ip, ror sl
23e0: 4000000c andmi r0, r0, ip
23e4: 40000014 andmi r0, r0, r4, lsl r0
23e8: 00003e94 muleq r0, r4, lr
23ec: 00003ea4 andeq r3, r0, r4, lsr #29
23f0: 00003ec0 andeq r3, r0, r0, asr #29
000023f4 <initAccel>:
#include "LPC214x.h"
#include "LIS302.h"
#include "spi0.h"
void initAccel(char range){
23f4: e1a0c00d mov ip, sp
23f8: e92dd800 stmdb sp!, {fp, ip, lr, pc}
23fc: e24cb004 sub fp, ip, #4 ; 0x4
2400: e24dd004 sub sp, sp, #4 ; 0x4
2404: e1a03000 mov r3, r0
2408: e54b3010 strb r3, [fp, #-16]
if ( 1 == range ) {
240c: e55b3010 ldrb r3, [fp, #-16]
2410: e3530001 cmp r3, #1 ; 0x1
2414: 1a000003 bne 2428 <initAccel+0x34>
//Use Full Scale
WriteLis302Register(Ctrl_Reg1, FS | PD | XEN | YEN | ZEN);
2418: e3a00020 mov r0, #32 ; 0x20
241c: e3a01067 mov r1, #103 ; 0x67
2420: eb000058 bl 2588 <WriteLis302Register>
2424: ea000002 b 2434 <initAccel+0x40>
} else {
WriteLis302Register(Ctrl_Reg1, PD | XEN | YEN | ZEN);
2428: e3a00020 mov r0, #32 ; 0x20
242c: e3a01047 mov r1, #71 ; 0x47
2430: eb000054 bl 2588 <WriteLis302Register>
}
//WriteLis302Register(Ctrl_Reg2, HP_FF_WU1 | FDS | HP_coeff1 | HP_coeff2);
WriteLis302Register(Ctrl_Reg3, 0x00 );
2434: e3a00022 mov r0, #34 ; 0x22
2438: e3a01000 mov r1, #0 ; 0x0
243c: eb000051 bl 2588 <WriteLis302Register>
WriteLis302Register(FF_WU_CFG_1, 0x50 );
2440: e3a00030 mov r0, #48 ; 0x30
2444: e3a01050 mov r1, #80 ; 0x50
2448: eb00004e bl 2588 <WriteLis302Register>
}
244c: e24bd00c sub sp, fp, #12 ; 0xc
2450: e89d6800 ldmia sp, {fp, sp, lr}
2454: e12fff1e bx lr
00002458 <accelX>:
char accelX(void){
2458: e1a0c00d mov ip, sp
245c: e92dd800 stmdb sp!, {fp, ip, lr, pc}
2460: e24cb004 sub fp, ip, #4 ; 0x4
return ReadLis302Register(OutX);
2464: e3a00029 mov r0, #41 ; 0x29
2468: eb00002a bl 2518 <ReadLis302Register>
246c: e1a03000 mov r3, r0
}
2470: e1a00003 mov r0, r3
2474: e24bd00c sub sp, fp, #12 ; 0xc
2478: e89d6800 ldmia sp, {fp, sp, lr}
247c: e12fff1e bx lr
00002480 <accelY>:
char accelY(void){
2480: e1a0c00d mov ip, sp
2484: e92dd800 stmdb sp!, {fp, ip, lr, pc}
2488: e24cb004 sub fp, ip, #4 ; 0x4
return ReadLis302Register(OutY);
248c: e3a0002b mov r0, #43 ; 0x2b
2490: eb000020 bl 2518 <ReadLis302Register>
2494: e1a03000 mov r3, r0
}
2498: e1a00003 mov r0, r3
249c: e24bd00c sub sp, fp, #12 ; 0xc
24a0: e89d6800 ldmia sp, {fp, sp, lr}
24a4: e12fff1e bx lr
000024a8 <accelZ>:
char accelZ(void){
24a8: e1a0c00d mov ip, sp
24ac: e92dd800 stmdb sp!, {fp, ip, lr, pc}
24b0: e24cb004 sub fp, ip, #4 ; 0x4
return ReadLis302Register(OutZ);
24b4: e3a0002d mov r0, #45 ; 0x2d
24b8: eb000016 bl 2518 <ReadLis302Register>
24bc: e1a03000 mov r3, r0
}
24c0: e1a00003 mov r0, r3
24c4: e24bd00c sub sp, fp, #12 ; 0xc
24c8: e89d6800 ldmia sp, {fp, sp, lr}
24cc: e12fff1e bx lr
000024d0 <powerdownAccel>:
void powerdownAccel(void){
24d0: e1a0c00d mov ip, sp
24d4: e92dd800 stmdb sp!, {fp, ip, lr, pc}
24d8: e24cb004 sub fp, ip, #4 ; 0x4
SelectAccel();
24dc: e3a032ce mov r3, #-536870900 ; 0xe000000c
24e0: e283390a add r3, r3, #163840 ; 0x28000
24e4: e3a02080 mov r2, #128 ; 0x80
24e8: e5832000 str r2, [r3]
SPI0_send(WRITE | Ctrl_Reg1);
24ec: e3a00020 mov r0, #32 ; 0x20
24f0: eb00005c bl 2668 <SPI0_send>
SPI0_send(~PD);
24f4: e3a000bf mov r0, #191 ; 0xbf
24f8: eb00005a bl 2668 <SPI0_send>
UnselectAccel();
24fc: e3a0324e mov r3, #-536870908 ; 0xe0000004
2500: e283390a add r3, r3, #163840 ; 0x28000
2504: e3a02080 mov r2, #128 ; 0x80
2508: e5832000 str r2, [r3]
}
250c: e24bd00c sub sp, fp, #12 ; 0xc
2510: e89d6800 ldmia sp, {fp, sp, lr}
2514: e12fff1e bx lr
00002518 <ReadLis302Register>:
char ReadLis302Register(char register_name){
2518: e1a0c00d mov ip, sp
251c: e92dd800 stmdb sp!, {fp, ip, lr, pc}
2520: e24cb004 sub fp, ip, #4 ; 0x4
2524: e24dd008 sub sp, sp, #8 ; 0x8
2528: e1a03000 mov r3, r0
252c: e54b3014 strb r3, [fp, #-20]
char register_contents;
SelectAccel();
2530: e3a032ce mov r3, #-536870900 ; 0xe000000c
2534: e283390a add r3, r3, #163840 ; 0x28000
2538: e3a02080 mov r2, #128 ; 0x80
253c: e5832000 str r2, [r3]
SPI0_send(READ | register_name);
2540: e55b3014 ldrb r3, [fp, #-20]
2544: e1e03c83 mvn r3, r3, lsl #25
2548: e1e03ca3 mvn r3, r3, lsr #25
254c: e20330ff and r3, r3, #255 ; 0xff
2550: e1a00003 mov r0, r3
2554: eb000043 bl 2668 <SPI0_send>
register_contents=SPI0_recv();
2558: eb00004e bl 2698 <SPI0_recv>
255c: e1a03000 mov r3, r0
2560: e54b300d strb r3, [fp, #-13]
UnselectAccel();
2564: e3a0324e mov r3, #-536870908 ; 0xe0000004
2568: e283390a add r3, r3, #163840 ; 0x28000
256c: e3a02080 mov r2, #128 ; 0x80
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -