📄 main.lst
字号:
\ 00000094 CFEA RJMP ??main_3
64 SW_UART_Tx(' '); //Next Line
\ ??main_4:
\ 00000096 E200 LDI R16, 32
\ 00000098 .... RCALL SW_UART_Tx
65 SW_UART_Tx(0x0d);
\ 0000009A E00D LDI R16, 13
\ 0000009C .... RCALL SW_UART_Tx
\ 0000009E CFCB RJMP ??main_0
\ 000000A0 REQUIRE _A_TCCR2B
\ 000000A0 REQUIRE _A_PRR
\ 000000A0 REQUIRE _A_CLKPR
\ 000000A0 REQUIRE _A_WDTCSR
66 }
67 }
68
69
70 }
71
72 //SIGNAL(SIG_OVERFLOW2)
73 #pragma vector=TIMER2_OVF_vect
74
\ In segment CODE, align 2, keep-with-next
75 __interrupt void TMR2irq( void )
\ TMR2irq:
76
77 {
\ 00000000 93FA ST -Y, R31
\ 00000002 93EA ST -Y, R30
\ 00000004 931A ST -Y, R17
\ 00000006 930A ST -Y, R16
\ 00000008 B71F IN R17, 0x3F
78 if(ShowDebug_Cnt!=0)
\ 0000000A 9100.... LDS R16, ShowDebug_Cnt
\ 0000000E 2300 TST R16
\ 00000010 F029 BREQ ??TMR2irq_0
79 ShowDebug_Cnt--;
\ 00000012 .... LDI R30, LOW(ShowDebug_Cnt)
\ 00000014 .... LDI R31, (ShowDebug_Cnt) >> 8
\ 00000016 8100 LD R16, Z
\ 00000018 950A DEC R16
\ 0000001A 8300 ST Z, R16
80 }
\ ??TMR2irq_0:
\ 0000001C BF1F OUT 0x3F, R17
\ 0000001E 9109 LD R16, Y+
\ 00000020 9119 LD R17, Y+
\ 00000022 91E9 LD R30, Y+
\ 00000024 91F9 LD R31, Y+
\ 00000026 9518 RETI
81
82 //SIGNAL(SIG_ADC)
83 #pragma vector=ADC_vect
84
\ In segment CODE, align 2, keep-with-next
85 __interrupt void ADCirq( void )
\ ADCirq:
86 {
\ 00000000 93FA ST -Y, R31
\ 00000002 93EA ST -Y, R30
\ 00000004 920A ST -Y, R0
\ 00000006 937A ST -Y, R23
\ 00000008 936A ST -Y, R22
\ 0000000A 935A ST -Y, R21
\ 0000000C 934A ST -Y, R20
\ 0000000E 933A ST -Y, R19
\ 00000010 932A ST -Y, R18
\ 00000012 931A ST -Y, R17
\ 00000014 930A ST -Y, R16
\ 00000016 B60F IN R0, 0x3F
87 SumReg += ADC; //Add result to common sum
\ 00000018 91000078 LDS R16, 120
\ 0000001C 91100079 LDS R17, 121
\ 00000020 E020 LDI R18, 0
\ 00000022 E030 LDI R19, 0
\ 00000024 .... LDI R30, LOW(SumReg)
\ 00000026 .... LDI R31, (SumReg) >> 8
\ 00000028 8140 LD R20, Z
\ 0000002A 8151 LDD R21, Z+1
\ 0000002C 8162 LDD R22, Z+2
\ 0000002E 8173 LDD R23, Z+3
\ 00000030 0F40 ADD R20, R16
\ 00000032 1F51 ADC R21, R17
\ 00000034 1F62 ADC R22, R18
\ 00000036 1F73 ADC R23, R19
\ 00000038 8340 ST Z, R20
\ 0000003A 8351 STD Z+1, R21
\ 0000003C 8362 STD Z+2, R22
\ 0000003E 8373 STD Z+3, R23
88 if(--SampCnt == 0) //Check number of samples
\ 00000040 9100.... LDS R16, SampCnt
\ 00000044 950A DEC R16
\ 00000046 9300.... STS SampCnt, R16
\ 0000004A 2300 TST R16
\ 0000004C F439 BRNE ??ADCirq_0
89 {
90 ADC_Done=1; //Measuring is complete
\ 0000004E E001 LDI R16, 1
\ 00000050 9300.... STS ADC_Done, R16
91 ADCSRA = 0x80; //Stop ADC
\ 00000054 E800 LDI R16, 128
\ 00000056 9300007A STS 122, R16
\ 0000005A C005 RJMP ??ADCirq_1
92 }
93 else
94 {
95 ADCSRA |= 0x40; //Start next ADC cycle
\ ??ADCirq_0:
\ 0000005C 9100007A LDS R16, 122
\ 00000060 6400 ORI R16, 0x40
\ 00000062 9300007A STS 122, R16
96 }
97 }
\ ??ADCirq_1:
\ 00000066 BE0F OUT 0x3F, R0
\ 00000068 9109 LD R16, Y+
\ 0000006A 9119 LD R17, Y+
\ 0000006C 9129 LD R18, Y+
\ 0000006E 9139 LD R19, Y+
\ 00000070 9149 LD R20, Y+
\ 00000072 9159 LD R21, Y+
\ 00000074 9169 LD R22, Y+
\ 00000076 9179 LD R23, Y+
\ 00000078 9009 LD R0, Y+
\ 0000007A 91E9 LD R30, Y+
\ 0000007C 91F9 LD R31, Y+
\ 0000007E 9518 RETI
\ 00000080 REQUIRE _A_ADCSRA
\ 00000080 REQUIRE _A_ADC
\ In segment INTVEC, offset 0x24, root
\ `??TMR2irq??INTVEC 36`:
\ 00000024 ........ JMP TMR2irq
\ In segment INTVEC, offset 0x54, root
\ `??ADCirq??INTVEC 84`:
\ 00000054 ........ JMP ADCirq
\ In segment NEAR_ID, align 1, keep-with-next, root
\ `?<Initializer for Channel_Tbl>`:
\ 00000000 414240 DB 66, 65, 64
\ In segment NEAR_ID, align 1, keep-with-next, root
\ `?<Initializer for Axis_Name>`:
\ 00000000 59585A DB 88, 89, 90
98
99 //SIGNAL(__vector_default)
100 //#pragma vector=default
101
Maximum stack usage in bytes:
Function CSTACK RSTACK
-------- ------ ------
ADC_Init 0 2
ADCirq 11 2
Get_ADC 5 4
IO_Ports_Init 0 2
MMA7361_Init 0 2
Put_Axis 8 4
-> SW_UART_Tx 8 2
SW_UART_Tx 0 2
Show_Hex 4 4
-> SW_UART_Tx 4 2
TMR2irq 4 2
Timers_Init 0 2
UART_Init 0 2
UART_Rx 0 2
UART_Tx 0 2
main 2 2
-> IO_Ports_Init 2 2
-> Timers_Init 2 2
-> ADC_Init 2 2
-> MMA7361_Init 2 2
-> Get_ADC 2 2
-> SW_UART_Tx 2 2
-> Put_Axis 2 2
-> SW_UART_Tx 2 2
-> SW_UART_Tx 2 2
-> SW_UART_Tx 2 2
Segment part sizes:
Function/Label Bytes
-------------- -----
_A_UDR0 1
_A_UBRR0 2
_A_UCSR0C 1
_A_UCSR0B 1
_A_UCSR0A 1
_A_TWAMR 1
_A_TWCR 1
_A_TWDR 1
_A_TWAR 1
_A_TWSR 1
_A_TWBR 1
_A_ASSR 1
_A_OCR2B 1
_A_OCR2A 1
_A_TCNT2 1
_A_TCCR2B 1
_A_TCCR2A 1
_A_OCR1B 2
_A_OCR1A 2
_A_ICR1 2
_A_TCNT1 2
_A_TCCR1C 1
_A_TCCR1B 1
_A_TCCR1A 1
_A_DIDR1 1
_A_DIDR0 1
_A_ADMUX 1
_A_ADCSRB 1
_A_ADCSRA 1
_A_ADC 2
_A_TIMSK2 1
_A_TIMSK1 1
_A_TIMSK0 1
_A_PCMSK2 1
_A_PCMSK1 1
_A_PCMSK0 1
_A_EICRA 1
_A_PCICR 1
_A_OSCCAL 1
_A_PRR 1
_A_CLKPR 1
_A_WDTCSR 1
_A_SREG 1
_A_SP 2
_A_SPMCSR 1
_A_MCUCR 1
_A_MCUSR 1
_A_SMCR 1
_A_ACSR 1
_A_SPDR 1
_A_SPSR 1
_A_SPCR 1
_A_GPIOR2 1
_A_GPIOR1 1
_A_OCR0B 1
_A_OCR0A 1
_A_TCNT0 1
_A_TCCR0B 1
_A_TCCR0A 1
_A_GTCCR 1
_A_EEAR 2
_A_EEDR 1
_A_EECR 1
_A_GPIOR0 1
_A_EIMSK 1
_A_EIFR 1
_A_PCIFR 1
_A_TIFR2 1
_A_TIFR1 1
_A_TIFR0 1
_A_PORTD 1
_A_DDRD 1
_A_PIND 1
_A_PORTC 1
_A_DDRC 1
_A_PINC 1
_A_PORTB 1
_A_DDRB 1
_A_PINB 1
Channel_Tbl 3
Axis_Name 3
Temp 1
Temp1 1
ADC_Done 1
ShowDebug_Cnt 1
Axis_Data 6
SumReg 4
SampCnt 1
Timers_Init 80
IO_Ports_Init 28
ADC_Init 30
MMA7361_Init 4
Get_ADC 126
SW_UART_Tx 60
Show_Hex 46
Put_Axis 138
UART_Init 38
??UART_Tx_0 16
??UART_Rx_0 16
main 160
TMR2irq 40
ADCirq 128
??TMR2irq??INTVEC 36 4
??ADCirq??INTVEC 84 4
?<Initializer for Channel_Tbl> 3
?<Initializer for Axis_Name> 3
Others 12
87 bytes in segment ABSOLUTE
910 bytes in segment CODE
12 bytes in segment INITTAB
8 bytes in segment INTVEC
6 bytes in segment NEAR_I
6 bytes in segment NEAR_ID
15 bytes in segment NEAR_Z
916 bytes of CODE memory (+ 20 bytes shared)
21 bytes of DATA memory (+ 87 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -