📄 level2.lst
字号:
81:level2.c **** else
82:level2.c **** fwd_bit_phase = 6;
206 .stabn 68,0,82,.LM14-__vector_8
207 .LM14:
208 00ba 86E0 ldi r24,lo8(6)
209 00bc 43C0 rjmp .L22
210 .L10:
83:level2.c **** break;
84:level2.c ****
85:level2.c **** case 6:
86:level2.c **** cbi( PORTC , MOD_PIN );
211 .stabn 68,0,86,.LM15-__vector_8
212 .LM15:
213 00be A998 cbi 53-0x20,1
87:level2.c ****
88:level2.c **** TCNT1 = fwd_delays[ 5 - ( ( *fwd_write_ptr++ ) * 2 ) ];
214 .stabn 68,0,88,.LM16-__vector_8
215 .LM16:
216 00c0 A091 0000 lds r26,fwd_write_ptr
217 00c4 B091 0000 lds r27,(fwd_write_ptr)+1
218 00c8 8D91 ld r24,X+
219 00ca 9927 clr r25
220 00cc 880F lsl r24
221 00ce 991F rol r25
222 00d0 880F lsl r24
223 00d2 991F rol r25
224 00d4 E0E0 ldi r30,lo8(fwd_delays+10)
225 00d6 F0E0 ldi r31,hi8(fwd_delays+10)
226 00d8 E81B sub r30,r24
227 00da F90B sbc r31,r25
228 00dc 8081 ld r24,Z
229 00de 9181 ldd r25,Z+1
230 00e0 9DBD out (76)+1-0x20,r25
231 00e2 8CBD out 76-0x20,r24
232 00e4 B093 0000 sts (fwd_write_ptr)+1,r27
233 00e8 A093 0000 sts fwd_write_ptr,r26
234 .L24:
89:level2.c **** fwd_bit_phase = 4;
235 .stabn 68,0,89,.LM17-__vector_8
236 .LM17:
237 00ec 84E0 ldi r24,lo8(4)
238 00ee 2AC0 rjmp .L22
239 .L11:
90:level2.c **** break;
91:level2.c ****
92:level2.c **** case 12: //standalone EOF
93:level2.c **** sbi( PORTC , MOD_PIN );
240 .stabn 68,0,93,.LM18-__vector_8
241 .LM18:
242 00f0 A99A sbi 53-0x20,1
94:level2.c ****
95:level2.c **** TCNT1 = fwd_delays[ 0 ];
243 .stabn 68,0,95,.LM19-__vector_8
244 .LM19:
245 00f2 8091 0000 lds r24,fwd_delays
246 00f6 9091 0000 lds r25,(fwd_delays)+1
247 00fa 9DBD out (76)+1-0x20,r25
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s page 7
248 00fc 8CBD out 76-0x20,r24
96:level2.c **** fwd_bit_phase = 13;
249 .stabn 68,0,96,.LM20-__vector_8
250 .LM20:
251 00fe 8DE0 ldi r24,lo8(13)
252 0100 21C0 rjmp .L22
253 .L12:
97:level2.c **** break;
98:level2.c ****
99:level2.c **** case 13:
100:level2.c **** cbi( PORTC , MOD_PIN );
254 .stabn 68,0,100,.LM21-__vector_8
255 .LM21:
256 0102 A998 cbi 53-0x20,1
101:level2.c **** TCNT1 = -755;
257 .stabn 68,0,101,.LM22-__vector_8
258 .LM22:
259 0104 8DE0 ldi r24,lo8(-755)
260 0106 9DEF ldi r25,hi8(-755)
261 .L23:
262 0108 9DBD out (76)+1-0x20,r25
263 010a 8CBD out 76-0x20,r24
102:level2.c **** fwd_bit_phase = 5; //generate 2nd standalone EOF pulse
264 .stabn 68,0,102,.LM23-__vector_8
265 .LM23:
266 010c 85E0 ldi r24,lo8(5)
267 010e 1AC0 rjmp .L22
268 .L13:
103:level2.c **** break;
104:level2.c ****
105:level2.c **** default :
106:level2.c **** if ( fwd_bit_phase < 9 )
269 .stabn 68,0,106,.LM24-__vector_8
270 .LM24:
271 0110 8091 0000 lds r24,fwd_bit_phase
272 0114 8930 cpi r24,lo8(9)
273 0116 C8F4 brsh .L14
107:level2.c **** {
108:level2.c **** TCNT1 = fwd_flow[ fwd_bit_phase ];
274 .stabn 68,0,108,.LM25-__vector_8
275 .LM25:
276 0118 8091 0000 lds r24,fwd_bit_phase
277 011c E82F mov r30,r24
278 011e FF27 clr r31
279 0120 EE0F add r30,r30
280 0122 FF1F adc r31,r31
281 0124 E050 subi r30,lo8(-(fwd_flow))
282 0126 F040 sbci r31,hi8(-(fwd_flow))
283 0128 8081 ld r24,Z
284 012a 9181 ldd r25,Z+1
285 012c 9DBD out (76)+1-0x20,r25
286 012e 8CBD out 76-0x20,r24
109:level2.c **** if ( fwd_bit_phase & 1 )
287 .stabn 68,0,109,.LM26-__vector_8
288 .LM26:
289 0130 8091 0000 lds r24,fwd_bit_phase
290 0134 80FF sbrs r24,0
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s page 8
291 0136 02C0 rjmp .L15
110:level2.c **** cbi( PORTC , MOD_PIN );
292 .stabn 68,0,110,.LM27-__vector_8
293 .LM27:
294 0138 A998 cbi 53-0x20,1
295 013a 01C0 rjmp .L16
296 .L15:
111:level2.c **** else
112:level2.c **** sbi( PORTC , MOD_PIN );
297 .stabn 68,0,112,.LM28-__vector_8
298 .LM28:
299 013c A99A sbi 53-0x20,1
300 .L16:
113:level2.c **** fwd_bit_phase++;
301 .stabn 68,0,113,.LM29-__vector_8
302 .LM29:
303 013e 8091 0000 lds r24,fwd_bit_phase
304 0142 8F5F subi r24,lo8(-(1))
305 .L22:
306 0144 8093 0000 sts fwd_bit_phase,r24
307 0148 0AC0 rjmp .L1
308 .L14:
114:level2.c **** }
115:level2.c **** else
116:level2.c **** {
117:level2.c **** TCCR1B = 0; //no clock T1
309 .stabn 68,0,117,.LM30-__vector_8
310 .LM30:
311 014a 1EBC out 78-0x20,__zero_reg__
118:level2.c **** cbi( PORTC , MOD_PIN );
312 .stabn 68,0,118,.LM31-__vector_8
313 .LM31:
314 014c A998 cbi 53-0x20,1
119:level2.c **** cbi( TIMSK , TOIE1 ); //stop
315 .stabn 68,0,119,.LM32-__vector_8
316 .LM32:
317 014e 01C0 rjmp .L21
318 .L2:
120:level2.c **** cbi( TIFR , TOV1 ); //clear pending int
121:level2.c **** }
122:level2.c **** break;
123:level2.c **** }
124:level2.c ****
125:level2.c **** }
126:level2.c **** else
127:level2.c **** { //invalid modulation type
128:level2.c **** TCCR1B = 0; //no clock T1
319 .stabn 68,0,128,.LM33-__vector_8
320 .LM33:
321 0150 1EBC out 78-0x20,__zero_reg__
322 .L21:
129:level2.c **** cbi( TIMSK , TOIE1 ); //else stop
323 .stabn 68,0,129,.LM34-__vector_8
324 .LM34:
325 0152 89B7 in r24,89-0x20
326 0154 8B7F andi r24,lo8(-5)
327 0156 89BF out 89-0x20,r24
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s page 9
130:level2.c **** cbi( TIFR , TOV1 ); //clear pending int
328 .stabn 68,0,130,.LM35-__vector_8
329 .LM35:
330 0158 88B7 in r24,88-0x20
331 015a 8B7F andi r24,lo8(-5)
332 015c 88BF out 88-0x20,r24
131:level2.c **** }
132:level2.c **** }
333 .stabn 68,0,132,.LM36-__vector_8
334 .LM36:
335 .L1:
336 /* epilogue: frame size=0 */
337 015e FF91 pop r31
338 0160 EF91 pop r30
339 0162 BF91 pop r27
340 0164 AF91 pop r26
341 0166 9F91 pop r25
342 0168 8F91 pop r24
343 016a 0F90 pop __tmp_reg__
344 016c 0FBE out __SREG__,__tmp_reg__
345 016e 0F90 pop __tmp_reg__
346 0170 1F90 pop __zero_reg__
347 0172 1895 reti
348 /* epilogue end (size=11) */
349 /* function __vector_8 size 188 (166) */
350 .size __vector_8, .-__vector_8
351 .Lscope0:
352 .stabs "",36,0,0,.Lscope0-__vector_8
353 .stabs "SendForward:F(0,20)",36,0,141,SendForward
354 .stabs "fwd_bit_count:P(4,2)",64,0,140,18
355 .global SendForward
356 .type SendForward, @function
357 SendForward:
133:level2.c ****
134:level2.c ****
135:level2.c **** // ==================================================================
136:level2.c **** // Forward Link setup function
137:level2.c **** // Requires: forwarLink_data filled with valid bits (1 bit per byte)
138:level2.c **** // fwd_bit_count set with number of bits to be sent
139:level2.c ****
140:level2.c **** void SendForward( uint8_t fwd_bit_count )
141:level2.c **** {
358 .stabn 68,0,141,.LM37-SendForward
359 .LM37:
360 /* prologue: frame size=0 */
361 /* prologue end (size=0) */
362 0174 282F mov r18,r24
142:level2.c **** fwd_write_ptr = data_buffer;
363 .stabn 68,0,142,.LM38-SendForward
364 .LM38:
365 .LBB2:
366 0176 80E0 ldi r24,lo8(data_buffer)
367 0178 90E0 ldi r25,hi8(data_buffer)
368 017a 9093 0000 sts (fwd_write_ptr)+1,r25
369 017e 8093 0000 sts fwd_write_ptr,r24
143:level2.c **** fwd_bit_sz = fwd_bit_count;
370 .stabn 68,0,143,.LM39-SendForward
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s page 10
371 .LM39:
372 0182 2093 0000 sts fwd_bit_sz,r18
144:level2.c **** fwd_bit_phase = 0;
373 .stabn 68,0,144,.LM40-SendForward
374 .LM40:
375 0186 1092 0000 sts fwd_bit_phase,__zero_reg__
145:level2.c ****
146:level2.c **** int i;
147:level2.c **** for ( i = 0 ; i < 9 ; i++ )
376 .stabn 68,0,147,.LM41-SendForward
377 .LM41:
378 018a 8091 0000 lds r24,fwd_delays
379 018e 9091 0000 lds r25,(fwd_delays)+1
380 0192 E0E0 ldi r30,lo8(fwd_flow)
381 0194 F0E0 ldi r31,hi8(fwd_flow)
382 0196 9F01 movw r18,r30
383 0198 205F subi r18,lo8(-(16))
384 019a 3F4F sbci r19,hi8(-(16))
385 .L30:
148:level2.c **** fwd_flow[ i ] = fwd_delays[ 0 ];
386 .stabn 68,0,148,.LM42-SendForward
387 .LM42:
388 019c 8193 st Z+,r24
389 019e 9193 st Z+,r25
390 .stabn 68,0,147,.LM43-SendForward
391 .LM43:
392 01a0 2E17 cp r18,r30
393 01a2 3F07 cpc r19,r31
394 01a4 DCF7 brge .L30
149:level2.c **** fwd_flow[ 1 ] = fwd_delays[ 3 ];
395 .stabn 68,0,149,.LM44-SendForward
396 .LM44:
397 01a6 8091 0000 lds r24,fwd_delays+6
398 01aa 9091 0000 lds r25,(fwd_delays+6)+1
399 01ae 9093 0000 sts (fwd_flow+2)+1,r25
400 01b2 8093 0000 sts fwd_flow+2,r24
150:level2.c **** fwd_flow[ 3 ] = fwd_delays[ 1 ];
401 .stabn 68,0,150,.LM45-SendForward
402 .LM45:
403 01b6 8091 0000 lds r24,fwd_delays+2
404 01ba 9091 0000 lds r25,(fwd_delays+2)+1
405 01be 9093 0000 sts (fwd_flow+6)+1,r25
406 01c2 8093 0000 sts fwd_flow+6,r24
151:level2.c ****
152:level2.c **** TCNT1 = -256; //minimum startup pulse length
407 .stabn 68,0,152,.LM46-SendForward
408 .LM46:
409 01c6 80E0 ldi r24,lo8(-256)
410 01c8 9FEF ldi r25,hi8(-256)
411 01ca 9DBD out (76)+1-0x20,r25
412 01cc 8CBD out 76-0x20,r24
153:level2.c **** cbi( PORTC , MOD_PIN ); //notmod pulse
413 .stabn 68,0,153,.LM47-SendForward
414 .LM47:
415 01ce A998 cbi 53-0x20,1
154:level2.c **** sbi( TIMSK , TOIE1 );
416 .stabn 68,0,154,.LM48-SendForward
GAS LISTING C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccU5baaa.s page 11
417 .LM48:
418 01d0 89B7 in r24,89-0x20
419 01d2 8460 ori r24,lo8(4)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -