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

📄 stm8_tsl_services.ls

📁 STM8s
💻 LS
📖 第 1 页 / 共 4 页
字号:
 856                     ; 359       TSL_MCKey_SetStructPointer();
 858  015a cd042e        	call	_TSL_MCKey_SetStructPointer
 860                     ; 360       if ((pMCKeyStruct->State.whole == PRE_DETECTED_STATE) || (pMCKeyStruct->State.whole == DETECTED_STATE) || (pMCKeyStruct->State.whole == POST_DETECTED_STATE))
 862  015d 92c600        	ld	a,[_pMCKeyStruct.w]
 863  0160 a114          	cp	a,#20
 864  0162 2751          	jreq	L303
 866  0164 92c600        	ld	a,[_pMCKeyStruct.w]
 867  0167 a104          	cp	a,#4
 868  0169 274a          	jreq	L303
 870  016b 92c600        	ld	a,[_pMCKeyStruct.w]
 871  016e a124          	cp	a,#36
 872  0170 2661          	jrne	L103
 873  0172 2041          	jra	L303
 874  0174               L342:
 875                     ; 331       if (pKeyStruct->State.whole == IDLE_STATE)
 877  0174 92c600        	ld	a,[_pKeyStruct.w]
 878  0177 a102          	cp	a,#2
 879  0179 2630          	jrne	L152
 880                     ; 333         TSL_DeltaCalculation();
 882  017b cd0011        	call	_TSL_DeltaCalculation
 884                     ; 334         if (Delta == 0)    // No Fast ECS !
 886  017e be00          	ldw	x,_Delta
 887  0180 2604          	jrne	L352
 888                     ; 335           ECS_Fast_Enable = 0;
 890  0182 0f07          	clr	(OFST-4,sp)
 892  0184 2025          	jra	L152
 893  0186               L352:
 894                     ; 338           if (Delta < 0)
 896  0186 9c            	rvf
 897  0187 be00          	ldw	x,_Delta
 898  0189 2e11          	jrsge	L752
 899                     ; 340             if (ECS_Fast_Direction > 0)    // No Fast ECS !
 901  018b 9c            	rvf
 902  018c 7b06          	ld	a,(OFST-5,sp)
 903  018e a100          	cp	a,#0
 904  0190 2d04          	jrsle	L162
 905                     ; 341               ECS_Fast_Enable = 0;
 907  0192 0f07          	clr	(OFST-4,sp)
 909  0194 2015          	jra	L152
 910  0196               L162:
 911                     ; 343               ECS_Fast_Direction = -1;
 913  0196 a6ff          	ld	a,#255
 914  0198 6b06          	ld	(OFST-5,sp),a
 915  019a 200f          	jra	L152
 916  019c               L752:
 917                     ; 347             if (ECS_Fast_Direction < 0)    // No Fast ECS !
 919  019c 9c            	rvf
 920  019d 7b06          	ld	a,(OFST-5,sp)
 921  019f a100          	cp	a,#0
 922  01a1 2e04          	jrsge	L762
 923                     ; 348               ECS_Fast_Enable = 0;
 925  01a3 0f07          	clr	(OFST-4,sp)
 927  01a5 2004          	jra	L152
 928  01a7               L762:
 929                     ; 350               ECS_Fast_Direction = + 1;
 931  01a7 a601          	ld	a,#1
 932  01a9 6b06          	ld	(OFST-5,sp),a
 933  01ab               L152:
 934                     ; 322     for (KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++)
 936  01ab 3c00          	inc	_KeyIndex
 939  01ad b600          	ld	a,_KeyIndex
 940  01af a102          	cp	a,#2
 941  01b1 258a          	jrult	L532
 942  01b3 20a3          	jra	L142
 943  01b5               L303:
 944                     ; 362         ECSTempoCounter = ECSTemporization;    // Restart temporization counter ...
 946  01b5 450000        	mov	_ECSTempoCounter,_ECSTemporization
 947                     ; 363         break;           // Out from the for loop
 948  01b8               L772:
 949                     ; 401     if (!ECSTimeStepCounter && !ECSTempoCounter)
 951  01b8 3d00          	tnz	_ECSTimeStepCounter
 952  01ba 2703          	jreq	L04
 953  01bc cc0358        	jp	L522
 954  01bf               L04:
 956  01bf 3d00          	tnz	_ECSTempoCounter
 957  01c1 2703          	jreq	L24
 958  01c3 cc0358        	jp	L522
 959  01c6               L24:
 960                     ; 403       ECSTimeStepCounter = ECSTimeStep;
 962  01c6 450000        	mov	_ECSTimeStepCounter,_ECSTimeStep
 963                     ; 405       if (ECS_Fast_Enable)
 965  01c9 0d07          	tnz	(OFST-4,sp)
 966  01cb 275c          	jreq	L143
 967                     ; 407         K_Filter = ECS_K_Fast;
 969  01cd b600          	ld	a,_ECS_K_Fast
 970  01cf 6b05          	ld	(OFST-6,sp),a
 971  01d1 2056          	jra	L143
 972  01d3               L103:
 973                     ; 365       if (pMCKeyStruct->State.whole == IDLE_STATE)
 975  01d3 92c600        	ld	a,[_pMCKeyStruct.w]
 976  01d6 a102          	cp	a,#2
 977  01d8 2644          	jrne	L703
 978                     ; 367         for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
 980  01da 3f00          	clr	_ChannelIndex
 981  01dc               L113:
 982                     ; 369           TSL_MCKey_DeltaCalculation(ChannelIndex);
 984  01dc b600          	ld	a,_ChannelIndex
 985  01de cd043f        	call	_TSL_MCKey_DeltaCalculation
 987                     ; 370           Delta1 += Delta;
 989  01e1 be00          	ldw	x,_Delta1
 990  01e3 72bb0000      	addw	x,_Delta
 991  01e7 bf00          	ldw	_Delta1,x
 992                     ; 367         for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
 994  01e9 3c00          	inc	_ChannelIndex
 997  01eb b600          	ld	a,_ChannelIndex
 998  01ed a105          	cp	a,#5
 999  01ef 25eb          	jrult	L113
1000                     ; 372         if (Delta1 == 0)
1002  01f1 be00          	ldw	x,_Delta1
1003  01f3 2604          	jrne	L713
1004                     ; 374           ECS_Fast_Enable = 0;
1006  01f5 0f07          	clr	(OFST-4,sp)
1008  01f7 2025          	jra	L703
1009  01f9               L713:
1010                     ; 378           if (Delta1 < 0)
1012  01f9 9c            	rvf
1013  01fa be00          	ldw	x,_Delta1
1014  01fc 2e11          	jrsge	L323
1015                     ; 380             if (ECS_Fast_Direction > 0)
1017  01fe 9c            	rvf
1018  01ff 7b06          	ld	a,(OFST-5,sp)
1019  0201 a100          	cp	a,#0
1020  0203 2d04          	jrsle	L523
1021                     ; 382               ECS_Fast_Enable = 0;
1023  0205 0f07          	clr	(OFST-4,sp)
1025  0207 2015          	jra	L703
1026  0209               L523:
1027                     ; 385               ECS_Fast_Direction = -1;
1029  0209 a6ff          	ld	a,#255
1030  020b 6b06          	ld	(OFST-5,sp),a
1031  020d 200f          	jra	L703
1032  020f               L323:
1033                     ; 389             if (ECS_Fast_Direction < 0)
1035  020f 9c            	rvf
1036  0210 7b06          	ld	a,(OFST-5,sp)
1037  0212 a100          	cp	a,#0
1038  0214 2e04          	jrsge	L333
1039                     ; 391               ECS_Fast_Enable = 0;
1041  0216 0f07          	clr	(OFST-4,sp)
1043  0218 2004          	jra	L703
1044  021a               L333:
1045                     ; 394               ECS_Fast_Direction = + 1;
1047  021a a601          	ld	a,#1
1048  021c 6b06          	ld	(OFST-5,sp),a
1049  021e               L703:
1050                     ; 357     for (KeyIndex = 0; KeyIndex < NUMBER_OF_MULTI_CHANNEL_KEYS; KeyIndex++)
1052  021e 3c00          	inc	_KeyIndex
1055  0220 3d00          	tnz	_KeyIndex
1056  0222 2603          	jrne	L44
1057  0224 cc015a        	jp	L372
1058  0227               L44:
1059  0227 208f          	jra	L772
1060  0229               L143:
1061                     ; 410       K_Filter_Complement = (u8)((0xFF ^ K_Filter) + 1);
1063  0229 7b05          	ld	a,(OFST-6,sp)
1064  022b a8ff          	xor	a,#255
1065  022d 4c            	inc	a
1066  022e 6b07          	ld	(OFST-4,sp),a
1067                     ; 412       if (K_Filter)
1069  0230 0d05          	tnz	(OFST-6,sp)
1070  0232 2603          	jrne	L64
1071  0234 cc0358        	jp	L522
1072  0237               L64:
1073                     ; 416         for (KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++)
1075  0237 3f00          	clr	_KeyIndex
1076  0239               L543:
1077                     ; 418           TSL_SetStructPointer();
1079  0239 cd0000        	call	_TSL_SetStructPointer
1081                     ; 419           if (pKeyStruct->State.whole == IDLE_STATE)
1083  023c 92c600        	ld	a,[_pKeyStruct.w]
1084  023f a102          	cp	a,#2
1085  0241 2660          	jrne	L353
1086                     ; 421             IIR_Result = ((u32)(pKeyStruct->Channel.Reference) << 8) + pKeyStruct->Channel.ECSRefRest;
1088  0243 be00          	ldw	x,_pKeyStruct
1089  0245 ee08          	ldw	x,(8,x)
1090  0247 90ae0100      	ldw	y,#256
1091  024b cd0000        	call	c_umul
1093  024e be00          	ldw	x,_pKeyStruct
1094  0250 e60b          	ld	a,(11,x)
1095  0252 cd0000        	call	c_ladc
1097  0255 96            	ldw	x,sp
1098  0256 1c0008        	addw	x,#OFST-3
1099  0259 cd0000        	call	c_rtol
1101                     ; 422             IIR_Result = K_Filter_Complement * IIR_Result;
1103  025c 7b07          	ld	a,(OFST-4,sp)
1104  025e b703          	ld	c_lreg+3,a
1105  0260 3f02          	clr	c_lreg+2
1106  0262 3f01          	clr	c_lreg+1
1107  0264 3f00          	clr	c_lreg
1108  0266 96            	ldw	x,sp
1109  0267 1c0008        	addw	x,#OFST-3
1110  026a cd0000        	call	c_lgmul
1112                     ; 423             IIR_Result += K_Filter * ((u32)(pKeyStruct->Channel.LastMeas) << 8);
1114  026d 7b05          	ld	a,(OFST-6,sp)
1115  026f b703          	ld	c_lreg+3,a
1116  0271 3f02          	clr	c_lreg+2
1117  0273 3f01          	clr	c_lreg+1
1118  0275 3f00          	clr	c_lreg
1119  0277 96            	ldw	x,sp
1120  0278 1c0001        	addw	x,#OFST-10
1121  027b cd0000        	call	c_rtol
1123  027e be00          	ldw	x,_pKeyStruct
1124  0280 ee05          	ldw	x,(5,x)
1125  0282 90ae0100      	ldw	y,#256
1126  0286 cd0000        	call	c_umul
1128  0289 96            	ldw	x,sp
1129  028a 1c0001        	addw	x,#OFST-10
1130  028d cd0000        	call	c_lmul
1132  0290 96            	ldw	x,sp
1133  0291 1c0008        	addw	x,#OFST-3
1134  0294 cd0000        	call	c_lgadd
1136                     ; 424             pKeyStruct->Channel.Reference = (u16)(IIR_Result >> 16);
1138  0297 be00          	ldw	x,_pKeyStruct
1139  0299 1608          	ldw	y,(OFST-3,sp)
1140  029b ef08          	ldw	(8,x),y
1141                     ; 425             pKeyStruct->Channel.ECSRefRest = (u8)(IIR_Result >> 8);
1143  029d 7b0a          	ld	a,(OFST-1,sp)
1144  029f be00          	ldw	x,_pKeyStruct
1145  02a1 e70b          	ld	(11,x),a
1146  02a3               L353:
1147                     ; 416         for (KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++)
1149  02a3 3c00          	inc	_KeyIndex
1152  02a5 b600          	ld	a,_KeyIndex
1153  02a7 a102          	cp	a,#2
1154  02a9 258e          	jrult	L543
1155                     ; 430         for (KeyIndex = 0; KeyIndex < NUMBER_OF_MULTI_CHANNEL_KEYS; KeyIndex++)
1157  02ab 3f00          	clr	_KeyIndex
1158  02ad               L553:
1159                     ; 432           TSL_MCKey_SetStructPointer();
1161  02ad cd042e        	call	_TSL_MCKey_SetStructPointer
1163                     ; 433           if (pMCKeyStruct->State.whole == IDLE_STATE)
1165  02b0 92c600        	ld	a,[_pMCKeyStruct.w]
1166  02b3 a102          	cp	a,#2
1167  02b5 2703          	jreq	L05
1168  02b7 cc034f        	jp	L363
1169  02ba               L05:
1170                     ; 435             for (ChannelIndex = 0; ChannelIndex < CHANNEL_PER_MCKEY; ChannelIndex++)
1172  02ba 3f00          	clr	_ChannelIndex
1173  02bc               L563:
1174                     ; 437               IIR_Result = ((u32)(pMCKeyStruct->Channel[ChannelIndex].Reference) << 8) + pMCKeyStruct->Channel[ChannelIndex].ECSRefRest;
1176  02bc b600          	ld	a,_ChannelIndex
1177  02be 97            	ld	xl,a
1178  02bf a607          	ld	a,#7
1179  02c1 42            	mul	x,a
1180  02c2 72bb0000      	addw	x,_pMCKeyStruct
1181  02c6 ee08          	ldw	x,(8,x)
1182  02c8 90ae0100      	ldw	y,#256
1183  02cc cd0000        	call	c_umul
1185  02cf b600          	ld	a,_ChannelIndex
1186  02d1 97            	ld	xl,a
1187  02d2 a607          	ld	a,#7
1188  02d4 42            	mul	x,a
1189  02d5 72bb0000      	addw	x,_pMCKeyStruct
1190  02d9 e60b          	ld	a,(11,x)
1191  02db cd0000        	call	c_ladc
1193  02de 96            	ldw	x,sp
1194  02df 1c0008        	addw	x,#OFST-3
1195  02e2 cd0000        	call	c_rtol
1197                     ; 438               IIR_Result = K_Filter_Complement * IIR_Result;
1199  02e5 7b07          	ld	a,(OFST-4,sp)
1200  02e7 b703          	ld	c_lreg+3,a
1201  02e9 3f02          	clr	c_lreg+2
1202  02eb 3f01          	clr	c_lreg+1
1203  02ed 3f00          	clr	c_lreg
1204  02ef 96            	ldw	x,sp
1205  02f0 1c0008        	addw	x,#OFST-3
1206  02f3 cd0000        	call	c_lgmul
1208                     ; 439               IIR_Result += K_Filter * ((u32)(pMCKeyStruct->Channel[ChannelIndex].LastMeas) << 8);
1210  02f6 7b05          	ld	a,(OFST-6,sp)
1211  02f8 b703          	ld	c_lreg+3,a
1212  02fa 3f02          	clr	c_lreg+2
1213  02fc 3f01          	clr	c_lreg+1
1214  02fe 3f00          	clr	c_lreg
1215  0300 96            	ldw	x,sp
1216  0301 1c0001        	addw	x,#OFST-10
1217  0304 cd0000        	call	c_rtol
1219  0307 b600          	ld	a,_ChannelIndex
1220  0309 97            	ld	xl,a
1221  030a a607          	ld	a,#7
1222  030c 42            	mul	x,a
1223  030d 72bb0000      	addw	x,_pMCKeyStruct
1224  0311 ee05          	ldw	x,(5,x)
1225  0313 90ae0100      	ldw	y,#256
1226  0317 cd0000        	call	c_umul
1228  031a 96            	ldw	x,sp
1229  031b 1c0001        	addw	x,#OFST-10
1230  031e cd0000        	call	c_lmul
1232  0321 96            	ldw	x,sp
1233  0322 1c0008        	addw	x,#OFST-3
1234  0325 cd0000        	call	c_lgadd
1236                     ; 440               pMCKeyStruct->Channel[ChannelIndex].Reference = (u16)(IIR_Result >> 16);
1238  0328 b600          	ld	a,_ChannelIndex
1239  032a 97            	ld	xl,a
1240  032b a607          	ld	a,#7
1241  032d 42            	mul	x,a
1242  032e 72bb0000      	addw	x,_pMCKeyStruct
1243  0332 1608          	ldw	y,(OFST-3,sp)
1244  0334 ef08          	ldw	(8,x),y
1245                     ; 441               pMCKeyStruct->Channel[ChannelIndex].ECSRefRest = (u8)(IIR_Result >> 8);
1247  0336 b600          	ld	a,_ChannelIndex
1248  0338 97            	ld	xl,a

⌨️ 快捷键说明

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