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