📄 text1.lst
字号:
(0039) void init_adc(void)
(0040) {
(0041) DDRA&=~BIT(PA0);
_init_adc:
00212 98D0 CBI 0x1A,0
(0042) PORTA&=~BIT(PA0);
00213 98D8 CBI 0x1B,0
(0043) ADCSRA = 0x00;
00214 2422 CLR R2
00215 B826 OUT 0x06,R2
(0044) ADMUX =(1<<REFS0)|(adc_mux&0x1f); //AVCC,AREF引脚加滤波电容,单端输入ADC0
00216 9180 0071 LDS R24,adc_mux
00218 718F ANDI R24,0x1F
00219 6480 ORI R24,0x40
0021A B987 OUT 0x07,R24
(0045) ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
0021B EC8E LDI R24,0xCE
0021C B986 OUT 0x06,R24
0021D 9508 RET
_adc_isr:
temp --> R12
sum --> R10
i --> R20
0021E 920A ST -Y,R0
0021F 921A ST -Y,R1
00220 922A ST -Y,R2
00221 923A ST -Y,R3
00222 924A ST -Y,R4
00223 925A ST -Y,R5
00224 926A ST -Y,R6
00225 927A ST -Y,R7
00226 928A ST -Y,R8
00227 929A ST -Y,R9
00228 930A ST -Y,R16
00229 931A ST -Y,R17
0022A 932A ST -Y,R18
0022B 933A ST -Y,R19
0022C 938A ST -Y,R24
0022D 939A ST -Y,R25
0022E 93AA ST -Y,R26
0022F 93BA ST -Y,R27
00230 93EA ST -Y,R30
00231 93FA ST -Y,R31
00232 B60F IN R0,0x3F
00233 920A ST -Y,R0
00234 940E 02F1 CALL push_xgset303C
(0046) }
(0047)
(0048) /******************************************************************************/
(0049)
(0050) /******************************************************************************/
(0051) //ADC完成中断
(0052) //#pragma vector = interrupt_handler adc_isr:iv_ADC
(0053) // define the interrupt handler
(0054)
(0055) #pragma interrupt_handler adc_isr:15
(0056) void adc_isr(void)
(0057) {
(0058) unsigned char i;
(0059) unsigned int temp,sum=0;
00236 24AA CLR R10
00237 24BB CLR R11
(0060) temp=ADCL;
00238 B0C4 IN R12,0x04
00239 24DD CLR R13
(0061) temp=temp+ADCH*256;
0023A B125 IN R18,0x05
0023B 2733 CLR R19
0023C E000 LDI R16,0
0023D E011 LDI R17,1
0023E 940E 02B7 CALL empy16s
00240 0EC0 ADD R12,R16
00241 1ED1 ADC R13,R17
(0062) for(i=1;i<MaxAdcBufSize-1;i++)
00242 E041 LDI R20,1
00243 C01E RJMP 0x0262
(0063) {
(0064) ADCBuffer[i]=ADCBuffer[i+1];
00244 E78C LDI R24,0x7C
00245 E090 LDI R25,0
00246 2FE4 MOV R30,R20
00247 27FF CLR R31
00248 9631 ADIW R30,1
00249 0FEE LSL R30
0024A 1FFF ROL R31
0024B 0FE8 ADD R30,R24
0024C 1FF9 ADC R31,R25
0024D 8020 LD R2,Z
0024E 8031 LDD R3,Z+1
0024F 2FE4 MOV R30,R20
00250 27FF CLR R31
00251 0FEE LSL R30
00252 1FFF ROL R31
00253 0FE8 ADD R30,R24
00254 1FF9 ADC R31,R25
00255 8231 STD Z+1,R3
00256 8220 ST Z,R2
(0065) sum+=ADCBuffer[i];
00257 2FE4 MOV R30,R20
00258 27FF CLR R31
00259 0FEE LSL R30
0025A 1FFF ROL R31
0025B 0FE8 ADD R30,R24
0025C 1FF9 ADC R31,R25
0025D 8020 LD R2,Z
0025E 8031 LDD R3,Z+1
0025F 0CA2 ADD R10,R2
00260 1CB3 ADC R11,R3
00261 9543 INC R20
00262 3048 CPI R20,0x8
00263 F300 BCS 0x0244
(0066) }
(0067) ADCBuffer[MaxAdcBufSize-1]=temp;
00264 92D0 008D STS adc.c:ADCBuffer+17,R13
00266 92C0 008C STS adc.c:ADCBuffer+16,R12
(0068) sum+=ADCBuffer[MaxAdcBufSize-1];
00268 9020 008C LDS R2,adc.c:ADCBuffer+16
0026A 9030 008D LDS R3,adc.c:ADCBuffer+17
0026C 0CA2 ADD R10,R2
0026D 1CB3 ADC R11,R3
(0069) ADCBuffer[0]=(sum>>AdcBufStep);
0026E 0115 MOVW R2,R10
0026F 9436 LSR R3
00270 9427 ROR R2
00271 9436 LSR R3
00272 9427 ROR R2
00273 9436 LSR R3
00274 9427 ROR R2
00275 9230 007D STS adc.c:ADCBuffer+1,R3
00277 9220 007C STS adc.c:ADCBuffer,R2
(0070)
(0071) ad_result();
00279 DF1D RCALL _ad_result
(0072)
(0073) ADMUX|=(adc_mux&0x1f)|(1<<REFS0);
0027A 9180 0071 LDS R24,adc_mux
0027C 718F ANDI R24,0x1F
0027D 6480 ORI R24,0x40
0027E B027 IN R2,0x07
0027F 2A28 OR R2,R24
00280 B827 OUT 0x07,R2
(0074) ADCSRA|=(1<<ADSC);//启动AD转换
FILE: <library>
00281 9A36 SBI 0x06,6
00282 940E 02F8 CALL pop_xgset303C
00284 9009 LD R0,Y+
00285 BE0F OUT 0x3F,R0
00286 91F9 LD R31,Y+
00287 91E9 LD R30,Y+
00288 91B9 LD R27,Y+
00289 91A9 LD R26,Y+
0028A 9199 LD R25,Y+
0028B 9189 LD R24,Y+
0028C 9139 LD R19,Y+
0028D 9129 LD R18,Y+
0028E 9119 LD R17,Y+
0028F 9109 LD R16,Y+
00290 9099 LD R9,Y+
00291 9089 LD R8,Y+
00292 9079 LD R7,Y+
00293 9069 LD R6,Y+
00294 9059 LD R5,Y+
00295 9049 LD R4,Y+
00296 9039 LD R3,Y+
00297 9029 LD R2,Y+
00298 9019 LD R1,Y+
00299 9009 LD R0,Y+
0029A 9518 RETI
mod16u:
0029B 9468 BSET 6
0029C C001 RJMP xdiv16u
div16u:
0029D 94E8 BCLR 6
xdiv16u:
0029E 92EA ST -Y,R14
0029F 92FA ST -Y,R15
002A0 938A ST -Y,R24
002A1 24EE CLR R14
002A2 24FF CLR R15
002A3 E180 LDI R24,0x10
002A4 0F00 LSL R16
002A5 1F11 ROL R17
002A6 1CEE ROL R14
002A7 1CFF ROL R15
002A8 16E2 CP R14,R18
002A9 06F3 CPC R15,R19
002AA F018 BCS 0x02AE
002AB 1AE2 SUB R14,R18
002AC 0AF3 SBC R15,R19
002AD 9503 INC R16
002AE 958A DEC R24
002AF F7A1 BNE 0x02A4
002B0 F416 BRTC 0x02B3
002B1 2D0E MOV R16,R14
002B2 2D1F MOV R17,R15
002B3 9189 LD R24,Y+
002B4 90F9 LD R15,Y+
002B5 90E9 LD R14,Y+
002B6 9508 RET
empy16s:
002B7 920A ST -Y,R0
002B8 921A ST -Y,R1
002B9 938A ST -Y,R24
002BA 939A ST -Y,R25
002BB 9F02 MUL R16,R18
002BC 01C0 MOVW R24,R0
002BD 9F12 MUL R17,R18
002BE 0D90 ADD R25,R0
002BF 9F03 MUL R16,R19
002C0 0D90 ADD R25,R0
002C1 018C MOVW R16,R24
002C2 9199 LD R25,Y+
002C3 9189 LD R24,Y+
002C4 9019 LD R1,Y+
002C5 9009 LD R0,Y+
002C6 9508 RET
pop_xgset00FC:
002C7 90A9 LD R10,Y+
002C8 90B9 LD R11,Y+
002C9 90C9 LD R12,Y+
002CA 90D9 LD R13,Y+
002CB 90E9 LD R14,Y+
002CC 90F9 LD R15,Y+
002CD 9508 RET
push_xgsetF0FC:
002CE 937A ST -Y,R23
002CF 936A ST -Y,R22
push_xgset30FC:
002D0 935A ST -Y,R21
002D1 934A ST -Y,R20
push_xgset00FC:
002D2 92FA ST -Y,R15
002D3 92EA ST -Y,R14
push_xgset003C:
002D4 92DA ST -Y,R13
002D5 92CA ST -Y,R12
002D6 92BA ST -Y,R11
002D7 92AA ST -Y,R10
002D8 9508 RET
push_xgset300C:
002D9 935A ST -Y,R21
002DA 934A ST -Y,R20
002DB 92BA ST -Y,R11
002DC 92AA ST -Y,R10
002DD 9508 RET
pop_xgset300C:
002DE 90A9 LD R10,Y+
002DF 90B9 LD R11,Y+
002E0 9149 LD R20,Y+
002E1 9159 LD R21,Y+
002E2 9508 RET
push_xgsetF00C:
002E3 937A ST -Y,R23
002E4 936A ST -Y,R22
002E5 935A ST -Y,R21
002E6 934A ST -Y,R20
002E7 92BA ST -Y,R11
002E8 92AA ST -Y,R10
002E9 9508 RET
pop_xgsetF00C:
002EA 90A9 LD R10,Y+
002EB 90B9 LD R11,Y+
002EC 9149 LD R20,Y+
002ED 9159 LD R21,Y+
002EE 9169 LD R22,Y+
002EF 9179 LD R23,Y+
002F0 9508 RET
push_xgset303C:
002F1 935A ST -Y,R21
002F2 934A ST -Y,R20
002F3 92DA ST -Y,R13
002F4 92CA ST -Y,R12
002F5 92BA ST -Y,R11
002F6 92AA ST -Y,R10
002F7 9508 RET
pop_xgset303C:
002F8 90A9 LD R10,Y+
002F9 90B9 LD R11,Y+
002FA 90C9 LD R12,Y+
002FB 90D9 LD R13,Y+
002FC 9149 LD R20,Y+
002FD 9159 LD R21,Y+
002FE 9508 RET
neg32:
002FF 9500 COM R16
00300 9510 COM R17
00301 9520 COM R18
00302 9530 COM R19
00303 5F0F SUBI R16,0xFF
00304 4F1F SBCI R17,0xFF
00305 4F2F SBCI R18,0xFF
00306 4F3F SBCI R19,0xFF
00307 9508 RET
lpm32:
00308 93EA ST -Y,R30
00309 93FA ST -Y,R31
0030A 920A ST -Y,R0
0030B 2FE0 MOV R30,R16
0030C 2FF1 MOV R31,R17
0030D 95C8 LPM
0030E 2D00 MOV R16,R0
0030F 9631 ADIW R30,1
00310 95C8 LPM
00311 2D10 MOV R17,R0
00312 9631 ADIW R30,1
00313 95C8 LPM
00314 2D20 MOV R18,R0
00315 9631 ADIW R30,1
00316 95C8 LPM
00317 2D30 MOV R19,R0
00318 9009 LD R0,Y+
00319 91F9 LD R31,Y+
0031A 91E9 LD R30,Y+
0031B 9508 RET
lsr16:
0031C 2322 TST R18
0031D F021 BEQ 0x0322
0031E 9516 LSR R17
0031F 9507 ROR R16
00320 952A DEC R18
00321 CFFA RJMP lsr16
00322 9508 RET
fpint:
00323 924A ST -Y,R4
00324 925A ST -Y,R5
00325 926A ST -Y,R6
00326 938A ST -Y,R24
00327 940E 0423 CALL unpacku
00329 F111 BEQ 0x034C
0032A 2055 TST R5
0032B F0E2 BMI 0x0348
0032C E18F LDI R24,0x1F
0032D 1648 CP R4,R24
0032E F4C0 BCC 0x0347
0032F E187 LDI R24,0x17
00330 1648 CP R4,R24
00331 F0D1 BEQ 0x034C
00332 F458 BCC 0x033E
00333 9441 NEG R4
00334 EE89 LDI R24,0xE9
00335 1A48 SUB R4,R24
00336 C005 RJMP 0x033C
00337 9535 ASR R19
00338 9527 ROR R18
00339 9517 ROR R17
0033A 9507 ROR R16
0033B 944A DEC R4
0033C F7D1 BNE 0x0337
0033D C00E RJMP 0x034C
0033E E187 LDI R24,0x17
0033F 1A48 SUB R4,R24
00340 0F00 LSL R16
00341 1F11 ROL R17
00342 1F22 ROL R18
00343 1F33 ROL R19
00344 944A DEC R4
00345 F7D1 BNE 0x0340
00346 C005 RJMP 0x034C
00347 E73F LDI R19,0x7F
00348 2F23 MOV R18,R19
00349 2F13 MOV R17,R19
0034A 2F03 MOV R16,R19
0034B C004 RJMP 0x0350
0034C 2066 TST R6
0034D F011 BEQ 0x0350
0034E 940E 02FF CALL neg32
00350 9189 LD R24,Y+
00351 9069 LD R6,Y+
00352 9059 LD R5,Y+
00353 9049 LD R4,Y+
00354 9508 RET
uint2fp:
00355 9468 BSET 6
00356 C001 RJMP 0x0358
int2fp:
00357 94E8 BCLR 6
00358 2722 CLR R18
00359 2733 CLR R19
0035A F046 BRTS 0x0363
0035B FD17 SBRC R17,7
0035C 9520 COM R18
0035D FD17 SBRC R17,7
0035E 9530 COM R19
0035F C003 RJMP 0x0363
ulong2fp:
00360 9468 BSET 6
00361 C001 RJMP 0x0363
long2fp:
00362 94E8 BCLR 6
00363 924A ST -Y,R4
00364 925A ST -Y,R5
00365 926A ST -Y,R6
00366 938A ST -Y,R24
00367 E187 LDI R24,0x17
00368 2E48 MOV R4,R24
00369 2455 CLR R5
0036A 2466 CLR R6
0036B F036 BRTS 0x0372
0036C 2333 TST R19
0036D F422 BPL 0x0372
0036E 940E 02FF CALL neg32
00370 E880 LDI R24,0x80
00371 2E68 MOV R6,R24
00372 940E 043C CALL normalize_and_pack
00374 9189 LD R24,Y+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -