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

📄 stm8_tsl_rc_services.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 2 页
字号:
 820                     ; 313         break;           // Out from the for loop
 822  0154 203f          	jra	L722
 823  0156               L132:
 824                     ; 315       if ( pKeyStruct->State.whole == IDLE_STATE )
 826  0156 92c600        	ld	a,[_pKeyStruct.w]
 827  0159 a102          	cp	a,#2
 828  015b 2630          	jrne	L332
 829                     ; 317         TSL_DeltaCalculation();
 831  015d cd000c        	call	_TSL_DeltaCalculation
 833                     ; 318         if ( Delta == 0 )  // No Fast ECS !
 835  0160 be00          	ldw	x,_Delta
 836  0162 2604          	jrne	L532
 837                     ; 319           ECS_Fast_Enable = 0;
 839  0164 0f07          	clr	(OFST-4,sp)
 841  0166 2025          	jra	L332
 842  0168               L532:
 843                     ; 322           if ( Delta < 0 )
 845  0168 9c            	rvf
 846  0169 be00          	ldw	x,_Delta
 847  016b 2e11          	jrsge	L142
 848                     ; 324             if ( ECS_Fast_Direction > 0 )  // No Fast ECS !
 850  016d 9c            	rvf
 851  016e 7b06          	ld	a,(OFST-5,sp)
 852  0170 a100          	cp	a,#0
 853  0172 2d04          	jrsle	L342
 854                     ; 325               ECS_Fast_Enable = 0;
 856  0174 0f07          	clr	(OFST-4,sp)
 858  0176 2015          	jra	L332
 859  0178               L342:
 860                     ; 327               ECS_Fast_Direction = -1;
 862  0178 a6ff          	ld	a,#255
 863  017a 6b06          	ld	(OFST-5,sp),a
 864  017c 200f          	jra	L332
 865  017e               L142:
 866                     ; 331             if ( ECS_Fast_Direction < 0 )  // No Fast ECS !
 868  017e 9c            	rvf
 869  017f 7b06          	ld	a,(OFST-5,sp)
 870  0181 a100          	cp	a,#0
 871  0183 2e04          	jrsge	L152
 872                     ; 332               ECS_Fast_Enable = 0;
 874  0185 0f07          	clr	(OFST-4,sp)
 876  0187 2004          	jra	L332
 877  0189               L152:
 878                     ; 334               ECS_Fast_Direction = + 1;
 880  0189 a601          	ld	a,#1
 881  018b 6b06          	ld	(OFST-5,sp),a
 882  018d               L332:
 883                     ; 306     for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
 885  018d 3c00          	inc	_KeyIndex
 888  018f b600          	ld	a,_KeyIndex
 889  0191 a103          	cp	a,#3
 890  0193 25b0          	jrult	L322
 891  0195               L722:
 892                     ; 385     if ( !ECSTimeStepCounter && !ECSTempoCounter )
 894  0195 3d00          	tnz	_ECSTimeStepCounter
 895  0197 2703          	jreq	L63
 896  0199 cc0234        	jp	L312
 897  019c               L63:
 899  019c 725d0000      	tnz	_ECSTempoCounter
 900  01a0 2703          	jreq	L04
 901  01a2 cc0234        	jp	L312
 902  01a5               L04:
 903                     ; 387       ECSTimeStepCounter = ECSTimeStep;
 905  01a5 5500000000    	mov	_ECSTimeStepCounter,_ECSTimeStep
 906                     ; 389       if (ECS_Fast_Enable)
 908  01aa 0d07          	tnz	(OFST-4,sp)
 909  01ac 2705          	jreq	L752
 910                     ; 391         K_Filter = ECS_K_Fast;
 912  01ae c60000        	ld	a,_ECS_K_Fast
 913  01b1 6b05          	ld	(OFST-6,sp),a
 914  01b3               L752:
 915                     ; 394       K_Filter_Complement = (u8)((0xFF ^ K_Filter) + 1);
 917  01b3 7b05          	ld	a,(OFST-6,sp)
 918  01b5 a8ff          	xor	a,#255
 919  01b7 4c            	inc	a
 920  01b8 6b07          	ld	(OFST-4,sp),a
 921                     ; 396       if ( K_Filter )
 923  01ba 0d05          	tnz	(OFST-6,sp)
 924  01bc 2602          	jrne	L24
 925  01be 2074          	jp	L312
 926  01c0               L24:
 927                     ; 399         for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
 929  01c0 3f00          	clr	_KeyIndex
 930  01c2               L362:
 931                     ; 401           TSL_SetStructPointer();
 933  01c2 cd0000        	call	_TSL_SetStructPointer
 935                     ; 402           if ( pKeyStruct->State.whole == IDLE_STATE )
 937  01c5 92c600        	ld	a,[_pKeyStruct.w]
 938  01c8 a102          	cp	a,#2
 939  01ca 2660          	jrne	L172
 940                     ; 404             IIR_Result = ((u32)(pKeyStruct->Channel.Reference) << 8) + pKeyStruct->Channel.ECSRefRest;
 942  01cc be00          	ldw	x,_pKeyStruct
 943  01ce ee08          	ldw	x,(8,x)
 944  01d0 90ae0100      	ldw	y,#256
 945  01d4 cd0000        	call	c_umul
 947  01d7 be00          	ldw	x,_pKeyStruct
 948  01d9 e60b          	ld	a,(11,x)
 949  01db cd0000        	call	c_ladc
 951  01de 96            	ldw	x,sp
 952  01df 1c0008        	addw	x,#OFST-3
 953  01e2 cd0000        	call	c_rtol
 955                     ; 405             IIR_Result = K_Filter_Complement * IIR_Result;
 957  01e5 7b07          	ld	a,(OFST-4,sp)
 958  01e7 b703          	ld	c_lreg+3,a
 959  01e9 3f02          	clr	c_lreg+2
 960  01eb 3f01          	clr	c_lreg+1
 961  01ed 3f00          	clr	c_lreg
 962  01ef 96            	ldw	x,sp
 963  01f0 1c0008        	addw	x,#OFST-3
 964  01f3 cd0000        	call	c_lgmul
 966                     ; 406             IIR_Result += K_Filter * ((u32)(pKeyStruct->Channel.LastMeas) << 8);
 968  01f6 7b05          	ld	a,(OFST-6,sp)
 969  01f8 b703          	ld	c_lreg+3,a
 970  01fa 3f02          	clr	c_lreg+2
 971  01fc 3f01          	clr	c_lreg+1
 972  01fe 3f00          	clr	c_lreg
 973  0200 96            	ldw	x,sp
 974  0201 1c0001        	addw	x,#OFST-10
 975  0204 cd0000        	call	c_rtol
 977  0207 be00          	ldw	x,_pKeyStruct
 978  0209 ee05          	ldw	x,(5,x)
 979  020b 90ae0100      	ldw	y,#256
 980  020f cd0000        	call	c_umul
 982  0212 96            	ldw	x,sp
 983  0213 1c0001        	addw	x,#OFST-10
 984  0216 cd0000        	call	c_lmul
 986  0219 96            	ldw	x,sp
 987  021a 1c0008        	addw	x,#OFST-3
 988  021d cd0000        	call	c_lgadd
 990                     ; 407             pKeyStruct->Channel.Reference = (u16)(IIR_Result >> 16);
 992  0220 be00          	ldw	x,_pKeyStruct
 993  0222 1608          	ldw	y,(OFST-3,sp)
 994  0224 ef08          	ldw	(8,x),y
 995                     ; 408             pKeyStruct->Channel.ECSRefRest = (u8)(IIR_Result >> 8);
 997  0226 7b0a          	ld	a,(OFST-1,sp)
 998  0228 be00          	ldw	x,_pKeyStruct
 999  022a e70b          	ld	(11,x),a
1000  022c               L172:
1001                     ; 399         for ( KeyIndex = 0; KeyIndex < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyIndex++ )
1003  022c 3c00          	inc	_KeyIndex
1006  022e b600          	ld	a,_KeyIndex
1007  0230 a103          	cp	a,#3
1008  0232 258e          	jrult	L362
1009  0234               L312:
1010                     ; 292   while ( Local_TickECS10ms-- )
1012  0234 b600          	ld	a,_Local_TickECS10ms
1013  0236 3a00          	dec	_Local_TickECS10ms
1014  0238 4d            	tnz	a
1015  0239 2703          	jreq	L44
1016  023b cc011e        	jp	L112
1017  023e               L44:
1018                     ; 431 }
1021  023e 5b0b          	addw	sp,#11
1022  0240 81            	ret
1064                     ; 445 void TSL_SCKey_DES(void)
1064                     ; 446 {
1065                     	switch	.text
1066  0241               _TSL_SCKey_DES:
1068  0241 89            	pushw	x
1069       00000002      OFST:	set	2
1072                     ; 450   if ( pKeyStruct->Setting.b.LOCKED )
1074  0242 be00          	ldw	x,_pKeyStruct
1075  0244 e602          	ld	a,(2,x)
1076  0246 a580          	bcp	a,#128
1077  0248 262c          	jrne	L05
1078                     ; 451     return;
1080                     ; 453   DESGroupMask = pKeyStruct->DESGroup;
1082  024a be00          	ldw	x,_pKeyStruct
1083  024c e604          	ld	a,(4,x)
1084  024e 6b01          	ld	(OFST-1,sp),a
1085                     ; 455   for ( KeyToCheck = 0; KeyToCheck < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyToCheck++ )
1087  0250 0f02          	clr	(OFST+0,sp)
1088  0252               L513:
1089                     ; 457     if ( KeyToCheck != KeyIndex )
1091  0252 7b02          	ld	a,(OFST+0,sp)
1092  0254 b100          	cp	a,_KeyIndex
1093  0256 2720          	jreq	L323
1094                     ; 460       if ( sSCKeyInfo[KeyToCheck].DESGroup & DESGroupMask )
1096  0258 7b02          	ld	a,(OFST+0,sp)
1097  025a 97            	ld	xl,a
1098  025b a60f          	ld	a,#15
1099  025d 42            	mul	x,a
1100  025e d60004        	ld	a,(_sSCKeyInfo+4,x)
1101  0261 1501          	bcp	a,(OFST-1,sp)
1102  0263 2713          	jreq	L323
1103                     ; 462         if ( sSCKeyInfo[KeyToCheck].Setting.b.LOCKED )
1105  0265 7b02          	ld	a,(OFST+0,sp)
1106  0267 97            	ld	xl,a
1107  0268 a60f          	ld	a,#15
1108  026a 42            	mul	x,a
1109  026b d60002        	ld	a,(_sSCKeyInfo+2,x)
1110  026e a580          	bcp	a,#128
1111  0270 2706          	jreq	L323
1112                     ; 464           goto ExitToIdle;
1113                     ; 487 ExitToIdle:   // The DES is verified at PRE DETECT state only !
1113                     ; 488   pKeyStruct->Channel.IntegratorCounter++;  // Increment integrator to never allow DETECT state
1115  0272 be00          	ldw	x,_pKeyStruct
1116  0274 6c0a          	inc	(10,x)
1117                     ; 489   return;
1118  0276               L05:
1121  0276 85            	popw	x
1122  0277 81            	ret
1123  0278               L323:
1124                     ; 455   for ( KeyToCheck = 0; KeyToCheck < NUMBER_OF_SINGLE_CHANNEL_KEYS; KeyToCheck++ )
1126  0278 0c02          	inc	(OFST+0,sp)
1129  027a 7b02          	ld	a,(OFST+0,sp)
1130  027c a103          	cp	a,#3
1131  027e 25d2          	jrult	L513
1132                     ; 484   pKeyStruct->Setting.b.LOCKED = 1;
1134  0280 be00          	ldw	x,_pKeyStruct
1135  0282 e602          	ld	a,(2,x)
1136  0284 aa80          	or	a,#128
1137  0286 e702          	ld	(2,x),a
1138                     ; 485   return;
1140  0288 20ec          	jra	L05
1168                     ; 503 void TSL_SCKey_DetectionTimeout(void)
1168                     ; 504 {
1169                     	switch	.text
1170  028a               _TSL_SCKey_DetectionTimeout:
1174                     ; 505   if ( Local_TickFlag.b.DTO_1sec )
1176  028a b600          	ld	a,_Local_TickFlag
1177  028c a501          	bcp	a,#1
1178  028e 2713          	jreq	L143
1179                     ; 507     if ( DetectionTimeout )
1181  0290 725d0000      	tnz	_DetectionTimeout
1182  0294 270d          	jreq	L143
1183                     ; 509       pKeyStruct->Counter--;
1185  0296 be00          	ldw	x,_pKeyStruct
1186  0298 6a03          	dec	(3,x)
1187                     ; 510       if ( !pKeyStruct->Counter )
1189  029a be00          	ldw	x,_pKeyStruct
1190  029c 6d03          	tnz	(3,x)
1191  029e 2603          	jrne	L143
1192                     ; 512         TSL_SCKey_SetCalibrationState( );
1194  02a0 cd0093        	call	_TSL_SCKey_SetCalibrationState
1196  02a3               L143:
1197                     ; 516 }
1200  02a3 81            	ret
1213                     	xdef	_TSL_SCKey_DetectionTimeout
1214                     	xdef	_TSL_SCKey_DES
1215                     	xdef	_TSL_ECS
1216                     	xdef	_TSL_SCKey_SetDisabledState
1217                     	xdef	_TSL_SCKey_SetErrorState
1218                     	xdef	_TSL_SCKey_SetPreRecalibrationState
1219                     	xdef	_TSL_SCKey_BackToDetectedState
1220                     	xdef	_TSL_SCKey_SetPostDetectState
1221                     	xdef	_TSL_SCKey_SetDetectedState
1222                     	xdef	_TSL_SCKey_SetPreDetectState
1223                     	xdef	_TSL_SCKey_BackToIdleState
1224                     	xdef	_TSL_SCKey_SetIdleState
1225                     	xdef	_TSL_DeltaCalculation
1226                     	xdef	_TSL_SetStructPointer
1227                     	xref	_ECSTempoPrescaler
1228                     	xref	_ECSTempoCounter
1229                     	xref.b	_ECSTimeStepCounter
1230                     	xref.b	_Local_TickFlag
1231                     	xref.b	_Local_TickECS10ms
1232                     	xref.b	_Delta
1233                     	xref.b	_KeyIndex
1234                     	xdef	_TSL_SCKey_SetCalibrationState
1235                     	xref	_ECS_K_Slow
1236                     	xref	_ECS_K_Fast
1237                     	xref	_ECSTemporization
1238                     	xref	_ECSTimeStep
1239                     	xref	_RecalibrationIntegrator
1240                     	xref	_EndDetectionIntegrator
1241                     	xref	_DetectionIntegrator
1242                     	xref	_DetectionTimeout
1243                     	xref	_sSCKeyInfo
1244                     	xref.b	_pKeyStruct
1245                     	xref.b	_TSL_TickCount_ECS_10ms
1246                     	xref.b	c_lreg
1247                     	xref.b	c_x
1248                     	xref.b	c_y
1267                     	xref	c_lgadd
1268                     	xref	c_lmul
1269                     	xref	c_lgmul
1270                     	xref	c_rtol
1271                     	xref	c_ladc
1272                     	xref	c_umul
1273                     	end

⌨️ 快捷键说明

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