📄 pidtext.lis
字号:
0492 7F05 cpc R23,R15
0494 40F0 brlo L63
0496 .dbline 245
0496 .dbline 245
0496 C62E mov R12,R22
0498 D72E mov R13,R23
049A CE18 sub R12,R14
049C DF08 sbc R13,R15
049E .dbline 245
049E 0024 clr R0
04A0 0394 inc R0
04A2 0D86 std y+13,R0
04A4 .dbline 245
04A4 0CC0 rjmp L62
04A6 L63:
04A6 .dbline 245
04A6 ; if (Ea>=Eb){Eg=Ea-Eb;s_Eg=1;}else{Eg=Eb-Ea;}
04A6 .dbline 245
04A6 CE2C mov R12,R14
04A8 DF2C mov R13,R15
04AA C61A sub R12,R22
04AC D70A sbc R13,R23
04AE .dbline 245
04AE .dbline 246
04AE ; }
04AE 07C0 rjmp L62
04B0 L61:
04B0 .dbline 248
04B0 ; else
04B0 ; {
04B0 .dbline 249
04B0 ; Eg=Ea+Eb;s_Eg=1;
04B0 C62E mov R12,R22
04B2 D72E mov R13,R23
04B4 CE0C add R12,R14
04B6 DF1C adc R13,R15
04B8 .dbline 249
04B8 0024 clr R0
04BA 0394 inc R0
04BC 0D86 std y+13,R0
04BE .dbline 250
04BE ; }
04BE L62:
04BE .dbline 251
04BE ; }
04BE L56:
04BE .dbline 253
04BE ; //Eh=Eg+Ef
04BE ; if (s_Eg==0)
04BE 0D84 ldd R0,y+13
04C0 0020 tst R0
04C2 E1F4 brne L65
04C4 .dbline 254
04C4 ; {
04C4 .dbline 255
04C4 ; if (s_Ef==0)
04C4 8820 tst R8
04C6 39F4 brne L67
04C8 .dbline 256
04C8 ; {
04C8 .dbline 257
04C8 ; Eh=Eg+Ef;
04C8 2C2C mov R2,R12
04CA 3D2C mov R3,R13
04CC 2A0C add R2,R10
04CE 3B1C adc R3,R11
04D0 3D82 std y+5,R3
04D2 2C82 std y+4,R2
04D4 .dbline 258
04D4 ; }
04D4 30C0 rjmp L66
04D6 L67:
04D6 .dbline 260
04D6 ; else
04D6 ; {
04D6 .dbline 261
04D6 CA14 cp R12,R10
04D8 DB04 cpc R13,R11
04DA 38F0 brlo L69
04DC .dbline 261
04DC .dbline 261
04DC 2C2C mov R2,R12
04DE 3D2C mov R3,R13
04E0 2A18 sub R2,R10
04E2 3B08 sbc R3,R11
04E4 3D82 std y+5,R3
04E6 2C82 std y+4,R2
04E8 .dbline 261
04E8 26C0 rjmp L66
04EA L69:
04EA .dbline 261
04EA ; if (Eg>=Ef){Eh=Eg-Ef;}else{Eh=Ef-Eg;s_Eh=1;}
04EA .dbline 261
04EA 2A2C mov R2,R10
04EC 3B2C mov R3,R11
04EE 2C18 sub R2,R12
04F0 3D08 sbc R3,R13
04F2 3D82 std y+5,R3
04F4 2C82 std y+4,R2
04F6 .dbline 261
04F6 6624 clr R6
04F8 6394 inc R6
04FA .dbline 261
04FA .dbline 262
04FA ; }
04FA .dbline 263
04FA ; }
04FA 1DC0 rjmp L66
04FC L65:
04FC .dbline 265
04FC ; else
04FC ; {
04FC .dbline 266
04FC ; if (s_Ef==0)
04FC 8820 tst R8
04FE 99F4 brne L71
0500 .dbline 267
0500 ; {
0500 .dbline 268
0500 CA14 cp R12,R10
0502 DB04 cpc R13,R11
0504 48F0 brlo L73
0506 .dbline 268
0506 .dbline 268
0506 2C2C mov R2,R12
0508 3D2C mov R3,R13
050A 2A18 sub R2,R10
050C 3B08 sbc R3,R11
050E 3D82 std y+5,R3
0510 2C82 std y+4,R2
0512 .dbline 268
0512 6624 clr R6
0514 6394 inc R6
0516 .dbline 268
0516 0FC0 rjmp L72
0518 L73:
0518 .dbline 268
0518 ; if (Eg>=Ef){Eh=Eg-Ef;s_Eh=1;}else{Eh=Ef-Eg;}
0518 .dbline 268
0518 2A2C mov R2,R10
051A 3B2C mov R3,R11
051C 2C18 sub R2,R12
051E 3D08 sbc R3,R13
0520 3D82 std y+5,R3
0522 2C82 std y+4,R2
0524 .dbline 268
0524 .dbline 269
0524 ; }
0524 08C0 rjmp L72
0526 L71:
0526 .dbline 271
0526 ; else
0526 ; {
0526 .dbline 272
0526 ; Eh=Eg+Ef;s_Eh=1;
0526 2C2C mov R2,R12
0528 3D2C mov R3,R13
052A 2A0C add R2,R10
052C 3B1C adc R3,R11
052E 3D82 std y+5,R3
0530 2C82 std y+4,R2
0532 .dbline 272
0532 6624 clr R6
0534 6394 inc R6
0536 .dbline 273
0536 ; }
0536 L72:
0536 .dbline 274
0536 ; }
0536 L66:
0536 .dbline 276
0536 ; //Ei=Kp*Eh
0536 ; if (s_Eh==0)
0536 6620 tst R6
0538 49F4 brne L75
053A .dbline 277
053A ; {
053A .dbline 278
053A ; Ei=Kp*Eh;
053A 2C81 ldd R18,y+4
053C 3D81 ldd R19,y+5
053E 00910000 lds R16,_Kp
0542 1127 clr R17
0544 00D0 rcall mpy16s
0546 1983 std y+1,R17
0548 0883 std y+0,R16
054A .dbline 279
054A ; }
054A 09C0 rjmp L76
054C L75:
054C .dbline 281
054C ; else
054C ; {
054C .dbline 282
054C ; Ei=Kp*Eh;
054C 2C81 ldd R18,y+4
054E 3D81 ldd R19,y+5
0550 00910000 lds R16,_Kp
0554 1127 clr R17
0556 00D0 rcall mpy16s
0558 1983 std y+1,R17
055A 0883 std y+0,R16
055C .dbline 283
055C ; s_Ei=1;
055C 41E0 ldi R20,1
055E .dbline 284
055E ; }
055E L76:
055E .dbline 286
055E ; //PID_OutValue=PID_OutValue_1+Ei
055E ; if (s_Ei==0)
055E 4423 tst R20
0560 F1F4 brne L77
0562 .dbline 287
0562 ; {
0562 .dbline 288
0562 ; Ej=PID_OutValue_1+Ei;
0562 2880 ldd R2,y+0
0564 3980 ldd R3,y+1
0566 40900A00 lds R4,_PID_OutValue_1
056A 50900B00 lds R5,_PID_OutValue_1+1
056E 420C add R4,R2
0570 531C adc R5,R3
0572 5F82 std y+7,R5
0574 4E82 std y+6,R4
0576 .dbline 289
0576 842D mov R24,R4
0578 952D mov R25,R5
057A 8F3F cpi R24,255
057C E3E0 ldi R30,3
057E 9E07 cpc R25,R30
0580 38F0 brlo L79
0582 .dbline 289
0582 .dbline 289
0582 8FEF ldi R24,1023
0584 93E0 ldi R25,3
0586 90930900 sts _PID_OutValue+1,R25
058A 80930800 sts _PID_OutValue,R24
058E .dbline 289
058E 1DC0 rjmp L78
0590 L79:
0590 .dbline 289
0590 ; if (Ej>=0x3ff){PID_OutValue=0x3ff;}else{PID_OutValue=Ej;}
0590 .dbline 289
0590 2E80 ldd R2,y+6
0592 3F80 ldd R3,y+7
0594 30920900 sts _PID_OutValue+1,R3
0598 20920800 sts _PID_OutValue,R2
059C .dbline 289
059C .dbline 290
059C ; }
059C 16C0 rjmp L78
059E L77:
059E .dbline 292
059E ; else
059E ; {
059E .dbline 293
059E 2880 ldd R2,y+0
05A0 3980 ldd R3,y+1
05A2 40900A00 lds R4,_PID_OutValue_1
05A6 50900B00 lds R5,_PID_OutValue_1+1
05AA 4214 cp R4,R2
05AC 5304 cpc R5,R3
05AE 38F0 brlo L81
05B0 .dbline 293
05B0 .dbline 293
05B0 4218 sub R4,R2
05B2 5308 sbc R5,R3
05B4 50920900 sts _PID_OutValue+1,R5
05B8 40920800 sts _PID_OutValue,R4
05BC .dbline 293
05BC 06C0 rjmp L82
05BE L81:
05BE .dbline 293
05BE ; if(PID_OutValue_1>=Ei){PID_OutValue=PID_OutValue_1-Ei;}else{PID_OutValue=0;}
05BE .dbline 293
05BE 2224 clr R2
05C0 3324 clr R3
05C2 30920900 sts _PID_OutValue+1,R3
05C6 20920800 sts _PID_OutValue,R2
05CA .dbline 293
05CA L82:
05CA .dbline 294
05CA ; }
05CA L78:
05CA .dbline 297
05CA ;
05CA ; //
05CA ; PID_OutValue_1=PID_OutValue;
05CA 20900800 lds R2,_PID_OutValue
05CE 30900900 lds R3,_PID_OutValue+1
05D2 30920B00 sts _PID_OutValue_1+1,R3
05D6 20920A00 sts _PID_OutValue_1,R2
05DA .dbline 298
05DA ; e_2=e_1;
05DA 20900E00 lds R2,_e_1
05DE 30900F00 lds R3,_e_1+1
05E2 30921100 sts _e_2+1,R3
05E6 20921000 sts _e_2,R2
05EA .dbline 299
05EA ; s_e_2=s_e_1;
05EA 20900400 lds R2,_s_e_1
05EE 20920500 sts _s_e_2,R2
05F2 .dbline 300
05F2 ; e_1=e_0;
05F2 20900C00 lds R2,_e_0
05F6 30900D00 lds R3,_e_0+1
05FA 30920F00 sts _e_1+1,R3
05FE 20920E00 sts _e_1,R2
0602 .dbline 301
0602 ; s_e_1=s_e_0;
0602 20900300 lds R2,_s_e_0
0606 20920400 sts _s_e_1,R2
060A .dbline -2
060A .dbline 302
060A ; }
060A L8:
060A 2E96 adiw R28,14
060C 00D0 rcall pop_gset5
060E .dbline 0 ; func end
060E 0895 ret
0610 .dbsym l Ej 6 i
0610 .dbsym l Eh 4 i
0610 .dbsym l Ee 2 i
0610 .dbsym l Ei 0 i
0610 .dbsym r s_Ei 20 c
0610 .dbsym r s_Eh 6 c
0610 .dbsym l s_Eg 13 c
0610 .dbsym r s_Ef 8 c
0610 .dbsym l s_Ee 12 c
0610 .dbsym l s_Ec 11 c
0610 .dbsym l s_Eb 10 c
0610 .dbsym r Eg 12 i
0610 .dbsym r Ef 10 i
0610 .dbsym r Ed 12 i
0610 .dbsym r Eb 14 i
0610 .dbsym r Ea 22 i
0610 .dbsym l s_Ed 9 c
0610 .dbsym l s_Ea 8 c
0610 .dbsym r Ec 10 i
0610 .dbend
0610 .dbfunc e main _main fV
.even
0610 _main::
0610 .dbline -1
0610 .dbline 304
0610 ; void main(void)
0610 ; {
0610 .dbline 305
0610 ; read_PID_E2P_Value();
0610 F7DC rcall _read_PID_E2P_Value
0612 01C0 rjmp L85
0614 L84:
0614 .dbline 307
0614 .dbline 308
0614 5DDD rcall _PID_Count
0616 .dbline 309
0616 L85:
0616 .dbline 306
0616 FECF rjmp L84
0618 X1:
0618 .dbline -2
0618 .dbline 310
0618 ; while(1)
0618 ; {
0618 ; PID_Count();
0618 ; }
0618 ; }
0618 L83:
0618 .dbline 0 ; func end
0618 0895 ret
061A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -