📄 adc.lst
字号:
166 0050 0895 ret
167 /* epilogue end (size=1) */
168 /* function ADCHPLInit size 12 (11) */
171 .global ADCControlInit
173 ADCControlInit:
175 .LM18:
176 /* prologue: frame size=0 */
177 /* prologue end (size=0) */
178 .LBB5:
180 .LM19:
181 0052 0E94 0000 call AtomicStart
183 .LM20:
184 0056 1092 0000 sts (ADCM_ReqPort)+1,__zero_reg__
185 005a 1092 0000 sts ADCM_ReqPort,__zero_reg__
187 .LM21:
188 005e 1092 0000 sts (ADCM_ContReqMask)+1,__zero_reg__
189 0062 1092 0000 sts ADCM_ContReqMask,__zero_reg__
190 0066 1092 0000 sts (ADCM_ReqVector)+1,__zero_reg__
191 006a 1092 0000 sts ADCM_ReqVector,__zero_reg__
193 .LM22:
194 006e 0E94 0000 call AtomicEnd
195 .LBE5:
197 .LM23:
198 0072 0E94 0000 call ADCHPLInit
200 .LM24:
201 0076 9927 clr r25
202 /* epilogue: frame size=0 */
203 0078 0895 ret
204 /* epilogue end (size=1) */
205 /* function ADCControlInit size 20 (19) */
210 .global ADCBindPort
212 ADCBindPort:
214 .LM25:
215 /* prologue: frame size=0 */
216 007a 1F93 push r17
217 007c CF93 push r28
218 /* prologue end (size=2) */
219 007e C82F mov r28,r24
220 0080 162F mov r17,r22
222 .LM26:
223 0082 8C30 cpi r24,lo8(12)
224 0084 90F4 brsh .L12
226 .LM27:
227 0086 8A30 cpi r24,lo8(10)
228 0088 81F0 breq .L12
229 008a 8B30 cpi r24,lo8(11)
230 008c 71F0 breq .L12
232 .LM28:
233 008e 0E94 0000 call ADCHPLInitPortmap
234 .LBB6:
236 .LM29:
237 0092 0E94 0000 call AtomicStart
239 .LM30:
240 0096 EC2F mov r30,r28
241 0098 FF27 clr r31
242 009a E050 subi r30,lo8(-(adcPortmap))
243 009c F040 sbci r31,hi8(-(adcPortmap))
244 009e 1083 st Z,r17
246 .LM31:
247 00a0 0E94 0000 call AtomicEnd
248 .LBE6:
250 .LM32:
251 00a4 81E0 ldi r24,lo8(1)
252 00a6 90E0 ldi r25,hi8(1)
253 00a8 02C0 rjmp .L11
254 .L12:
256 .LM33:
257 00aa 80E0 ldi r24,lo8(0)
258 00ac 90E0 ldi r25,hi8(0)
259 .L11:
260 /* epilogue: frame size=0 */
261 00ae CF91 pop r28
262 00b0 1F91 pop r17
263 00b2 0895 ret
264 /* epilogue end (size=3) */
265 /* function ADCBindPort size 29 (24) */
270 .global ADCDataReady
272 ADCDataReady:
274 .LM34:
275 /* prologue: frame size=0 */
276 /* prologue end (size=0) */
278 .LM35:
279 00b4 282F mov r18,r24
280 00b6 3327 clr r19
281 00b8 2130 cpi r18,1
282 00ba 3105 cpc r19,__zero_reg__
283 00bc 71F0 breq .L18
285 .LM36:
286 00be 2230 cpi r18,2
287 00c0 3105 cpc r19,__zero_reg__
288 00c2 1CF4 brge .L20
289 00c4 232B or r18,r19
290 00c6 29F0 breq .L16
291 00c8 0AC0 rjmp .L19
292 .L20:
293 00ca 2230 cpi r18,2
294 00cc 3105 cpc r19,__zero_reg__
295 00ce 29F0 breq .L18
296 00d0 06C0 rjmp .L19
297 .L16:
299 .LM37:
300 00d2 CB01 movw r24,r22
301 00d4 0E94 0000 call RadiocontrolRSSIADCDataReady
303 .LM38:
304 00d8 03C0 rjmp .L15
305 .L18:
307 .LM39:
308 00da 81E0 ldi r24,lo8(1)
310 .LM40:
311 00dc 01C0 rjmp .L15
312 .L19:
314 .LM41:
315 00de 80E0 ldi r24,lo8(0)
316 .L15:
318 .LM42:
319 00e0 9927 clr r25
320 /* epilogue: frame size=0 */
321 00e2 0895 ret
322 /* epilogue end (size=1) */
323 /* function ADCDataReady size 24 (23) */
328 .global ADCHPLSamplePort
330 ADCHPLSamplePort:
192:adc.c **** }
193:adc.c ****
194:adc.c **** void __attribute((signal)) __vector_21(void)
195:adc.c **** {
196:adc.c **** uint16_t data = * (volatile unsigned int *)(unsigned int )& * (volatile unsigned char *)(0x04 + 0x
197:adc.c ****
198:adc.c **** data &= 0x3ff;
199:adc.c **** * (volatile unsigned char *)(0x06 + 0x20) |= 1 << 4;
200:adc.c **** * (volatile unsigned char *)(0x06 + 0x20) &= ~(1 << 7);
201:adc.c **** EnableInterrupt();
202:adc.c **** ADCHPLDataReady(data);
203:adc.c **** }
204:adc.c ****
205:adc.c **** result_t ADCHPLSamplePort(uint8_t port)
206:adc.c **** {
332 .LM43:
333 /* prologue: frame size=0 */
334 00e4 1F93 push r17
335 /* prologue end (size=1) */
336 00e6 182F mov r17,r24
337 .LBB7:
207:adc.c **** { uint8_t atomicState = AtomicStart();
339 .LM44:
340 00e8 0E94 0000 call AtomicStart
208:adc.c **** {
209:adc.c **** * (volatile unsigned char *)(0x07 + 0x20) = adcPortmap[port] & 0x1F;
342 .LM45:
343 00ec E0E0 ldi r30,lo8(adcPortmap)
344 00ee F0E0 ldi r31,hi8(adcPortmap)
345 00f0 E10F add r30,r17
346 00f2 F11D adc r31,__zero_reg__
347 00f4 9081 ld r25,Z
348 00f6 9F71 andi r25,lo8(31)
349 00f8 97B9 out 39-0x20,r25
210:adc.c **** }
211:adc.c **** AtomicEnd(atomicState); }
351 .LM46:
352 00fa 0E94 0000 call AtomicEnd
353 .LBE7:
212:adc.c **** * (volatile unsigned char *)(0x06 + 0x20) |= 1 << 7;
355 .LM47:
356 00fe 379A sbi 38-0x20,7
213:adc.c **** * (volatile unsigned char *)(0x06 + 0x20) |= 1 << 6;
358 .LM48:
359 0100 369A sbi 38-0x20,6
214:adc.c ****
215:adc.c **** return SUCCESS;
216:adc.c **** }...
361 .LM49:
362 0102 81E0 ldi r24,lo8(1)
363 0104 90E0 ldi r25,hi8(1)
364 /* epilogue: frame size=0 */
365 0106 1F91 pop r17
366 0108 0895 ret
367 /* epilogue end (size=2) */
368 /* function ADCHPLSamplePort size 19 (16) */
372 .global ADCHPLDataReady
374 ADCHPLDataReady:
376 .LM50:
377 /* prologue: frame size=0 */
378 010a EF92 push r14
379 010c FF92 push r15
380 010e 0F93 push r16
381 0110 1F93 push r17
382 0112 CF93 push r28
383 0114 DF93 push r29
384 /* prologue end (size=6) */
385 0116 8C01 movw r16,r24
386 .LBB8:
388 .LM51:
389 0118 0E94 0000 call AtomicStart
390 011c E82E mov r14,r24
392 .LM52:
393 011e F090 0000 lds r15,ADCM_ReqPort
395 .LM53:
396 0122 CF2D mov r28,r15
397 0124 DD27 clr r29
398 0126 41E0 ldi r20,lo8(1)
399 0128 50E0 ldi r21,hi8(1)
400 012a 9A01 movw r18,r20
401 012c 0C2E mov r0,r28
402 012e 02C0 rjmp 2f
403 0130 220F 1: lsl r18
404 0132 331F rol r19
405 0134 0A94 2: dec r0
406 0136 E2F7 brpl 1b
407 0138 8091 0000 lds r24,ADCM_ContReqMask
408 013c 9091 0000 lds r25,(ADCM_ContReqMask)+1
409 0140 8223 and r24,r18
410 0142 9323 and r25,r19
411 0144 892B or r24,r25
412 0146 61F4 brne .L23
414 .LM54:
415 0148 2095 com r18
416 014a 3095 com r19
417 014c 8091 0000 lds r24,ADCM_ReqVector
418 0150 9091 0000 lds r25,(ADCM_ReqVector)+1
419 0154 8223 and r24,r18
420 0156 9323 and r25,r19
421 0158 9093 0000 sts (ADCM_ReqVector)+1,r25
422 015c 8093 0000 sts ADCM_ReqVector,r24
423 .L23:
425 .LM55:
426 0160 6091 0000 lds r22,ADCM_ReqVector
427 0164 7091 0000 lds r23,(ADCM_ReqVector)+1
428 0168 6115 cp r22,__zero_reg__
429 016a 7105 cpc r23,__zero_reg__
430 016c 11F1 breq .L24
431 016e FA01 movw r30,r20
432 0170 4091 0000 lds r20,ADCM_ReqPort
433 0174 5091 0000 lds r21,(ADCM_ReqPort)+1
434 .L25:
436 .LM56:
437 0178 4F5F subi r20,lo8(-(1))
438 017a 5F4F sbci r21,hi8(-(1))
440 .LM57:
441 017c 4C30 cpi r20,12
442 017e 5105 cpc r21,__zero_reg__
443 0180 11F0 breq .L28
444 0182 9A01 movw r18,r20
445 0184 02C0 rjmp .L29
446 .L28:
447 0186 20E0 ldi r18,lo8(0)
448 0188 30E0 ldi r19,hi8(0)
449 .L29:
450 018a A901 movw r20,r18
452 .LM58:
453 018c CF01 movw r24,r30
454 018e 022E mov r0,r18
455 0190 02C0 rjmp 2f
456 0192 880F 1: lsl r24
457 0194 991F rol r25
458 0196 0A94 2: dec r0
459 0198 E2F7 brpl 1b
460 019a 8623 and r24,r22
461 019c 9723 and r25,r23
462 019e 892B or r24,r25
463 01a0 59F3 breq .L25
464 01a2 3093 0000 sts (ADCM_ReqPort)+1,r19
465 01a6 2093 0000 sts ADCM_ReqPort,r18
467 .LM59:
468 01aa 8091 0000 lds r24,ADCM_ReqPort
469 01ae 0E94 0000 call ADCHPLSamplePort
470 .L24:
472 .LM60:
473 01b2 8E2D mov r24,r14
474 01b4 0E94 0000 call AtomicEnd
475 .LBE8:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -