root / demos / john / projects / libdragonfly / rangefinder.lst @ 1693
History | View | Annotate | Download (6.44 KB)
1 |
1 .file "rangefinder.c" |
---|---|
2 |
2 .arch atmega128 |
3 |
3 __SREG__ = 0x3f |
4 |
4 __SP_H__ = 0x3e |
5 |
5 __SP_L__ = 0x3d |
6 |
6 __tmp_reg__ = 0 |
7 |
7 __zero_reg__ = 1 |
8 |
8 .global __do_copy_data |
9 |
9 .global __do_clear_bss |
10 |
17 .Ltext0: |
11 |
18 .global linearize_distance |
12 |
20 linearize_distance: |
13 |
21 .LFB4: |
14 |
22 .LM1: |
15 |
23 /* prologue: frame size=0 */ |
16 |
24 /* prologue end (size=0) */ |
17 |
25 .LVL0: |
18 |
26 .LM2: |
19 |
27 0000 8B31 cpi r24,27 |
20 |
28 0002 9105 cpc r25,__zero_reg__ |
21 |
29 0004 04F0 brlt .L2 |
22 |
30 .LM3: |
23 |
31 0006 8336 cpi r24,99 |
24 |
32 0008 9105 cpc r25,__zero_reg__ |
25 |
33 000a 04F4 brge .L2 |
26 |
34 .LBB2: |
27 |
35 .LM4: |
28 |
36 000c FC01 movw r30,r24 |
29 |
37 .LVL1: |
30 |
38 000e EE0F lsl r30 |
31 |
39 0010 FF1F rol r31 |
32 |
40 .LVL2: |
33 |
41 0012 E050 subi r30,lo8(-(IR_dist_conversion-54)) |
34 |
42 0014 F040 sbci r31,hi8(-(IR_dist_conversion-54)) |
35 |
43 .LBE2: |
36 |
44 /* #APP */ |
37 |
45 0016 8591 lpm r24, Z+ |
38 |
46 0018 9491 lpm r25, Z |
39 |
47 |
40 |
48 /* #NOAPP */ |
41 |
49 001a 0895 ret |
42 |
50 .LVL3: |
43 |
51 .L2: |
44 |
52 001c 8FEF ldi r24,lo8(-1) |
45 |
53 001e 9FEF ldi r25,hi8(-1) |
46 |
54 .LVL4: |
47 |
55 .LM5: |
48 |
56 0020 0895 ret |
49 |
57 /* epilogue: frame size=0 */ |
50 |
58 /* epilogue: noreturn */ |
51 |
59 /* epilogue end (size=0) */ |
52 |
60 /* function linearize_distance size 21 (21) */ |
53 |
61 .LFE4: |
54 |
63 .global range_read_distance |
55 |
65 range_read_distance: |
56 |
66 .LFB3: |
57 |
67 .LM6: |
58 |
68 /* prologue: frame size=0 */ |
59 |
69 /* prologue end (size=0) */ |
60 |
70 .LVL5: |
61 |
71 .LM7: |
62 |
72 0022 0E94 0000 call analog_get8 |
63 |
73 .LVL6: |
64 |
74 0026 0E94 0000 call linearize_distance |
65 |
75 /* epilogue: frame size=0 */ |
66 |
76 002a 0895 ret |
67 |
77 /* epilogue end (size=1) */ |
68 |
78 /* function range_read_distance size 5 (4) */ |
69 |
79 .LFE3: |
70 |
81 .global range_init |
71 |
83 range_init: |
72 |
84 .LFB2: |
73 |
85 .LM8: |
74 |
86 /* prologue: frame size=0 */ |
75 |
87 /* prologue end (size=0) */ |
76 |
88 .LM9: |
77 |
89 002c 60E0 ldi r22,lo8(0) |
78 |
90 002e 70E0 ldi r23,hi8(0) |
79 |
91 0030 84E1 ldi r24,lo8(20) |
80 |
92 0032 90E0 ldi r25,hi8(20) |
81 |
93 0034 0E94 0000 call digital_output |
82 |
94 /* epilogue: frame size=0 */ |
83 |
95 0038 0895 ret |
84 |
96 /* epilogue end (size=1) */ |
85 |
97 /* function range_init size 7 (6) */ |
86 |
98 .LFE2: |
87 |
100 .section .progmem.data,"a",@progbits |
88 |
103 IR_dist_conversion: |
89 |
104 0000 4701 .word 327 |
90 |
105 0002 3B01 .word 315 |
91 |
106 0004 2F01 .word 303 |
92 |
107 0006 2301 .word 291 |
93 |
108 0008 1901 .word 281 |
94 |
109 000a 0F01 .word 271 |
95 |
110 000c 0601 .word 262 |
96 |
111 000e FD00 .word 253 |
97 |
112 0010 F500 .word 245 |
98 |
113 0012 EE00 .word 238 |
99 |
114 0014 E700 .word 231 |
100 |
115 0016 E000 .word 224 |
101 |
116 0018 DA00 .word 218 |
102 |
117 001a D400 .word 212 |
103 |
118 001c CE00 .word 206 |
104 |
119 001e C800 .word 200 |
105 |
120 0020 C300 .word 195 |
106 |
121 0022 BE00 .word 190 |
107 |
122 0024 B900 .word 185 |
108 |
123 0026 B500 .word 181 |
109 |
124 0028 B100 .word 177 |
110 |
125 002a AD00 .word 173 |
111 |
126 002c A800 .word 168 |
112 |
127 002e A500 .word 165 |
113 |
128 0030 A100 .word 161 |
114 |
129 0032 9E00 .word 158 |
115 |
130 0034 9B00 .word 155 |
116 |
131 0036 9700 .word 151 |
117 |
132 0038 9400 .word 148 |
118 |
133 003a 9100 .word 145 |
119 |
134 003c 8F00 .word 143 |
120 |
135 003e 8C00 .word 140 |
121 |
136 0040 8900 .word 137 |
122 |
137 0042 8600 .word 134 |
123 |
138 0044 8400 .word 132 |
124 |
139 0046 8200 .word 130 |
125 |
140 0048 7F00 .word 127 |
126 |
141 004a 7D00 .word 125 |
127 |
142 004c 7B00 .word 123 |
128 |
143 004e 7900 .word 121 |
129 |
144 0050 7700 .word 119 |
130 |
145 0052 7500 .word 117 |
131 |
146 0054 7300 .word 115 |
132 |
147 0056 7200 .word 114 |
133 |
148 0058 6F00 .word 111 |
134 |
149 005a 6E00 .word 110 |
135 |
150 005c 6C00 .word 108 |
136 |
151 005e 6A00 .word 106 |
137 |
152 0060 6900 .word 105 |
138 |
153 0062 6800 .word 104 |
139 |
154 0064 6600 .word 102 |
140 |
155 0066 6400 .word 100 |
141 |
156 0068 6300 .word 99 |
142 |
157 006a 6200 .word 98 |
143 |
158 006c 6100 .word 97 |
144 |
159 006e 5F00 .word 95 |
145 |
160 0070 5E00 .word 94 |
146 |
161 0072 5D00 .word 93 |
147 |
162 0074 5B00 .word 91 |
148 |
163 0076 5A00 .word 90 |
149 |
164 0078 5900 .word 89 |
150 |
165 007a 5800 .word 88 |
151 |
166 007c 5700 .word 87 |
152 |
167 007e 5600 .word 86 |
153 |
168 0080 5400 .word 84 |
154 |
169 0082 5300 .word 83 |
155 |
170 0084 5300 .word 83 |
156 |
171 0086 5200 .word 82 |
157 |
172 0088 5100 .word 81 |
158 |
173 008a 5000 .word 80 |
159 |
174 008c 4F00 .word 79 |
160 |
175 008e 4E00 .word 78 |
161 |
216 .Letext0: |
162 |
DEFINED SYMBOLS |
163 |
*ABS*:00000000 rangefinder.c |
164 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:3 *ABS*:0000003f __SREG__ |
165 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:4 *ABS*:0000003e __SP_H__ |
166 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:5 *ABS*:0000003d __SP_L__ |
167 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:6 *ABS*:00000000 __tmp_reg__ |
168 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:7 *ABS*:00000001 __zero_reg__ |
169 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:20 .text:00000000 linearize_distance |
170 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:103 .progmem.data:00000000 IR_dist_conversion |
171 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:65 .text:00000022 range_read_distance |
172 |
F:\DOCUME~1\Evan\LOCALS~1\Temp/cccDmnIJ.s:83 .text:0000002c range_init |
173 |
|
174 |
UNDEFINED SYMBOLS |
175 |
__do_copy_data |
176 |
__do_clear_bss |
177 |
analog_get8 |
178 |
digital_output |