📄 atmega16.lis
字号:
00A0 ; //Initialise extern variable
00A0 ; dd_data_port_state = DATA_PORT_IDLE;
00A0 80937A00 sts _dd_data_port_state,R24
00A4 .dbline 129
00A4 ; dd_data_packet_phase = PACKET_PHASE_IDLE;
00A4 80937900 sts _dd_data_packet_phase,R24
00A8 .dbline 130
00A8 ; uart_buffer_tx_idx = 0;
00A8 20921400 sts _uart_buffer_tx_idx,R2
00AC .dbline 131
00AC ; uart_buffer_rx_idx = 0;
00AC 20921300 sts _uart_buffer_rx_idx,R2
00B0 .dbline 132
00B0 ; dd_port_data_rx_payload_length = 0;
00B0 20927D00 sts _dd_port_data_rx_payload_length,R2
00B4 .dbline 133
00B4 ; p_active_uart_buffer = 0;
00B4 3324 clr R3
00B6 30921200 sts _p_active_uart_buffer+1,R3
00BA 20921100 sts _p_active_uart_buffer,R2
00BE .dbline 134
00BE ; dd_uart_host_state = UART_PORT_RECEIVING;
00BE 83E0 ldi R24,3
00C0 80930E00 sts _dd_uart_host_state,R24
00C4 .dbline 136
00C4 ;
00C4 ; uart_rx_payload_length = UART_PAYLOAD_LENGTH;
00C4 8CEF ldi R24,252
00C6 80931000 sts _uart_rx_payload_length,R24
00CA .dbline 137
00CA ; PORTA &= ~(1<<RFMD_EN);
00CA DE98 cbi 0x1b,6
00CC .dbline -2
00CC .dbline 138
00CC ; }
00CC L10:
00CC .dbline 0 ; func end
00CC 0895 ret
00CE .dbend
00CE .dbfunc e dd_short_delay _dd_short_delay fV
00CE ; count -> R16
.even
00CE _dd_short_delay::
00CE .dbline -1
00CE .dbline 152
00CE ;
00CE ;
00CE ; /*****************************************************************************
00CE ; * Function: dd_short_delay
00CE ; * Parameters: Number of units to wait (1 unit = 256/Fcore = 1/24576)
00CE ; * Returns: Nothing
00CE ; * ===========================================================================
00CE ; * Description:
00CE ; * Short delay function based on high byte of timer 0
00CE ; * (Timer 0 must be configured as a 16 bit timer clocked at CPU core rate)
00CE ; * Max delay = 10.4ms
00CE ; ****************************************************************************/
00CE ; void dd_short_delay(unsigned char count)
00CE ; {
00CE 14C0 xjmp L13
00D0 L12:
00D0 .dbline 154
00D0 .dbline 155
00D0 0000 nop
00D2 .dbline 156
00D2 0000 nop
00D4 .dbline 157
00D4 0000 nop
00D6 .dbline 158
00D6 0000 nop
00D8 .dbline 159
00D8 0000 nop
00DA .dbline 160
00DA 0000 nop
00DC .dbline 161
00DC 0000 nop
00DE .dbline 162
00DE 0000 nop
00E0 .dbline 163
00E0 0000 nop
00E2 .dbline 164
00E2 0000 nop
00E4 .dbline 165
00E4 0000 nop
00E6 .dbline 166
00E6 0000 nop
00E8 .dbline 167
00E8 0000 nop
00EA .dbline 168
00EA 0000 nop
00EC .dbline 169
00EC 0000 nop
00EE .dbline 170
00EE 0000 nop
00F0 .dbline 171
00F0 0000 nop
00F2 .dbline 172
00F2 0000 nop
00F4 .dbline 173
00F4 0000 nop
00F6 .dbline 174
00F6 0000 nop
00F8 .dbline 176
00F8 L13:
00F8 .dbline 153
00F8 ; while (count-- >0)
00F8 202E mov R2,R16
00FA 3324 clr R3
00FC 0150 subi R16,1
00FE 4424 clr R4
0100 4214 cp R4,R2
0102 30F3 brlo L12
0104 .dbline -2
0104 .dbline 178
0104 ; {
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ; _NOP();
0104 ;
0104 ; }
0104 ;
0104 ; }
0104 L11:
0104 .dbline 0 ; func end
0104 0895 ret
0106 .dbsym r count 16 c
0106 .dbend
0106 .dbfunc e my_delay _my_delay fV
0106 ; length -> y+4
.even
0106 _my_delay::
0106 0E940000 xcall push_arg4
010A 0E940000 xcall push_gset2
010E .dbline -1
010E .dbline 181
010E ;
010E ; void my_delay(long length)
010E ; {
010E 12C0 xjmp L17
0110 L16:
0110 .dbline 182
0110 41E0 ldi R20,1
0112 50E0 ldi R21,0
0114 60E0 ldi R22,0
0116 70E0 ldi R23,0
0118 FE01 movw R30,R28
011A 2480 ldd R2,z+4
011C 3580 ldd R3,z+5
011E 4680 ldd R4,z+6
0120 5780 ldd R5,z+7
0122 241A sub R2,R20
0124 350A sbc R3,R21
0126 460A sbc R4,R22
0128 570A sbc R5,R23
012A FE01 movw R30,R28
012C 2482 std z+4,R2
012E 3582 std z+5,R3
0130 4682 std z+6,R4
0132 5782 std z+7,R5
0134 L17:
0134 .dbline 182
0134 ; while (length >=0) length--;
0134 40E0 ldi R20,0
0136 50E0 ldi R21,0
0138 60E0 ldi R22,0
013A 70E0 ldi R23,0
013C FE01 movw R30,R28
013E 2480 ldd R2,z+4
0140 3580 ldd R3,z+5
0142 4680 ldd R4,z+6
0144 5780 ldd R5,z+7
0146 2416 cp R2,R20
0148 3506 cpc R3,R21
014A 4606 cpc R4,R22
014C 5706 cpc R5,R23
014E 04F7 brge L16
0150 .dbline -2
0150 .dbline 183
0150 ; }
0150 L15:
0150 0E940000 xcall pop_gset2
0154 2496 adiw R28,4
0156 .dbline 0 ; func end
0156 0895 ret
0158 .dbsym l length 4 L
0158 .dbend
0158 .dbfunc e my_delay_1 _my_delay_1 fV
0158 ; length -> R16,R17
.even
0158 _my_delay_1::
0158 .dbline -1
0158 .dbline 187
0158 ;
0158 ;
0158 ; void my_delay_1(unsigned int length)
0158 ; {
0158 14C0 xjmp L21
015A L20:
015A .dbline 189
015A .dbline 190
015A 0000 nop
015C .dbline 191
015C 0000 nop
015E .dbline 192
015E 0000 nop
0160 .dbline 193
0160 0000 nop
0162 .dbline 194
0162 0000 nop
0164 .dbline 195
0164 0000 nop
0166 .dbline 196
0166 0000 nop
0168 .dbline 197
0168 0000 nop
016A .dbline 198
016A 0000 nop
016C .dbline 199
016C 0000 nop
016E .dbline 200
016E 0000 nop
0170 .dbline 201
0170 0000 nop
0172 .dbline 202
0172 0000 nop
0174 .dbline 203
0174 0000 nop
0176 .dbline 204
0176 0000 nop
0178 .dbline 205
0178 0000 nop
017A .dbline 206
017A 0000 nop
017C .dbline 207
017C 0000 nop
017E .dbline 208
017E 0000 nop
0180 .dbline 209
0180 0000 nop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -