📄 timer3.lst
字号:
386 00ac 65E0 ldi r22,lo8(5)
387 00ae 02C0 rjmp .L8
388 .L6:
81:timer3.c **** else
82:timer3.c **** Timer3_setIntervalAndScale(halfsymbols-65535, 0x5);
390 .LM28:
391 00b0 65E0 ldi r22,lo8(5)
392 00b2 0196 adiw r24,1
393 .L8:
394 00b4 0E94 0000 call Timer3_setIntervalAndScale
395 00b8 0895 ret
396 /* epilogue: frame size=0 */
397 00ba 0895 ret
398 /* epilogue end (size=1) */
399 /* function Timer3_sethalfsymbol size 22 (21) */
404 .global Timer3_acquireInterval
406 Timer3_acquireInterval:
83:timer3.c **** }
84:timer3.c **** //供高层调用获得下一次定时的比较寄存器应当设置的值
85:timer3.c **** uint32_t Timer3_acquireInterval(uint16_t interval)
86:timer3.c **** {
408 .LM29:
409 /* prologue: frame size=0 */
410 /* prologue end (size=0) */
87:timer3.c **** uint32_t temp;
88:timer3.c **** uint16_t tcnt_3;
89:timer3.c **** tcnt_3=TCNT3;
412 .LM30:
413 00bc 2091 8800 lds r18,136
414 00c0 3091 8900 lds r19,(136)+1
90:timer3.c **** temp=(uint32_t)tcnt_3+(((uint32_t)interval)<<1);
416 .LM31:
417 00c4 4427 clr r20
418 00c6 5527 clr r21
419 00c8 AA27 clr r26
420 00ca BB27 clr r27
421 00cc 880F lsl r24
422 00ce 991F rol r25
423 00d0 AA1F rol r26
424 00d2 BB1F rol r27
425 00d4 280F add r18,r24
426 00d6 391F adc r19,r25
427 00d8 4A1F adc r20,r26
428 00da 5B1F adc r21,r27
91:timer3.c **** // (temp>=65535) temp=temp-65535;
92:timer3.c **** return (temp);
93:timer3.c **** }
430 .LM32:
431 00dc CA01 movw r24,r20
432 00de B901 movw r22,r18
433 /* epilogue: frame size=0 */
434 00e0 0895 ret
435 /* epilogue end (size=1) */
436 /* function Timer3_acquireInterval size 19 (18) */
441 .global Timer3_adjustInterval
443 Timer3_adjustInterval:
94:timer3.c **** uint8_t Timer3_adjustInterval(uint16_t interval)
95:timer3.c **** {
445 .LM33:
446 /* prologue: frame size=0 */
447 00e2 0F93 push r16
448 00e4 1F93 push r17
449 /* prologue end (size=2) */
450 00e6 8C01 movw r16,r24
451 .LBB4:
96:timer3.c **** { os_atomic_t _nesc_atomic = os_atomic_start();
453 .LM34:
454 00e8 0E94 0000 call os_atomic_start
97:timer3.c **** {
98:timer3.c **** /*if(interval<65536)*/
99:timer3.c **** OCR3A = interval;//this is the scale
456 .LM35:
457 00ec 1093 8700 sts (134)+1,r17
458 00f0 0093 8600 sts 134,r16
100:timer3.c **** /* else
101:timer3.c **** OCR3A =interval-65535;*/
102:timer3.c **** }
103:timer3.c **** os_atomic_end(_nesc_atomic); }
460 .LM36:
461 00f4 0E94 0000 call os_atomic_end
462 .LBE4:
104:timer3.c **** return 1;
105:timer3.c **** }
106:timer3.c **** //供底层调用获得定时器比较寄存器应当设置的值,下一个定时任务
464 .LM37:
465 00f8 81E0 ldi r24,lo8(1)
466 00fa 90E0 ldi r25,hi8(1)
467 /* epilogue: frame size=0 */
468 00fc 1F91 pop r17
469 00fe 0F91 pop r16
470 0100 0895 ret
471 /* epilogue end (size=3) */
472 /* function Timer3_adjustInterval size 16 (11) */
475 .global Timer3_getnextInterval
477 Timer3_getnextInterval:
107:timer3.c **** uint16_t Timer3_getnextInterval(void)
108:timer3.c **** {
109:timer3.c **** return timer3queue_getnextinterval();
479 .LM38:
480 /* prologue: frame size=0 */
481 /* prologue end (size=0) */
110:timer3.c **** }...
483 .LM39:
484 0102 0E94 0000 call timer3queue_getnextinterval
485 /* epilogue: frame size=0 */
486 0106 0895 ret
487 /* epilogue end (size=1) */
488 /* function Timer3_getnextInterval size 3 (2) */
490 .comm OS_queue,16,1
491 .comm OS_sched_full,1,1
492 .comm OS_sched_free,1,1
493 .comm currentTime,2,1
494 .comm head_of_systimer_queue,2,1
495 .comm timestamp_H,2,1
496 .comm mState,4,1
497 .comm setIntervalFlag,1,1
498 .comm mScale,1,1
499 .comm mInterval,1,1
500 .comm queue_head,1,1
501 .comm queue_tail,1,1
502 .comm queue_size,1,1
503 .comm queue,3,1
504 .comm mTimerList,33,1
505 .comm cc2420_bramspi,1,1
506 .comm cc2420_rambuf,2,1
507 .comm cc2420_ramlen,1,1
508 .comm cc2420_ramaddr,2,1
509 .comm cc2420fifo_bspi,1,1
510 .comm cc2420fifo_txbuf,2,1
511 .comm cc2420fifo_txlength,1,1
512 .comm cc2420_rxbuf,4,1
513 .comm cc2420_rxlength,1,1
514 .comm cc2420_rxbuf_now,2,1
515 .comm cc2420_rxlength_now,1,1
516 .comm cc2420_rxbufuse,1,1
517 .comm rfpackernum,1,1
518 .comm cc2420_rxflag,1,1
519 .comm cc2420_currentparameters,28,1
520 .comm receive_timestamp,4,1
521 .comm send_timestamp,4,1
522 .comm cc2420_stateRadio,1,1
523 .comm cc2420_LocalAddr,2,1
524 .comm ieee_address,8,1
525 .comm GTSDirectionMask,1,1
526 .comm phy_channel_state,1,1
527 .comm rxbuf_flag,1,1
528 .comm ppib,3,1
529 .comm SENSOR_DATA_VALUE,20,1
530 .comm ADC_INTERRUPT_FLAG,1,1
572 .text
574 Letext:
575 /* File "timer3.c": code 132 = 0x0084 ( 115), prologues 5, epilogues 12 */
DEFINED SYMBOLS
*ABS*:00000000 timer3.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:225 .text:00000000 Timer3_intDisable
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:256 .text:0000001e Timer3_fire
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:278 .text:00000024 Timer3_setIntervalAndScale
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:361 .text:00000090 Timer3_sethalfsymbol
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:406 .text:000000bc Timer3_acquireInterval
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:443 .text:000000e2 Timer3_adjustInterval
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:477 .text:00000102 Timer3_getnextInterval
*COM*:00000010 OS_queue
*COM*:00000001 OS_sched_full
*COM*:00000001 OS_sched_free
*COM*:00000002 currentTime
*COM*:00000002 head_of_systimer_queue
*COM*:00000002 timestamp_H
*COM*:00000004 mState
*COM*:00000001 setIntervalFlag
*COM*:00000001 mScale
*COM*:00000001 mInterval
*COM*:00000001 queue_head
*COM*:00000001 queue_tail
*COM*:00000001 queue_size
*COM*:00000003 queue
*COM*:00000021 mTimerList
*COM*:00000001 cc2420_bramspi
*COM*:00000002 cc2420_rambuf
*COM*:00000001 cc2420_ramlen
*COM*:00000002 cc2420_ramaddr
*COM*:00000001 cc2420fifo_bspi
*COM*:00000002 cc2420fifo_txbuf
*COM*:00000001 cc2420fifo_txlength
*COM*:00000004 cc2420_rxbuf
*COM*:00000001 cc2420_rxlength
*COM*:00000002 cc2420_rxbuf_now
*COM*:00000001 cc2420_rxlength_now
*COM*:00000001 cc2420_rxbufuse
*COM*:00000001 rfpackernum
*COM*:00000001 cc2420_rxflag
*COM*:0000001c cc2420_currentparameters
*COM*:00000004 receive_timestamp
*COM*:00000004 send_timestamp
*COM*:00000001 cc2420_stateRadio
*COM*:00000002 cc2420_LocalAddr
*COM*:00000008 ieee_address
*COM*:00000001 GTSDirectionMask
*COM*:00000001 phy_channel_state
*COM*:00000001 rxbuf_flag
*COM*:00000003 ppib
*COM*:00000014 SENSOR_DATA_VALUE
*COM*:00000001 ADC_INTERRUPT_FLAG
C:\DOCUME~1\ADMINI~2\LOCALS~1\Temp/cc8Saaaa.s:574 .text:00000108 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
os_atomic_start
os_atomic_end
timer3queue_interrupt
error
timer3queue_getnextinterval
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -