📄 增量式模糊控制.lst
字号:
(0014) //ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1); //参考电压为内部2.56
(0015) ADMUX =(adc_mux&0x1f)|(1<<REFS0); //参考电压为内部AVCC
037D 91800125 LDS R24,adc_mux
037F 718F ANDI R24,0x1F
0380 6480 ORI R24,0x40
0381 B987 OUT 0x07,R24
(0016) //ADMUX =(adc_mux&0x1f); //参考电压为引脚AREF
(0017) ADCSR=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1) ;//64分频
0382 EC8E LDI R24,0xCE
0383 B986 OUT 0x06,R24
(0018) asm("sei");
0384 9478 BSET 7
(0019) //UBRRH = 25;
(0020) UBRRL = 25;
0385 E189 LDI R24,0x19
0386 B989 OUT 0x09,R24
(0021) UCSRB=0x18;
0387 E188 LDI R24,0x18
0388 B98A OUT 0x0A,R24
(0022) UCSRC=0x86;
0389 E886 LDI R24,0x86
038A BD80 OUT 0x20,R24
038B 9508 RET
_adc_isr:
038C 938A ST R24,-Y
038D B78F IN R24,0x3F
038E 938A ST R24,-Y
(0023) /*
(0024) ADCSR = 0x00; //disable adc
(0025) ADMUX = 0x00; //select adc input 0
(0026) ACSR = 0x80;
(0027) ADCSR = 0xEE;
(0028) */
(0029) }
(0030) //ADC完成中断
(0031) /******************************************************************************/
(0032) #pragma interrupt_handler adc_isr:15
(0033) void adc_isr(void)
(0034) {
(0035) //conversion complete, read value (int) using...
(0036) // value=ADCL; //Read 8 low bits first (important)
(0037) // value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
(0038) ADMUX =(adc_mux&0x1f)|(1<<REFS0)|(1<<REFS1);
038F 91800125 LDS R24,adc_mux
0391 718F ANDI R24,0x1F
0392 6C80 ORI R24,0xC0
0393 B987 OUT 0x07,R24
(0039) ADCSR|=(1<<ADSC);//启动AD转换
FILE: <library>
0394 9A36 SBI 0x06,6
0395 9189 LD R24,Y+
0396 BF8F OUT 0x3F,R24
0397 9189 LD R24,Y+
0398 9518 RETI
push_arg4:
0399 933A ST R19,-Y
039A 932A ST R18,-Y
push_arg2:
039B 931A ST R17,-Y
039C 930A ST R16,-Y
039D 9508 RET
mod16s:
039E 9468 BSET 6
039F 92DA ST R13,-Y
03A0 2ED1 MOV R13,R17
03A1 C004 RJMP 0x03A6
div16s:
03A2 94E8 BCLR 6
03A3 92DA ST R13,-Y
03A4 2ED1 MOV R13,R17
03A5 26D3 EOR R13,R19
03A6 FF17 SBRS R17,7
03A7 C004 RJMP 0x03AC
03A8 9510 COM R17
03A9 9500 COM R16
03AA 5F0F SUBI R16,0xFF
03AB 4F1F SBCI R17,0xFF
03AC FF37 SBRS R19,7
03AD C004 RJMP 0x03B2
03AE 9530 COM R19
03AF 9520 COM R18
03B0 5F2F SUBI R18,0xFF
03B1 4F3F SBCI R19,0xFF
03B2 940E03BF CALL xdiv16u
03B4 FED7 SBRS R13,7
03B5 C004 RJMP 0x03BA
03B6 9510 COM R17
03B7 9500 COM R16
03B8 5F0F SUBI R16,0xFF
03B9 4F1F SBCI R17,0xFF
03BA 90D9 LD R13,Y+
03BB 9508 RET
mod16u:
03BC 9468 BSET 6
03BD C001 RJMP xdiv16u
div16u:
03BE 94E8 BCLR 6
xdiv16u:
03BF 92EA ST R14,-Y
03C0 92FA ST R15,-Y
03C1 938A ST R24,-Y
03C2 24EE CLR R14
03C3 24FF CLR R15
03C4 E180 LDI R24,0x10
03C5 0F00 LSL R16
03C6 1F11 ROL R17
03C7 1CEE ROL R14
03C8 1CFF ROL R15
03C9 16E2 CP R14,R18
03CA 06F3 CPC R15,R19
03CB F018 BCS 0x03CF
03CC 1AE2 SUB R14,R18
03CD 0AF3 SBC R15,R19
03CE 9503 INC R16
03CF 958A DEC R24
03D0 F7A1 BNE 0x03C5
03D1 F416 BRTC 0x03D4
03D2 2D0E MOV R16,R14
03D3 2D1F MOV R17,R15
03D4 9189 LD R24,Y+
03D5 90F9 LD R15,Y+
03D6 90E9 LD R14,Y+
03D7 9508 RET
empy16s:
03D8 920A ST R0,-Y
03D9 921A ST R1,-Y
03DA 938A ST R24,-Y
03DB 939A ST R25,-Y
03DC 9F02 MUL R16,R18
03DD 01C0 MOVW R24,R0
03DE 9F12 MUL R17,R18
03DF 0D90 ADD R25,R0
03E0 9F03 MUL R16,R19
03E1 0D90 ADD R25,R0
03E2 018C MOVW R16,R24
03E3 9199 LD R25,Y+
03E4 9189 LD R24,Y+
03E5 9019 LD R1,Y+
03E6 9009 LD R0,Y+
03E7 9508 RET
pop_gset2:
03E8 E0E2 LDI R30,2
03E9 940C03FA JMP pop
pop_gset3:
03EB E0E4 LDI R30,4
03EC 940C03FA JMP pop
push_gset5:
03EE 92FA ST R15,-Y
03EF 92EA ST R14,-Y
push_gset4:
03F0 92DA ST R13,-Y
03F1 92CA ST R12,-Y
push_gset3:
03F2 92BA ST R11,-Y
03F3 92AA ST R10,-Y
push_gset2:
03F4 937A ST R23,-Y
03F5 936A ST R22,-Y
push_gset1:
03F6 935A ST R21,-Y
03F7 934A ST R20,-Y
03F8 9508 RET
pop_gset1:
03F9 E0E1 LDI R30,1
pop:
03FA 9149 LD R20,Y+
03FB 9159 LD R21,Y+
03FC FDE0 SBRC R30,0
03FD 9508 RET
03FE 9169 LD R22,Y+
03FF 9179 LD R23,Y+
0400 FDE1 SBRC R30,1
0401 9508 RET
0402 90A9 LD R10,Y+
0403 90B9 LD R11,Y+
0404 FDE2 SBRC R30,2
0405 9508 RET
0406 90C9 LD R12,Y+
0407 90D9 LD R13,Y+
0408 FDE3 SBRC R30,3
0409 9508 RET
040A 90E9 LD R14,Y+
040B 90F9 LD R15,Y+
040C 9508 RET
neg32:
040D 9500 COM R16
040E 9510 COM R17
040F 9520 COM R18
0410 9530 COM R19
0411 5F0F SUBI R16,0xFF
0412 4F1F SBCI R17,0xFF
0413 4F2F SBCI R18,0xFF
0414 4F3F SBCI R19,0xFF
0415 9508 RET
lpm32:
0416 93EA ST R30,-Y
0417 93FA ST R31,-Y
0418 920A ST R0,-Y
0419 2FE0 MOV R30,R16
041A 2FF1 MOV R31,R17
041B 95C8 LPM
041C 2D00 MOV R16,R0
041D 9631 ADIW R30,1
041E 95C8 LPM
041F 2D10 MOV R17,R0
0420 9631 ADIW R30,1
0421 95C8 LPM
0422 2D20 MOV R18,R0
0423 9631 ADIW R30,1
0424 95C8 LPM
0425 2D30 MOV R19,R0
0426 9009 LD R0,Y+
0427 91F9 LD R31,Y+
0428 91E9 LD R30,Y+
0429 9508 RET
push_lset:
042A 93FA ST R31,-Y
042B 93EA ST R30,-Y
042C 93BA ST R27,-Y
042D 93AA ST R26,-Y
042E 939A ST R25,-Y
042F 938A ST R24,-Y
0430 933A ST R19,-Y
0431 932A ST R18,-Y
0432 931A ST R17,-Y
0433 930A ST R16,-Y
0434 929A ST R9,-Y
0435 928A ST R8,-Y
0436 927A ST R7,-Y
0437 926A ST R6,-Y
0438 925A ST R5,-Y
0439 924A ST R4,-Y
043A 923A ST R3,-Y
043B 922A ST R2,-Y
043C 921A ST R1,-Y
043D 920A ST R0,-Y
043E B60F IN R0,0x3F
043F 920A ST R0,-Y
0440 9508 RET
pop_lset:
0441 9009 LD R0,Y+
0442 BE0F OUT 0x3F,R0
0443 9009 LD R0,Y+
0444 9019 LD R1,Y+
0445 9029 LD R2,Y+
0446 9039 LD R3,Y+
0447 9049 LD R4,Y+
0448 9059 LD R5,Y+
0449 9069 LD R6,Y+
044A 9079 LD R7,Y+
044B 9089 LD R8,Y+
044C 9099 LD R9,Y+
044D 9109 LD R16,Y+
044E 9119 LD R17,Y+
044F 9129 LD R18,Y+
0450 9139 LD R19,Y+
0451 9189 LD R24,Y+
0452 9199 LD R25,Y+
0453 91A9 LD R26,Y+
0454 91B9 LD R27,Y+
0455 91E9 LD R30,Y+
0456 91F9 LD R31,Y+
0457 9508 RET
fp2int:
0458 940E0611 CALL savfacc1
045A D014 RCALL FTOI
045B 2F02 MOV R16,R18
045C 2F13 MOV R17,R19
045D FD87 SBRC R24,7
045E C002 RJMP nojump1
045F 940C0614 JMP restorefacc1
nojump1:
0461 9510 COM R17
0462 9501 NEG R16
0463 4F1F SBCI R17,0xFF
0464 940C0614 JMP restorefacc1
fp2long:
0466 940E0611 CALL savfacc1
0468 D008 RCALL FTOL
0469 FF87 SBRS R24,7
046A C002 RJMP nojump2
046B 940E040D CALL neg32
nojump2:
046D 940C0614 JMP restorefacc1
FTOI:
046F E0BE LDI R27,0xE
0470 C001 RJMP 0x0472
FTOL:
0471 E1BE LDI R27,0x1E
0472 940E0617 CALL unpackfacc1
0474 F069 BEQ 0x0482
0475 1BB3 SUB R27,R19
0476 F009 BEQ 0x0478
0477 F472 BPL 0x0486
0478 2388 TST R24
0479 F022 BMI 0x047E
047A E010 LDI R17,0
047B E604 LDI R16,0x64
047C 940C0416 JMP lpm32
047E E010 LDI R17,0
047F E60A LDI R16,0x6A
0480 940C0416 JMP lpm32
0482 E010 LDI R17,0
0483 E608 LDI R16,0x68
0484 940C0416 JMP lpm32
0486 9533 INC R19
0487 F3D2 BMI 0x0482
0488 E030 LDI R19,0
0489 50B8 SUBI R27,0x8
048A F452 BPL 0x0495
048B 5FB8 SUBI R27,0xF8
048C 2F32 MOV R19,R18
048D 2F21 MOV R18,R17
048E 2F10 MOV R17,R16
048F E800 LDI R16,0x80
0490 C006 RJMP 0x0497
0491 2F01 MOV R16,R17
0492 2F12 MOV R17,R18
0493 E020 LDI R18,0
0494 50B8 SUBI R27,0x8
0495 30B8 CPI R27,0x8
0496 F7D0 BCC 0x0491
0497 23BB TST R27
0498 F031 BEQ 0x049F
0499 9536 LSR R19
049A 9527 ROR R18
049B 9517 ROR R17
049C 9507 ROR R16
049D 95BA DEC R27
049E F7D1 BNE 0x0499
049F 9508 RET
int2fp:
04A0 2722 CLR R18
04A1 FD17 SBRC R17,7
04A2 9520 COM R18
04A3 2733 CLR R19
04A4 FD27 SBRC R18,7
04A5 9530 COM R19
long2fp:
04A6 940E0611 CALL savfacc1
04A8 D002 RCALL ITOF
04A9 940C0614 JMP restorefacc1
ITOF:
04AB 2788 CLR R24
04AC 2333 TST R19
04AD F41A BPL 0x04B1
04AE 940E040D CALL neg32
04B0 9580 COM R24
04B1 2FB0 MOV R27,R16
04B2 2BB1 OR R27,R17
04B3 2BB2 OR R27,R18
04B4 2BB3 OR R27,R19
04B5 F411 BNE 0x04B8
04B6 940C062D JMP minres
04B8 E1B6 LDI R27,0x16
04B9 C005 RJMP itof2
04BA 95B3 INC R27
04BB 9536 LSR R19
04BC 9527 ROR R18
04BD 9517 ROR R17
04BE 9507 ROR R16
itof2:
04BF 2333 TST R19
04C0 F7C9 BNE 0x04BA
itof3:
04C1 2322 TST R18
04C2 F449 BNE 0x04CC
04C3 50B8 SUBI R27,0x8
04C4 2F21 MOV R18,R17
04C5 2F10 MOV R17,R16
04C6 E000 LDI R16,0
04C7 CFF9 RJMP itof3
04C8 95BA DEC R27
04C9 0F00 LSL R16
04CA 1F11 ROL R17
04CB 1F22 ROL R18
04CC F7DA BPL 0x04C8
04CD 2F3B MOV R19,R27
04CE 940C0657 JMP repack
save_floatregs:
04D0 92DA ST R13,-Y
04D1 92EA ST R14,-Y
04D2 92FA ST R15,-Y
04D3 938A ST R24,-Y
04D4 922A ST R2,-Y
04D5 923A ST R3,-Y
04D6 924A ST R4,-Y
04D7 939A ST R25,-Y
04D8 93AA ST R26,-Y
04D9 93BA ST R27,-Y
04DA 9508 RET
restore_floatregs:
04DB 91B9 LD R27,Y+
04DC 91A9 LD R26,Y+
04DD 9199 LD R25,Y+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -