⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pidtext.lis

📁 用ICC-AVR编译器编译适用与AVR系列单片机的PID库.
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -