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

📄 acmotor.ls

📁 该程序是ST7MC驱动三洋压缩机(交流)
💻 LS
📖 第 1 页 / 共 3 页
字号:
 784  0157 4d            	tnz	a
 785  0158 27d9          	jreq	L313
 786                     ; 301 }
 789  015a 81            	ret	
 852                     .const:	section	.text
 853  0000               L62:
 854  0000 00000a00      	dc.l	2560
 855                     ; 313 void ACM_InitSlipFreqReg(u8 OptimumSlip)
 855                     ; 314 {
 856                     	switch	.text
 858                     	xref.b	_ACM_InitSlipFreqReg$L
 859  015b               _ACM_InitSlipFreqReg:
 861  015b b700          	ld	_ACM_InitSlipFreqReg$L,a
 863                     ; 315 		u8 CurrentVoltage = MTC_GetVoltage();
 865  015d cd0000        	call	_MTC_GetVoltage
 867  0160 b7ff          	ld	_ACM_InitSlipFreqReg$L-1,a
 868                     ; 320 		Error = MTC_GetSlip() - OptimumSlip;
 870  0162 cd0000        	call	_MTC_GetSlip
 872  0165 b000          	sub	a,_ACM_InitSlipFreqReg$L
 873  0167 2401          	jrnc	L42
 874  0169 5a            	dec	x
 875  016a               L42:
 876  016a b7fe          	ld	_ACM_InitSlipFreqReg$L-2,a
 877  016c bffd          	ld	_ACM_InitSlipFreqReg$L-3,x
 878                     ; 321 		if (Error > (s16)S8_MAX)
 880  016e a080          	sub	a,#128
 881  0170 9f            	ld	a,x
 882  0171 a200          	sbc	a,#0
 883  0173 2b04          	jrmi	L153
 884                     ; 323 			Error_slip = S8_MAX;
 886  0175 a67f          	ld	a,#127
 888  0177 2010          	jra	L353
 889  0179               L153:
 890                     ; 327 			if (Error < (s16)S8_MIN)
 892  0179 b6fe          	ld	a,_ACM_InitSlipFreqReg$L-2
 893  017b a080          	sub	a,#128
 894  017d b6fd          	ld	a,_ACM_InitSlipFreqReg$L-3
 895  017f a2ff          	sbc	a,#255
 896  0181 2a04          	jrpl	L553
 897                     ; 329 				Error_slip = S8_MIN;
 899  0183 a680          	ld	a,#128
 901  0185 2002          	jra	L353
 902  0187               L553:
 903                     ; 333 				Error_slip = (s8)Error;
 905  0187 b6fe          	ld	a,_ACM_InitSlipFreqReg$L-2
 906  0189               L353:
 907  0189 c70010        	ld	L11_Error_slip,a
 908                     ; 340 		ACM_GetPIParam( MTC_GetStatorFreq() );
 910  018c cd0000        	call	_MTC_GetStatorFreq
 912  018f cd03e9        	call	_ACM_GetPIParam
 914                     ; 345 	Voltage_slip_s32 = 256 * (s32)Kp * (s32)Error_slip;
 916  0192 c60010        	ld	a,L11_Error_slip
 917  0195 b703          	ld	c_lreg+3,a
 918  0197 48            	sll	a
 919  0198 4f            	clr	a
 920  0199 a200          	sbc	a,#0
 921  019b b702          	ld	c_lreg+2,a
 922  019d b701          	ld	c_lreg+1,a
 923  019f b700          	ld	c_lreg,a
 924  01a1 aef9          	ld	x,#_ACM_InitSlipFreqReg$L-7
 925  01a3 cd0000        	call	c_rtol
 927  01a6 c60016        	ld	a,L3_Kp
 928  01a9 b703          	ld	c_lreg+3,a
 929  01ab 4f            	clr	a
 930  01ac b702          	ld	c_lreg+2,a
 931  01ae b701          	ld	c_lreg+1,a
 932  01b0 b700          	ld	c_lreg,a
 933  01b2 a608          	ld	a,#8
 934  01b4 cd0000        	call	c_llsh
 936  01b7 cd0000        	call	c_lmul
 938  01ba ae02          	ld	x,#high(L12_Voltage_slip_s32)
 939  01bc bf00          	ld	c_x,x
 940  01be ae02          	ld	x,#low(L12_Voltage_slip_s32)
 941  01c0 cd0000        	call	c_rtoxl
 943                     ; 346 	Voltage_slip = (s16) ( Voltage_slip_s32 / 2560 );
 945  01c3 ae02          	ld	x,#high(L12_Voltage_slip_s32)
 946  01c5 bf00          	ld	c_x,x
 947  01c7 ae02          	ld	x,#low(L12_Voltage_slip_s32)
 948  01c9 cd0000        	call	c_xltor
 950  01cc ae00          	ld	x,#high(L62)
 951  01ce bf00          	ld	c_x,x
 952  01d0 ae00          	ld	x,#low(L62)
 953  01d2 cd0000        	call	c_xldiv
 955  01d5 b603          	ld	a,c_lreg+3
 956  01d7 be02          	ld	x,c_lreg+2
 957  01d9 c7000b        	ld	L51_Voltage_slip+1,a
 958  01dc cf000a        	ld	L51_Voltage_slip,x
 959                     ; 347 	VoltageIntegralTerm = 256 * ( (s32)CurrentVoltage - (s32)Voltage_slip );
 961  01df cd0000        	call	c_itol
 963  01e2 aef9          	ld	x,#_ACM_InitSlipFreqReg$L-7
 964  01e4 cd0000        	call	c_rtol
 966  01e7 b6ff          	ld	a,_ACM_InitSlipFreqReg$L-1
 967  01e9 b703          	ld	c_lreg+3,a
 968  01eb 4f            	clr	a
 969  01ec b702          	ld	c_lreg+2,a
 970  01ee b701          	ld	c_lreg+1,a
 971  01f0 b700          	ld	c_lreg,a
 972  01f2 cd0000        	call	c_lsub
 974  01f5 a608          	ld	a,#8
 975  01f7 cd0000        	call	c_llsh
 977  01fa ae11          	ld	x,#high(L7_VoltageIntegralTerm)
 978  01fc bf00          	ld	c_x,x
 979  01fe ae11          	ld	x,#low(L7_VoltageIntegralTerm)
 980  0200 cd0000        	call	c_rtoxl
 982                     ; 350 	MinPiOut = FALSE;
 984  0203 4f            	clr	a
 985  0204 c70001        	ld	L32_MinPiOut,a
 986                     ; 351 	MaxPiOut = FALSE;
 988  0207 c70000        	ld	L52_MaxPiOut,a
 989                     ; 353 }
 992  020a 81            	ret	
1085                     	switch	.const
1086  0004               L43:
1087  0004 00000100      	dc.l	256
1088                     ; 367 u8 ACM_SlipRegulation(u8 OptimumSlip)
1088                     ; 368 {
1089                     	switch	.text
1091                     	xref.b	_ACM_SlipRegulation$L
1092  020b               _ACM_SlipRegulation:
1094  020b b700          	ld	_ACM_SlipRegulation$L,a
1096                     ; 374 		Error = MTC_GetSlip() - OptimumSlip;
1098  020d cd0000        	call	_MTC_GetSlip
1100  0210 b000          	sub	a,_ACM_SlipRegulation$L
1101  0212 2401          	jrnc	L23
1102  0214 5a            	dec	x
1103  0215               L23:
1104  0215 b7fc          	ld	_ACM_SlipRegulation$L-4,a
1105  0217 bffb          	ld	_ACM_SlipRegulation$L-5,x
1106                     ; 375 		if (Error > (s16)S8_MAX)
1108  0219 a080          	sub	a,#128
1109  021b 9f            	ld	a,x
1110  021c a200          	sbc	a,#0
1111  021e 2b04          	jrmi	L324
1112                     ; 377 			Error_slip = S8_MAX;
1114  0220 a67f          	ld	a,#127
1116  0222 2010          	jra	L524
1117  0224               L324:
1118                     ; 381 			if (Error < (s16)S8_MIN)
1120  0224 b6fc          	ld	a,_ACM_SlipRegulation$L-4
1121  0226 a080          	sub	a,#128
1122  0228 b6fb          	ld	a,_ACM_SlipRegulation$L-5
1123  022a a2ff          	sbc	a,#255
1124  022c 2a04          	jrpl	L724
1125                     ; 383 				Error_slip = S8_MIN;
1127  022e a680          	ld	a,#128
1129  0230 2002          	jra	L524
1130  0232               L724:
1131                     ; 387 				Error_slip = (s8)Error;
1133  0232 b6fc          	ld	a,_ACM_SlipRegulation$L-4
1134  0234               L524:
1135  0234 c70010        	ld	L11_Error_slip,a
1136                     ; 393 		ACM_GetPIParam( MTC_GetStatorFreq() );		// Ki and Kp coeff setup
1138  0237 cd0000        	call	_MTC_GetStatorFreq
1140  023a cd03e9        	call	_ACM_GetPIParam
1142                     ; 397 	Voltage_slip_s32 = 256 * (s32)Kp * (s32)Error_slip;
1144  023d c60010        	ld	a,L11_Error_slip
1145  0240 b703          	ld	c_lreg+3,a
1146  0242 48            	sll	a
1147  0243 4f            	clr	a
1148  0244 a200          	sbc	a,#0
1149  0246 b702          	ld	c_lreg+2,a
1150  0248 b701          	ld	c_lreg+1,a
1151  024a b700          	ld	c_lreg,a
1152  024c aef5          	ld	x,#_ACM_SlipRegulation$L-11
1153  024e cd0000        	call	c_rtol
1155  0251 c60016        	ld	a,L3_Kp
1156  0254 b703          	ld	c_lreg+3,a
1157  0256 4f            	clr	a
1158  0257 b702          	ld	c_lreg+2,a
1159  0259 b701          	ld	c_lreg+1,a
1160  025b b700          	ld	c_lreg,a
1161  025d a608          	ld	a,#8
1162  025f cd0000        	call	c_llsh
1164  0262 cd0000        	call	c_lmul
1166  0265 ae02          	ld	x,#high(L12_Voltage_slip_s32)
1167  0267 bf00          	ld	c_x,x
1168  0269 ae02          	ld	x,#low(L12_Voltage_slip_s32)
1169  026b cd0000        	call	c_rtoxl
1171                     ; 398 	Voltage_slip = (s16) ( Voltage_slip_s32 / 2560 );     
1173  026e ae02          	ld	x,#high(L12_Voltage_slip_s32)
1174  0270 bf00          	ld	c_x,x
1175  0272 ae02          	ld	x,#low(L12_Voltage_slip_s32)
1176  0274 cd0000        	call	c_xltor
1178  0277 ae00          	ld	x,#high(L62)
1179  0279 bf00          	ld	c_x,x
1180  027b ae00          	ld	x,#low(L62)
1181  027d cd0000        	call	c_xldiv
1183  0280 b603          	ld	a,c_lreg+3
1184  0282 be02          	ld	x,c_lreg+2
1185  0284 c7000b        	ld	L51_Voltage_slip+1,a
1186  0287 cf000a        	ld	L51_Voltage_slip,x
1187                     ; 400 	NewVoltage = Voltage_slip; /* "Proportional" output */	
1189  028a bffe          	ld	_ACM_SlipRegulation$L-2,x
1190  028c b7ff          	ld	_ACM_SlipRegulation$L-1,a
1191                     ; 405 			s32 PreviousVoltageIntegral = VoltageIntegralTerm;   
1193  028e c60014        	ld	a,L7_VoltageIntegralTerm+3
1194  0291 b7fc          	ld	_ACM_SlipRegulation$L-4,a
1195  0293 c60013        	ld	a,L7_VoltageIntegralTerm+2
1196  0296 b7fb          	ld	_ACM_SlipRegulation$L-5,a
1197  0298 c60012        	ld	a,L7_VoltageIntegralTerm+1
1198  029b b7fa          	ld	_ACM_SlipRegulation$L-6,a
1199  029d c60011        	ld	a,L7_VoltageIntegralTerm
1200  02a0 b7f9          	ld	_ACM_SlipRegulation$L-7,a
1201                     ; 407 		DeltaVoltage_slip_s32 = 256 * (s32)Ki * (s32)Error_slip; 
1203  02a2 c60010        	ld	a,L11_Error_slip
1204  02a5 b703          	ld	c_lreg+3,a
1205  02a7 48            	sll	a
1206  02a8 4f            	clr	a
1207  02a9 a200          	sbc	a,#0
1208  02ab b702          	ld	c_lreg+2,a
1209  02ad b701          	ld	c_lreg+1,a
1210  02af b700          	ld	c_lreg,a
1211  02b1 aef5          	ld	x,#_ACM_SlipRegulation$L-11
1212  02b3 cd0000        	call	c_rtol
1214  02b6 c60015        	ld	a,L5_Ki
1215  02b9 b703          	ld	c_lreg+3,a
1216  02bb 4f            	clr	a
1217  02bc b702          	ld	c_lreg+2,a
1218  02be b701          	ld	c_lreg+1,a
1219  02c0 b700          	ld	c_lreg,a
1220  02c2 a608          	ld	a,#8
1221  02c4 cd0000        	call	c_llsh
1223  02c7 cd0000        	call	c_lmul
1225  02ca ae06          	ld	x,#high(L71_DeltaVoltage_slip_s32)
1226  02cc bf00          	ld	c_x,x
1227  02ce ae06          	ld	x,#low(L71_DeltaVoltage_slip_s32)
1228  02d0 cd0000        	call	c_rtoxl
1230                     ; 408 		DeltaVoltage_slip = (s32) ( DeltaVoltage_slip_s32 / 2560 );     
1232  02d3 ae06          	ld	x,#high(L71_DeltaVoltage_slip_s32)
1233  02d5 bf00          	ld	c_x,x
1234  02d7 ae06          	ld	x,#low(L71_DeltaVoltage_slip_s32)
1235  02d9 cd0000        	call	c_xltor
1237  02dc ae00          	ld	x,#high(L62)
1238  02de bf00          	ld	c_x,x
1239  02e0 ae00          	ld	x,#low(L62)
1240  02e2 cd0000        	call	c_xldiv
1242  02e5 ae0c          	ld	x,#high(L31_DeltaVoltage_slip)
1243  02e7 bf00          	ld	c_x,x
1244  02e9 ae0c          	ld	x,#low(L31_DeltaVoltage_slip)
1245  02eb cd0000        	call	c_rtoxl
1247                     ; 409 		if( ((Error_slip>0) && !MaxPiOut) || ((Error_slip<0) && !MinPiOut) )
1249  02ee c60010        	ld	a,L11_Error_slip
1250                     	jrle	L734
1252  02f5 c60000        	ld	a,L52_MaxPiOut
1253  02f8 270a          	jreq	L534
1254  02fa               L734:
1256  02fa c60010        	ld	a,L11_Error_slip
1257  02fd 2a17          	jrpl	L334
1259  02ff c60001        	ld	a,L32_MinPiOut
1260  0302 2612          	jrne	L334
1261  0304               L534:
1262                     ; 411 			VoltageIntegralTerm += DeltaVoltage_slip; /* "integral" output */
1264  0304 ae0c          	ld	x,#high(L31_DeltaVoltage_slip)
1265  0306 bf00          	ld	c_x,x
1266  0308 ae0c          	ld	x,#low(L31_DeltaVoltage_slip)
1267  030a cd0000        	call	c_xltor
1269  030d ae11          	ld	x,#high(L7_VoltageIntegralTerm)
1270  030f bf00          	ld	c_x,x
1271  0311 ae11          	ld	x,#low(L7_VoltageIntegralTerm)
1272  0313 cd0000        	call	c_xlgadd
1274  0316               L334:
1275                     ; 414 		if ( ( DeltaVoltage_slip >= 0 ) && ( VoltageIntegralTerm < PreviousVoltageIntegral ) )
1277  0316 c6000c        	ld	a,L31_DeltaVoltage_slip
1278  0319 2b20          	jrmi	L144
1280  031b ae11          	ld	x,#high(L7_VoltageIntegralTerm)
1281  031d bf00          	ld	c_x,x
1282  031f ae11          	ld	x,#low(L7_VoltageIntegralTerm)
1283  0321 cd0000        	call	c_xltor
1285  0324 aef9          	ld	x,#_ACM_SlipRegulation$L-7

⌨️ 快捷键说明

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