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

📄 pid.lst

📁 用ICC-AVR编译器编译适用与AVR系列单片机的PID库.
💻 LST
📖 第 1 页 / 共 3 页
字号:
    013F F471      BNE	0x014E
(0108)  	  {
(0109) 	  Ea=e_1+e_0;
    0140 9020006C  LDS	R2,0x6C
    0142 9030006D  LDS	R3,0x6D
    0144 9160006E  LDS	R22,0x6E
    0146 9170006F  LDS	R23,0x6F
    0148 0D62      ADD	R22,R2
    0149 1D73      ADC	R23,R3
(0110) 	  s_Ea=1;
    014A 2400      CLR	R0
    014B 9403      INC	R0
    014C 8608      STD	Y+8,R0
(0111) 	  }
    014D C00C      RJMP	0x015A
(0112) 	  else
(0113) 	  {
(0114) 	   Ea=e_1-e_0;
    014E 9020006C  LDS	R2,0x6C
    0150 9030006D  LDS	R3,0x6D
    0152 9160006E  LDS	R22,0x6E
    0154 9170006F  LDS	R23,0x6F
    0156 1962      SUB	R22,R2
    0157 0973      SBC	R23,R3
(0115) 	   s_Ea=0;
    0158 2400      CLR	R0
    0159 8608      STD	Y+8,R0
(0116) 	  }
(0117)    }
(0118)  }
(0119) //Eb=Ki*e_0 
(0120)  if (s_e_0==0)
    015A 90200063  LDS	R2,0x63
    015C 2022      TST	R2
    015D F459      BNE	0x0169
(0121)  {
(0122)   	Eb=Ki*e_0;
    015E 9120006C  LDS	R18,0x6C
    0160 9130006D  LDS	R19,0x6D
    0162 91000061  LDS	R16,0x61
    0164 2711      CLR	R17
    0165 D205      RCALL	mpy16s
    0166 2EE0      MOV	R14,R16
    0167 2EF1      MOV	R15,R17
(0123)  }
    0168 C00D      RJMP	0x0176
(0124)  else
(0125)  {
(0126)    Eb=Ki*e_0;
    0169 9120006C  LDS	R18,0x6C
    016B 9130006D  LDS	R19,0x6D
    016D 91000061  LDS	R16,0x61
    016F 2711      CLR	R17
    0170 D1FA      RCALL	mpy16s
    0171 2EE0      MOV	R14,R16
    0172 2EF1      MOV	R15,R17
(0127)    s_Eb=1;
    0173 2400      CLR	R0
    0174 9403      INC	R0
    0175 860A      STD	Y+10,R0
(0128)  }
(0129)  //Ec=2*e_1 
(0130)  if (s_e_1==0)
    0176 90200064  LDS	R2,0x64
    0178 2022      TST	R2
    0179 F439      BNE	0x0181
(0131)  {
(0132)   	Ec=2*e_1;
    017A 90A0006E  LDS	R10,0x6E
    017C 90B0006F  LDS	R11,0x6F
    017E 0CAA      LSL	R10
    017F 1CBB      ROL	R11
(0133)  }
    0180 C009      RJMP	0x018A
(0134)  else
(0135)  {
(0136)    Ec=2*e_1;
    0181 90A0006E  LDS	R10,0x6E
    0183 90B0006F  LDS	R11,0x6F
    0185 0CAA      LSL	R10
    0186 1CBB      ROL	R11
(0137)    s_Ec=1;
    0187 2400      CLR	R0
    0188 9403      INC	R0
    0189 860B      STD	Y+11,R0
(0138)  }
(0139) //Ed=e_0-2*e_1(Ed=e_0-Ec)
(0140) if (e_0>=Ec)
    018A 9020006C  LDS	R2,0x6C
    018C 9030006D  LDS	R3,0x6D
    018E 142A      CP	R2,R10
    018F 043B      CPC	R3,R11
    0190 F160      BCS	0x01BD
(0141) {
(0142)    if (s_e_0==0)
    0191 90200063  LDS	R2,0x63
    0193 2022      TST	R2
    0194 F489      BNE	0x01A6
(0143)    {
(0144)    	  if (s_Ec==0)
    0195 840B      LDD	R0,Y+11
    0196 2000      TST	R0
    0197 F439      BNE	0x019F
(0145)  	  {
(0146) 	  Ed=e_0-Ec;
    0198 90C0006C  LDS	R12,0x6C
    019A 90D0006D  LDS	R13,0x6D
    019C 18CA      SUB	R12,R10
    019D 08DB      SBC	R13,R11
(0147) 	  }
    019E C055      RJMP	0x01F4
(0148) 	  else
(0149) 	  {
(0150) 	  Ed=e_0+Ec;
    019F 90C0006C  LDS	R12,0x6C
    01A1 90D0006D  LDS	R13,0x6D
    01A3 0CCA      ADD	R12,R10
    01A4 1CDB      ADC	R13,R11
(0151) 	  }
(0152)    }
    01A5 C04E      RJMP	0x01F4
(0153)    else
(0154)    {
(0155)    	  if (s_Ec==0)
    01A6 840B      LDD	R0,Y+11
    01A7 2000      TST	R0
    01A8 F451      BNE	0x01B3
(0156)  	  {
(0157) 	   Ed=e_0+Ec;
    01A9 90C0006C  LDS	R12,0x6C
    01AB 90D0006D  LDS	R13,0x6D
    01AD 0CCA      ADD	R12,R10
    01AE 1CDB      ADC	R13,R11
(0158) 	   s_Ed=1;
    01AF 2400      CLR	R0
    01B0 9403      INC	R0
    01B1 8609      STD	Y+9,R0
(0159) 	  }
    01B2 C041      RJMP	0x01F4
(0160) 	  else
(0161) 	  {
(0162) 	   Ed=e_0-Ec;
    01B3 90C0006C  LDS	R12,0x6C
    01B5 90D0006D  LDS	R13,0x6D
    01B7 18CA      SUB	R12,R10
    01B8 08DB      SBC	R13,R11
(0163) 	   s_Ed=1;
    01B9 2400      CLR	R0
    01BA 9403      INC	R0
    01BB 8609      STD	Y+9,R0
(0164) 	  }
(0165)    }
(0166)  }
    01BC C037      RJMP	0x01F4
(0167)  else
(0168)  {
(0169)     if (s_e_0==0)
    01BD 90200063  LDS	R2,0x63
    01BF 2022      TST	R2
    01C0 F4D1      BNE	0x01DB
(0170)    {
(0171)    	  if (s_Ec==0)
    01C1 840B      LDD	R0,Y+11
    01C2 2000      TST	R0
    01C3 F461      BNE	0x01D0
(0172)  	  {
(0173) 	   Ed=Ec-e_0;
    01C4 9020006C  LDS	R2,0x6C
    01C6 9030006D  LDS	R3,0x6D
    01C8 2CCA      MOV	R12,R10
    01C9 2CDB      MOV	R13,R11
    01CA 18C2      SUB	R12,R2
    01CB 08D3      SBC	R13,R3
(0174) 	   s_Ed=1;
    01CC 2400      CLR	R0
    01CD 9403      INC	R0
    01CE 8609      STD	Y+9,R0
(0175) 	  }
    01CF C024      RJMP	0x01F4
(0176) 	  else
(0177) 	  {
(0178) 	   Ed=Ec+e_0;
    01D0 9020006C  LDS	R2,0x6C
    01D2 9030006D  LDS	R3,0x6D
    01D4 2CCA      MOV	R12,R10
    01D5 2CDB      MOV	R13,R11
    01D6 0CC2      ADD	R12,R2
    01D7 1CD3      ADC	R13,R3
(0179) 	   s_Ed=0;
    01D8 2400      CLR	R0
    01D9 8609      STD	Y+9,R0
(0180) 	  }
(0181)    }
    01DA C019      RJMP	0x01F4
(0182)    else
(0183)    {
(0184)    	  if (s_Ec==0)
    01DB 840B      LDD	R0,Y+11
    01DC 2000      TST	R0
    01DD F461      BNE	0x01EA
(0185)  	  {
(0186) 	  Ed=Ec+e_0;
    01DE 9020006C  LDS	R2,0x6C
    01E0 9030006D  LDS	R3,0x6D
    01E2 2CCA      MOV	R12,R10
    01E3 2CDB      MOV	R13,R11
    01E4 0CC2      ADD	R12,R2
    01E5 1CD3      ADC	R13,R3
(0187) 	  s_Ed=1;
    01E6 2400      CLR	R0
    01E7 9403      INC	R0
    01E8 8609      STD	Y+9,R0
(0188) 	  }
    01E9 C00A      RJMP	0x01F4
(0189) 	  else
(0190) 	  {
(0191) 	   Ed=Ec-e_0;
    01EA 9020006C  LDS	R2,0x6C
    01EC 9030006D  LDS	R3,0x6D
    01EE 2CCA      MOV	R12,R10
    01EF 2CDB      MOV	R13,R11
    01F0 18C2      SUB	R12,R2
    01F1 08D3      SBC	R13,R3
(0192) 	   s_Ed=0;
    01F2 2400      CLR	R0
    01F3 8609      STD	Y+9,R0
(0193) 	  }
(0194)    }
(0195)  }  
(0196) //Ee=Ed+e_2
(0197)  if (s_Ed==0)
    01F4 8409      LDD	R0,Y+9
    01F5 2000      TST	R0
    01F6 F549      BNE	0x0220
(0198)  {
(0199)   if (s_e_2==0)
    01F7 90200065  LDS	R2,0x65
    01F9 2022      TST	R2
    01FA F459      BNE	0x0206
(0200)   {
(0201)   Ee=Ed+e_2;
    01FB 90200070  LDS	R2,0x70
    01FD 90300071  LDS	R3,0x71
    01FF 2C4C      MOV	R4,R12
    0200 2C5D      MOV	R5,R13
    0201 0C42      ADD	R4,R2
    0202 1C53      ADC	R5,R3
    0203 825B      STD	Y+3,R5
    0204 824A      STD	Y+2,R4
(0202)   }
    0205 C045      RJMP	0x024B
(0203)   else
(0204)   {
(0205)   if (Ed>=e_2){Ee=Ed-e_2;}else{Ee=e_2-Ed;s_Ee=1;}
    0206 90200070  LDS	R2,0x70
    0208 90300071  LDS	R3,0x71
    020A 14C2      CP	R12,R2
    020B 04D3      CPC	R13,R3
    020C F038      BCS	0x0214
    020D 2C4C      MOV	R4,R12
    020E 2C5D      MOV	R5,R13
    020F 1842      SUB	R4,R2
    0210 0853      SBC	R5,R3
    0211 825B      STD	Y+3,R5
    0212 824A      STD	Y+2,R4
    0213 C037      RJMP	0x024B
    0214 90200070  LDS	R2,0x70
    0216 90300071  LDS	R3,0x71
    0218 182C      SUB	R2,R12
    0219 083D      SBC	R3,R13
    021A 823B      STD	Y+3,R3
    021B 822A      STD	Y+2,R2
    021C 2400      CLR	R0
    021D 9403      INC	R0
    021E 860C      STD	Y+12,R0
(0206)   }
(0207)  }
    021F C02B      RJMP	0x024B
(0208)  else
(0209)  {
(0210)   if (s_e_2==0)
    0220 90200065  LDS	R2,0x65
    0222 2022      TST	R2
    0223 F4D1      BNE	0x023E
(0211)   {
(0212)   if (Ed>=e_2){Ee=Ed-e_2;s_Ee=1;}else{Ee=e_2-Ed;}
    0224 90200070  LDS	R2,0x70
    0226 90300071  LDS	R3,0x71
    0228 14C2      CP	R12,R2
    0229 04D3      CPC	R13,R3
    022A F050      BCS	0x0235
    022B 2C4C      MOV	R4,R12
    022C 2C5D      MOV	R5,R13
    022D 1842      SUB	R4,R2
    022E 0853      SBC	R5,R3
    022F 825B      STD	Y+3,R5
    0230 824A      STD	Y+2,R4
    0231 2400      CLR	R0
    0232 9403      INC	R0
    0233 860C      STD	Y+12,R0
    0234 C016      RJMP	0x024B
    0235 90200070  LDS	R2,0x70
    0237 90300071  LDS	R3,0x71
    0239 182C      SUB	R2,R12
    023A 083D      SBC	R3,R13
    023B 823B      STD	Y+3,R3
    023C 822A      STD	Y+2,R2
(0213)   }
    023D C00D      RJMP	0x024B
(0214)   else
(0215)   {
(0216)   Ee=Ed+e_2;s_Ee=1;
    023E 90200070  LDS	R2,0x70
    0240 90300071  LDS	R3,0x71
    0242 2C4C      MOV	R4,R12
    0243 2C5D      MOV	R5,R13
    0244 0C42      ADD	R4,R2
    0245 1C53      ADC	R5,R3
    0246 825B      STD	Y+3,R5
    0247 824A      STD	Y+2,R4
    0248 2400      CLR	R0
    0249 9403      INC	R0
    024A 860C      STD	Y+12,R0
(0217)   }
(0218)  }
(0219) //Ef=Kd*Ee
(0220)  if (s_Ee==0)
    024B 840C      LDD	R0,Y+12
    024C 2000      TST	R0
    024D F449      BNE	0x0257
(0221)  {
(0222)   	Ef=Kd*Ee;
    024E 812A      LDD	R18,Y+2
    024F 813B      LDD	R19,Y+3
    0250 91000062  LDS	R16,0x62
    0252 2711      CLR	R17
    0253 D117      RCALL	mpy16s
    0254 2EA0      MOV	R10,R16
    0255 2EB1      MOV	R11,R17
(0223)  }
    0256 C00A      RJMP	0x0261
(0224)  else
(0225)  {
(0226)    Ef=Kd*Ee;
    0257 812A      LDD	R18,Y+2
    0258 813B      LDD	R19,Y+3
    0259 91000062  LDS	R16,0x62
    025B 2711      CLR	R17
    025C D10E      RCALL	mpy16s
    025D 2EA0      MOV	R10,R16
    025E 2EB1      MOV	R11,R17
(0227)    s_Ef=1;
    025F 2488      CLR	R8
    0260 9483      INC	R8
(0228)  }
(0229) //Eg=Ea+Eb
(0230) if (s_Ea==0)
    0261 8408      LDD	R0,Y+8
    0262 2000      TST	R0
    0263 F4C1      BNE	0x027C
(0231)  {
(0232)   if (s_Eb==0)
    0264 840A      LDD	R0,Y+10
    0265 2000      TST	R0
    0266 F429      BNE	0x026C
(0233)   {
(0234)   Eg=Ea+Eb;
    0267 2EC6      MOV	R12,R22
    0268 2ED7      MOV	R13,R23
    0269 0CCE      ADD	R12,R14
    026A 1CDF      ADC	R13,R15
(0235)   }
    026B C02A      RJMP	0x0296
(0236)   else
(0237)   {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -