📄 main.lst
字号:
1 .file "main.c"
9 .Ltext0:
10 .section .rodata
11 .align 2
12 .LC0:
13 0000 0A0D00 .ascii "\012\015\000"
14 0003 00 .align 2
15 .LC1:
16 0004 68747470 .ascii "http://www.embeddedboards.com micro214x LIS302DL\012"
16 3A2F2F77
16 77772E65
16 6D626564
16 64656462
17 0035 0D00 .ascii "\015\000"
18 0037 00 .align 2
19 .LC2:
20 0038 2D2D2D2D .ascii "---------------------------------------------------"
20 2D2D2D2D
20 2D2D2D2D
20 2D2D2D2D
20 2D2D2D2D
21 006b 2D0A0D00 .ascii "-\012\015\000"
22 .text
23 .align 2
24 .global print_banner
26 print_banner:
27 .LFB2:
28 .file 1 "main.c"
1:main.c **** //
2:main.c **** // Copyright (c) 2009 http://www.embeddedboards.com
3:main.c **** //
4:main.c **** // Permission is hereby granted, free of charge, to any person obtaining a copy
5:main.c **** // of this software and associated documentation files (the "Software"), to deal
6:main.c **** // in the Software without restriction, including without limitation the rights
7:main.c **** // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8:main.c **** // copies of the Software, and to permit persons to whom the Software is
9:main.c **** // furnished to do so, subject to the following conditions:
10:main.c **** //
11:main.c **** // The above copyright notice and this permission notice shall be included in
12:main.c **** // all copies or substantial portions of the Software.
13:main.c **** //
14:main.c **** // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15:main.c **** // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16:main.c **** // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17:main.c **** // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18:main.c **** // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19:main.c **** // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20:main.c **** // THE SOFTWARE.
21:main.c **** //
22:main.c ****
23:main.c **** #include <LPC214x.h>
24:main.c **** #include <vcom.h>
25:main.c **** #include <LIS302.h>
26:main.c **** #include <string.h>
27:main.c **** #include <micro214x.h>
28:main.c **** #include <stdio.h>
29:main.c **** #include <stdlib.h>
30:main.c ****
31:main.c **** #define OK 1
32:main.c **** #define ERROR 0
33:main.c **** #define ACTIVE 1
34:main.c **** #define INACTIVE 0
35:main.c ****
36:main.c **** #define SCLK_PINSEL 0x00000100 //Select SPI Function for P0.4
37:main.c **** #define MISO_PINSEL 0x00000400 //Select SPI Function for P0.5
38:main.c **** #define MOSI_PINSEL 0x00001000 //Select SPI Function for P0.6
39:main.c ****
40:main.c **** static unsigned int incoming; // pointer to SPI data buffer
41:main.c **** static unsigned int count; // nr of bytes send/received
42:main.c **** static unsigned int i;
43:main.c **** static unsigned int k;
44:main.c ****
45:main.c **** void print_banner(void)
46:main.c **** {
29 ports interworking.
30 @ args = 0, pretend = 0, frame = 0
31 @ frame_needed = 1, uses_anonymous_args = 0
32 mov ip, sp
33 0000 0DC0A0E1 .LCFI0:
34 stmfd sp!, {fp, ip, lr, pc}
35 0004 00D82DE9 .LCFI1:
36 sub fp, ip, #4
37 0008 04B04CE2 .LCFI2:
38 .loc 1 47 0
47:main.c **** printf("\n\r");
39 L3
40 000c 24009FE5 bl printf
41 0010 FEFFFFEB .loc 1 48 0
48:main.c **** printf("http://www.embeddedboards.com micro214x LIS302DL\n\r");
42 r r0, .L3+4
43 0014 20009FE5 bl printf
44 0018 FEFFFFEB .loc 1 49 0
49:main.c **** printf("----------------------------------------------------\n\r");
45 r r0, .L3+8
46 001c 1C009FE5 bl printf
47 0020 FEFFFFEB .loc 1 50 0
50:main.c **** printf("\n\r");
48 r r0, .L3
49 0024 0C009FE5 bl printf
50 0028 FEFFFFEB .loc 1 51 0
51:main.c **** }
51 b sp, fp, #12
52 002c 0CD04BE2 ldmfd sp, {fp, sp, lr}
53 0030 00689DE8 bx lr
54 0034 1EFF2FE1 .L4:
55 .align 2
56 .L3:
57 .word .LC0
58 0038 00000000 .word .LC1
59 003c 04000000 .word .LC2
60 0040 38000000 .LFE2:
62 .align 2
63 .global initializeAccelerometer
65 initializeAccelerometer:
66 .LFB3:
67 .loc 1 53 0
52:main.c ****
53:main.c **** void initializeAccelerometer( char range ) {
68 rts interworking.
69 @ args = 0, pretend = 0, frame = 4
70 @ frame_needed = 1, uses_anonymous_args = 0
71 mov ip, sp
72 0044 0DC0A0E1 .LCFI3:
73 stmfd sp!, {fp, ip, lr, pc}
74 0048 00D82DE9 .LCFI4:
75 sub fp, ip, #4
76 004c 04B04CE2 .LCFI5:
77 sub sp, sp, #4
78 0050 04D04DE2 .LCFI6:
79 mov r3, r0
80 0054 0030A0E1 strb r3, [fp, #-16]
81 0058 10304BE5 .loc 1 55 0
54:main.c **** //Initialize the accelerometer
55:main.c **** initAccel(range);
82 #-16] @ zero_extendqisi2
83 005c 10305BE5 mov r0, r3
84 0060 0300A0E1 bl initAccel
85 0064 FEFFFFEB .loc 1 62 0
56:main.c ****
57:main.c **** //Set Accel. to Interrupt.
58:main.c **** //WriteLis302Register(FF_WU_CFG_1, XHIE | ZHIE | YHIE); //Enable LIS302 Accel. Interrupts
59:main.c **** //WriteLis302Register(FF_WU_THS_1, 55); //Set Accelerometer Threshold to ~1G
60:main.c ****
61:main.c ****
62:main.c **** WriteLis302Register(CLICK_CFG, LIR | Double_X | Double_Y | Double_Z); //Enable LIS302 Click. Inter
86 r0, #56
87 0068 3800A0E3 mov r1, #106
88 006c 6A10A0E3 bl WriteLis302Register
89 0070 FEFFFFEB .loc 1 63 0
63:main.c **** WriteLis302Register(CLICK_THSY_X, 0xff );
90 r0, #59
91 0074 3B00A0E3 mov r1, #255
92 0078 FF10A0E3 bl WriteLis302Register
93 007c FEFFFFEB .loc 1 64 0
64:main.c **** WriteLis302Register(CLICK_THSZ, 0xff );
94 r0, #60
95 0080 3C00A0E3 mov r1, #255
96 0084 FF10A0E3 bl WriteLis302Register
97 0088 FEFFFFEB .loc 1 65 0
65:main.c **** WriteLis302Register(CLICK_timelimit, 0x5 );
98 r0, #61
99 008c 3D00A0E3 mov r1, #5
100 0090 0510A0E3 bl WriteLis302Register
101 0094 FEFFFFEB .loc 1 66 0
66:main.c **** WriteLis302Register(CLICK_latency, 0xf5 );
102 r0, #62
103 0098 3E00A0E3 mov r1, #245
104 009c F510A0E3 bl WriteLis302Register
105 00a0 FEFFFFEB .loc 1 67 0
67:main.c **** WriteLis302Register(CLICK_window, 0xb5 );
106 r0, #63
107 00a4 3F00A0E3 mov r1, #181
108 00a8 B510A0E3 bl WriteLis302Register
109 00ac FEFFFFEB .loc 1 69 0
68:main.c ****
69:main.c **** WriteLis302Register(Ctrl_Reg3, I1CFG0|I1CFG1|I1CFG2 );
110 r0, #34
111 00b0 2200A0E3 mov r1, #7
112 00b4 0710A0E3 bl WriteLis302Register
113 00b8 FEFFFFEB .loc 1 72 0
70:main.c ****
71:main.c **** //Make sure Accelerometer is not selected
72:main.c **** UnselectAccel();
114 r3, #-536870908
115 00bc 4E32A0E3 add r3, r3, #163840
116 00c0 0A3983E2 mov r2, #128
117 00c4 8020A0E3 str r2, [r3, #0]
118 00c8 002083E5 .loc 1 74 0
73:main.c ****
74:main.c **** }
119 sp, fp, #12
120 00cc 0CD04BE2 ldmfd sp, {fp, sp, lr}
121 00d0 00689DE8 bx lr
122 00d4 1EFF2FE1 .LFE3:
124 .section .rodata
125 .align 2
126 006f 00 .LC3:
127 .ascii "INICIO SPI:\012\015\000"
128 0070 494E4943 .text
128 494F2053
128 50493A0A
128 0D00
129 .align 2
130 .global iniciar_SPI
132 iniciar_SPI:
133 .LFB4:
134 .loc 1 77 0
75:main.c ****
76:main.c **** void iniciar_SPI(void)
77:main.c **** {
135 orts interworking.
136 @ args = 0, pretend = 0, frame = 0
137 @ frame_needed = 1, uses_anonymous_args = 0
138 mov ip, sp
139 00d8 0DC0A0E1 .LCFI7:
140 stmfd sp!, {fp, ip, lr, pc}
141 00dc 00D82DE9 .LCFI8:
142 sub fp, ip, #4
143 00e0 04B04CE2 .LCFI9:
144 .loc 1 78 0
78:main.c **** IODIR0 |= 0x00000080; // P0.7 SS_LIS302DL
145 -536870904
146 00e4 8E22A0E3 add r2, r2, #163840
147 00e8 0A2982E2 mov r3, #-536870904
148 00ec 8E32A0E3 add r3, r3, #163840
149 00f0 0A3983E2 ldr r3, [r3, #0]
150 00f4 003093E5 orr r3, r3, #128
151 00f8 803083E3 str r3, [r2, #0]
152 00fc 003082E5 .loc 1 79 0
79:main.c **** UnselectAccel();
153 #-536870908
154 0100 4E32A0E3 add r3, r3, #163840
155 0104 0A3983E2 mov r2, #128
156 0108 8020A0E3 str r2, [r3, #0]
157 010c 002083E5 .loc 1 80 0
80:main.c **** printf("INICIO SPI:\n\r");
158 r0, .L9
159 0110 40009FE5 bl printf
160 0114 FEFFFFEB .loc 1 81 0
81:main.c **** SPI0_Init(); //Select pin functions for SPI signals.
161 SPI0_Init
162 0118 FEFFFFEB .loc 1 82 0
82:main.c **** S0SPCCR = 64; // SCK = 1 MHz (60MHz / 64 ~= 1Mhz)
163 ov r3, #-536870900
164 011c CE32A0E3 add r3, r3, #131072
165 0120 023883E2 mov r2, #64
166 0124 4020A0E3 strb r2, [r3, #0]
167 0128 0020C3E5 .loc 1 83 0
83:main.c **** S0SPCR = 0x20; //antes 0x20
168 r3, #-536870912
169 012c 0E32A0E3 add r3, r3, #131072
170 0130 023883E2 mov r2, #32
171 0134 2020A0E3 strh r2, [r3, #0] @ movhi
172 0138 B020C3E1 .loc 1 86 0
84:main.c ****
85:main.c ****
86:main.c **** UnselectAccel();
173 r3, #-536870908
174 013c 4E32A0E3 add r3, r3, #163840
175 0140 0A3983E2 mov r2, #128
176 0144 8020A0E3 str r2, [r3, #0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -