; generated by Component: ARM Compiler 5.06 update 7 (build 960) Tool: armcc [4d365d]
; commandline armcc [--c99 --list --split_sections --debug -c --asm --interleave -o..\Output\TKDriver.o --asm_dir=..\List --list_dir=..\List --cpu=Cortex-M0+ --apcs=interwork -I..\FWLib\SC32F1XXX_Lib\inc -I..\User\HeadFiles -I..\User -I..\Drivers -I..\Apps -I..\CMSIS -DSC32f12xx -D__UVISION_VERSION=536 ..\Drivers\TKDriver\C\TKDriver.C]
                          THUMB
                          AREA ||i.TK_GetBaseLineAdjustValue||, CODE, READONLY, ALIGN=2
                  TK_GetBaseLineAdjustValue PROC
;;;277    *****************************************************************************/
;;;278    uint8_t TK_GetBaseLineAdjustValue(uint8_t i)
000000  4901              LDR      r1,|L1.8|
;;;279    {	
;;;280         return SingleParameterBufferSet[i].BaseLineAdjusttmp; 
000002  5c08              LDRB     r0,[r1,r0]
;;;281    }
000004  4770              BX       lr
;;;282    
                          ENDP
000006  0000              DCW      0x0000
                  |L1.8|
                          DCD      ||.bss||+0x9
                          AREA ||i.TK_GetBaselineUpdateThreshold||, CODE, READONLY, ALIGN=1
                  TK_GetBaselineUpdateThreshold PROC
;;;180    *****************************************************************************/
;;;181    uint16_t TK_GetBaselineUpdateThreshold(void)
000000  2064              MOVS     r0,#0x64
;;;182    {
;;;183    	return TKCFG[SET_UPDATE_SPEED]; 
;;;184    }
000002  4770              BX       lr
;;;185    
                          ENDP
                          AREA ||i.TK_GetCfgMsg||, CODE, READONLY, ALIGN=2
                  TK_GetCfgMsg PROC
;;;362    *****************************************************************************/
;;;363    uint8_t  TK_GetCfgMsg(uint8_t i,uint8_t j)
000000  b530              PUSH     {r4,r5,lr}
;;;364    {
;;;365    	switch(j)
;;;366    	{ 
;;;367    		case 0:  return TKChannelCfg[i][SET_TOUCH_FREQ]; 
000002  220a              MOVS     r2,#0xa
000004  4604              MOV      r4,r0
000006  4d0d              LDR      r5,|L3.60|
000008  4354              MULS     r4,r2,r4
;;;368    		case 1:  return TKChannelCfg[i][SET_RESOLUTION];
00000a  1962              ADDS     r2,r4,r5
00000c  000b              MOVS     r3,r1                 ;365
00000e  f7fffffe          BL       __ARM_common_switch8
000012  0705              DCB      0x07,0x05
000014  07090b12          DCB      0x07,0x09,0x0b,0x12
000018  0e101200          DCB      0x0e,0x10,0x12,0x00
00001c  5d28              LDRB     r0,[r5,r4]            ;367
;;;369    		case 2:  return TKChannelCfg[i][SET_GAIN_CFG];
;;;370    		case 3:  return TK_GetBaseLineAdjustValue(i);
;;;371    		case 4:  return TKCFG[SET_ANTIJAM];
;;;372    		case 5:  return TKChannelCfg[i][SET_RESOLUTION_FACTOR];
;;;373    		case 6:  return TKChannelCfg[i][SET_ICHA_FACTOR];
;;;374    		
;;;375    		default:return 0; 	 	
;;;376    	}
;;;377    }
00001e  bd30              POP      {r4,r5,pc}
000020  7890              LDRB     r0,[r2,#2]            ;368
000022  bd30              POP      {r4,r5,pc}
000024  78d0              LDRB     r0,[r2,#3]            ;369
000026  bd30              POP      {r4,r5,pc}
000028  4905              LDR      r1,|L3.64|
00002a  5c08              LDRB     r0,[r1,r0]
00002c  bd30              POP      {r4,r5,pc}
00002e  7850              LDRB     r0,[r2,#1]            ;372
000030  bd30              POP      {r4,r5,pc}
000032  7950              LDRB     r0,[r2,#5]            ;373
000034  bd30              POP      {r4,r5,pc}
000036  2000              MOVS     r0,#0                 ;375
000038  bd30              POP      {r4,r5,pc}
;;;378    
                          ENDP
00003a  0000              DCW      0x0000
                  |L3.60|
                          DCD      ||area_number.29||
                  |L3.64|
                          DCD      ||.bss||+0x9
                          AREA ||i.TK_GetCsFunction||, CODE, READONLY, ALIGN=1
                  TK_GetCsFunction PROC
;;;216    *****************************************************************************/
;;;217    uint8_t TK_GetCsFunction(void)
000000  2001              MOVS     r0,#1
;;;218    {
;;;219    	return SOCAPI_SET_CS_FUNCTION; 
;;;220    }
000002  4770              BX       lr
;;;221    
                          ENDP
                          AREA ||i.TK_GetCurrFingerValue||, CODE, READONLY, ALIGN=2
                  TK_GetCurrFingerValue PROC
;;;252    *****************************************************************************/
;;;253    uint16_t TK_GetCurrFingerValue(uint8_t i)
000000  210a              MOVS     r1,#0xa
;;;254    { 
;;;255    	return	TKChannelCfg[i][FINGER_THRESHOLD_H]*256+TKChannelCfg[i][FINGER_THRESHOLD_L] ;
000002  4348              MULS     r0,r1,r0
000004  4903              LDR      r1,|L5.20|
000006  1840              ADDS     r0,r0,r1
000008  7a01              LDRB     r1,[r0,#8]
00000a  7a40              LDRB     r0,[r0,#9]
00000c  0209              LSLS     r1,r1,#8
00000e  1808              ADDS     r0,r1,r0
000010  b280              UXTH     r0,r0
;;;256    }
000012  4770              BX       lr
;;;257    
                          ENDP
                  |L5.20|
                          DCD      ||area_number.29||
                          AREA ||i.TK_GetInitAutoUpdateTime||, CODE, READONLY, ALIGN=1
                  TK_GetInitAutoUpdateTime PROC
;;;192    *****************************************************************************/
;;;193    uint8_t TK_GetInitAutoUpdateTime(void)
000000  200a              MOVS     r0,#0xa
;;;194    {
;;;195    	return  TKCFG[INIT_AUTO_UPDATE_TIME];
;;;196    }
000002  4770              BX       lr
;;;197    
                          ENDP
                          AREA ||i.TK_GetScanTimeValue||, CODE, READONLY, ALIGN=2
                  TK_GetScanTimeValue PROC
;;;264    *****************************************************************************/
;;;265    uint8_t TK_GetScanTimeValue(uint8_t i)
000000  210a              MOVS     r1,#0xa
;;;266    { 
;;;267    	return TKChannelCfg[i][SCANTIME];
000002  4348              MULS     r0,r1,r0
000004  4901              LDR      r1,|L7.12|
000006  1840              ADDS     r0,r0,r1
000008  7900              LDRB     r0,[r0,#4]
;;;268    }
00000a  4770              BX       lr
;;;269    
                          ENDP
                  |L7.12|
                          DCD      ||area_number.29||
                          AREA ||i.TK_GetTKYzCnt||, CODE, READONLY, ALIGN=2
                  TK_GetTKYzCnt PROC
;;;240    *****************************************************************************/
;;;241    uint8_t TK_GetTKYzCnt(void)
000000  b510              PUSH     {r4,lr}
;;;242    {
;;;243    	return (ConfirmTouchCnt/3);
000002  4803              LDR      r0,|L8.16|
000004  2103              MOVS     r1,#3
000006  7840              LDRB     r0,[r0,#1]  ; ConfirmTouchCnt
000008  f7fffffe          BL       __aeabi_uidivmod
;;;244    }
00000c  bd10              POP      {r4,pc}
;;;245    
                          ENDP
00000e  0000              DCW      0x0000
                  |L8.16|
                          DCD      ||.data||
                          AREA ||i.TK_GetTKYzThreshold||, CODE, READONLY, ALIGN=1
                  TK_GetTKYzThreshold PROC
;;;289    *****************************************************************************/
;;;290    uint16_t TK_GetTKYzThreshold(uint8_t i)
000000  b510              PUSH     {r4,lr}
;;;291    {	
;;;292    	uint16_t SetFingerThresholdtmp; 
;;;293    	
;;;294    	SetFingerThresholdtmp = TK_GetCurrFingerValue(i); 
000002  f7fffffe          BL       TK_GetCurrFingerValue
;;;295        SetFingerThresholdtmp = SetFingerThresholdtmp*SOCAPI_INHIBITION_ZONE/10;
000006  00c0              LSLS     r0,r0,#3
000008  210a              MOVS     r1,#0xa
00000a  f7fffffe          BL       __aeabi_uidivmod
00000e  b280              UXTH     r0,r0
;;;296    
;;;297    	return SetFingerThresholdtmp;
;;;298    }
000010  bd10              POP      {r4,pc}
;;;299    
                          ENDP
                          AREA ||i.TK_GetUpConfirmCnt||, CODE, READONLY, ALIGN=2
                  TK_GetUpConfirmCnt PROC
;;;228    *****************************************************************************/
;;;229    uint8_t TK_GetUpConfirmCnt(void)
000000  4801              LDR      r0,|L10.8|
;;;230    {
;;;231    	return ConfirmTouchCnt>>1;
000002  7840              LDRB     r0,[r0,#1]  ; ConfirmTouchCnt
000004  0840              LSRS     r0,r0,#1
;;;232    }
000006  4770              BX       lr
;;;233    
                          ENDP
                  |L10.8|
                          DCD      ||.data||
                          AREA ||i.TK_IRQHandler||, CODE, READONLY, ALIGN=1
                  TK_IRQHandler PROC
;;;544    *****************************************************************************/
;;;545    void TK_IRQHandler(void)
000000  b510              PUSH     {r4,lr}
;;;546    {
;;;547    	TK_TouchKey_Service();
000002  f7fffffe          BL       TK_TouchKey_Service
;;;548    }	
000006  bd10              POP      {r4,pc}
                          ENDP
                          AREA ||i.TK_IsDoubleKeyOrSlideKey||, CODE, READONLY, ALIGN=1
                  TK_IsDoubleKeyOrSlideKey PROC
;;;204    *****************************************************************************/
;;;205    uint8_t TK_IsDoubleKeyOrSlideKey(void)
000000  2000              MOVS     r0,#0
;;;206    {
;;;207        return TKCFG[IsDoubleKey];
;;;208    }
000002  4770              BX       lr
;;;209    
                          ENDP
                          AREA ||i.TK_SetOneKeyPushResetTime||, CODE, READONLY, ALIGN=2
                  TK_SetOneKeyPushResetTime PROC
;;;168    *****************************************************************************/
;;;169    uint16_t TK_SetOneKeyPushResetTime(void)   
000000  4800              LDR      r0,|L13.4|
;;;170    {	  
;;;171    	return  TKCFG[SET_KEY_CONTI_TIME];
;;;172    }
000002  4770              BX       lr
;;;173    
                          ENDP
                  |L13.4|
                          DCD      0x00000bb8
                          AREA ||i.TK_SingleCurrentSensorChoose||, CODE, READONLY, ALIGN=2
                  TK_SingleCurrentSensorChoose PROC
;;;306    *****************************************************************************/
;;;307    void TK_SingleCurrentSensorChoose(void)
000000  b5f0              PUSH     {r4-r7,lr}
;;;308    {
;;;309    	uint8_t i = 0,j = 0,k = 0;
000002  2000              MOVS     r0,#0
;;;310    	uint8_t Ctk_Channel_mark = 0;
;;;311    	uint32_t CurrentSensorKey ; 		 
;;;312        uint32_t CurrentSensorKey2 ; 
;;;313    	
;;;314    	CurrentSensorKey = SOCAPI_SET_TOUCHKEY_CHANNEL; 
000004  4d22              LDR      r5,|L14.144|
;;;315        CurrentSensorKey2 = SOCAPI_SET_TOUCHKEY_CHANNEL2; 
;;;316    		
;;;317    	for(i=0;i<32;i++)
;;;318    	{
;;;319    		if((0x01UL << i) & CurrentSensorKey)
;;;320    		{
;;;321    			CurrentChannel[Ctk_Channel_mark] = i;
000006  4a23              LDR      r2,|L14.148|
000008  4601              MOV      r1,r0                 ;310
00000a  4604              MOV      r4,r0                 ;315
00000c  2301              MOVS     r3,#1                 ;319
                  |L14.14|
00000e  461e              MOV      r6,r3
000010  4086              LSLS     r6,r6,r0              ;319
000012  422e              TST      r6,r5                 ;319
000014  d002              BEQ      |L14.28|
000016  5450              STRB     r0,[r2,r1]
000018  1c49              ADDS     r1,r1,#1
;;;322    			Ctk_Channel_mark++;
00001a  b2c9              UXTB     r1,r1
                  |L14.28|
00001c  1c40              ADDS     r0,r0,#1
00001e  b2c0              UXTB     r0,r0                 ;317
000020  2820              CMP      r0,#0x20              ;317
000022  d3f4              BCC      |L14.14|
;;;323    		}		
;;;324    	}
;;;325    	
;;;326    	for(i=0;i<32;i++)
000024  2000              MOVS     r0,#0
                  |L14.38|
000026  461d              MOV      r5,r3
;;;327    	{
;;;328    		if((0x01UL << i) & CurrentSensorKey2)
000028  4085              LSLS     r5,r5,r0
00002a  4225              TST      r5,r4
00002c  d006              BEQ      |L14.60|
;;;329    		{
;;;330    			CurrentChannel[Ctk_Channel_mark] = (i+32);
00002e  4606              MOV      r6,r0
000030  3620              ADDS     r6,r6,#0x20
000032  5456              STRB     r6,[r2,r1]
000034  1c49              ADDS     r1,r1,#1
;;;331    			Ctk_Channel_mark++;
000036  b2c9              UXTB     r1,r1
;;;332    			if(Ctk_Channel_mark >= SOCAPI_SET_TOUCHKEY_TOTAL)
000038  2909              CMP      r1,#9
00003a  d203              BCS      |L14.68|
                  |L14.60|
00003c  1c40              ADDS     r0,r0,#1
00003e  b2c0              UXTB     r0,r0                 ;326
000040  2820              CMP      r0,#0x20              ;326
000042  d3f0              BCC      |L14.38|
                  |L14.68|
;;;333    				break;
;;;334    		}		
;;;335    	}
;;;336    	
;;;337    #ifdef USING_SlideModule
;;;338    	for(k = 0; k < UsingTKSlideModuleNumber; k ++)
000044  4814              LDR      r0,|L14.152|
000046  2400              MOVS     r4,#0
000048  7800              LDRB     r0,[r0,#0]
00004a  4684              MOV      r12,r0
00004c  e01a              B        |L14.132|
                  |L14.78|
00004e  4620              MOV      r0,r4                 ;309
;;;339    	{
;;;340    		for(i = 0;i<TKSlideModulePCBArray[k].UsingTKChannelNumber;i++)
;;;341    		{
;;;342    			for(j=0;j<Ctk_Channel_mark;j++)
;;;343    			{
;;;344    				if(TKSlideModulePCBArray[k].TKChannel[i] == CurrentChannel[j])
000050  2336              MOVS     r3,#0x36
000052  4358              MULS     r0,r3,r0
000054  4b11              LDR      r3,|L14.156|
000056  2200              MOVS     r2,#0                 ;340
000058  18c5              ADDS     r5,r0,r3
00005a  e00e              B        |L14.122|
                  |L14.92|
00005c  2000              MOVS     r0,#0                 ;342
00005e  18ab              ADDS     r3,r5,r2
000060  e007              B        |L14.114|
                  |L14.98|
000062  4e0c              LDR      r6,|L14.148|
000064  785f              LDRB     r7,[r3,#1]
000066  5c36              LDRB     r6,[r6,r0]
000068  42b7              CMP      r7,r6
00006a  d100              BNE      |L14.110|
;;;345    				{
;;;346    					TKSlideModulePCBArray[k].TKOrderChannel[i]=j;	
00006c  7618              STRB     r0,[r3,#0x18]
                  |L14.110|
00006e  1c40              ADDS     r0,r0,#1
000070  b2c0              UXTB     r0,r0                 ;342
                  |L14.114|
000072  4288              CMP      r0,r1                 ;342
000074  d3f5              BCC      |L14.98|
000076  1c52              ADDS     r2,r2,#1              ;342
000078  b2d2              UXTB     r2,r2                 ;340
                  |L14.122|
00007a  7c68              LDRB     r0,[r5,#0x11]         ;340
00007c  4290              CMP      r0,r2                 ;340
00007e  d8ed              BHI      |L14.92|
000080  1c64              ADDS     r4,r4,#1              ;340
000082  b2e4              UXTB     r4,r4                 ;338
                  |L14.132|
000084  4564              CMP      r4,r12                ;338
000086  d3e2              BCC      |L14.78|
;;;347    				}
;;;348    			}	
;;;349    		}
;;;350    	}
;;;351    #endif
;;;352    	
;;;353    	SingleCurrentChannelMax = Ctk_Channel_mark;
000088  4805              LDR      r0,|L14.160|
00008a  7001              STRB     r1,[r0,#0]
;;;354    }
00008c  bdf0              POP      {r4-r7,pc}
;;;355    
                          ENDP
00008e  0000              DCW      0x0000
                  |L14.144|
                          DCD      0x700000fc
                  |L14.148|
                          DCD      ||.bss||
                  |L14.152|
                          DCD      UsingTKSlideModuleNumber
                  |L14.156|
                          DCD      ||.data||+0x8
                  |L14.160|
                          DCD      SingleCurrentChannelMax
                          AREA ||i.TK_TouchKeyCFGInit||, CODE, READONLY, ALIGN=2
                  TK_TouchKeyCFGInit PROC
;;;385    *****************************************************************************/
;;;386    void TK_TouchKeyCFGInit(void)
000000  b570              PUSH     {r4-r6,lr}
;;;387    {
;;;388    	uint8_t i;
;;;389    #ifdef USING_SlideModule
;;;390    	uint8_t	k;
;;;391    #endif	
;;;392    	
;;;393    	UsingTKSlideModuleNumber = USING_TKSlideModule_Number;
000002  4c14              LDR      r4,|L15.84|
000004  2001              MOVS     r0,#1
000006  7020              STRB     r0,[r4,#0]
;;;394    	ConfirmTouchCnt = TKCFG[CONFIRMTOUCHCNT];
000008  4d13              LDR      r5,|L15.88|
00000a  2005              MOVS     r0,#5
00000c  7068              STRB     r0,[r5,#1]
;;;395    	SetNoiseThreshold = TKCFG[NOISE];
00000e  201c              MOVS     r0,#0x1c
000010  70a8              STRB     r0,[r5,#2]
;;;396    	TK_SingleCurrentSensorChoose(); 
000012  f7fffffe          BL       TK_SingleCurrentSensorChoose
;;;397    	for(i=0;i< SingleCurrentChannelMax;i++)
000016  4913              LDR      r1,|L15.100|
000018  2000              MOVS     r0,#0
;;;398    	{
;;;399    		SingleParameterBufferSet[i].BaseLineAdjusttmp = TKChannelCfg[i][SET_ICHA];;	
00001a  4a10              LDR      r2,|L15.92|
00001c  4b10              LDR      r3,|L15.96|
00001e  7809              LDRB     r1,[r1,#0]            ;397
000020  e006              B        |L15.48|
                  |L15.34|
000022  260a              MOVS     r6,#0xa
000024  4346              MULS     r6,r0,r6
000026  18b6              ADDS     r6,r6,r2
000028  79b6              LDRB     r6,[r6,#6]
00002a  541e              STRB     r6,[r3,r0]
00002c  1c40              ADDS     r0,r0,#1
00002e  b2c0              UXTB     r0,r0                 ;397
                  |L15.48|
000030  4288              CMP      r0,r1                 ;397
000032  d3f6              BCC      |L15.34|
;;;400    	} 
;;;401    	UpdateBaseLNum = 0; 
000034  2200              MOVS     r2,#0
;;;402    	
;;;403    	
;;;404    #ifdef USING_SlideModule
;;;405    	for(k = 0; k < UsingTKSlideModuleNumber; k ++)
;;;406    	{
;;;407    		TKSlideModulePCBArray[k].UpdateBaseLineNumber = 0;
000036  4b08              LDR      r3,|L15.88|
000038  80aa              STRH     r2,[r5,#4]            ;401
00003a  4610              MOV      r0,r2                 ;405
00003c  3308              ADDS     r3,r3,#8
00003e  7824              LDRB     r4,[r4,#0]            ;393
000040  e005              B        |L15.78|
                  |L15.66|
000042  2136              MOVS     r1,#0x36
000044  4341              MULS     r1,r0,r1
000046  18c9              ADDS     r1,r1,r3
000048  1c40              ADDS     r0,r0,#1
00004a  85ca              STRH     r2,[r1,#0x2e]
00004c  b2c0              UXTB     r0,r0                 ;405
                  |L15.78|
00004e  42a0              CMP      r0,r4                 ;405
000050  d3f7              BCC      |L15.66|
;;;408    	}
;;;409    #endif
;;;410    	
;;;411    }
000052  bd70              POP      {r4-r6,pc}
;;;412    
                          ENDP
                  |L15.84|
                          DCD      UsingTKSlideModuleNumber
                  |L15.88|
                          DCD      ||.data||
                  |L15.92|
                          DCD      ||area_number.29||
                  |L15.96|
                          DCD      ||.bss||+0x9
                  |L15.100|
                          DCD      SingleCurrentChannelMax
                          AREA ||i.TK_TouchKeyScan||, CODE, READONLY, ALIGN=2
                  TK_TouchKeyScan PROC
;;;422    *****************************************************************************/
;;;423    uint64_t TK_TouchKeyScan(void)
000000  b5fe              PUSH     {r1-r7,lr}
;;;424    {
;;;425    #ifdef	USING_SlideModule
;;;426    	uint8_t   k;
;;;427    #endif
;;;428    	uint8_t   t;
;;;429        uint8_t   MultipleCnt = 0;
000002  2700              MOVS     r7,#0
000004  463d              MOV      r5,r7
000006  463e              MOV      r6,r7
;;;430    	uint64_t  Keyvalue ; 
;;;431    	uint64_t  KeyData = 0; 
;;;432    	
;;;433    	if(TK_GetIsNeedUpdateBaseline() == 0)
000008  f7fffffe          BL       TK_GetIsNeedUpdateBaseline
00000c  2800              CMP      r0,#0
00000e  d006              BEQ      |L16.30|
;;;434    	{
;;;435    		Keyvalue = TK_SensorKeyFlag();
;;;436    		
;;;437    
;;;438    #if (defined USING_TKKey_T1)		
;;;439    		for(t=0;t< SingleCurrentChannelMax;t++)
;;;440    		{
;;;441    			if(((uint64_t)0x01 << t) & Keyvalue)
;;;442    			{
;;;443    				KeyData |= ((uint64_t)0x01 << (CurrentChannel[t]));              
;;;444    				MultipleCnt++;							
;;;445    			}
;;;446    		}                
;;;447    		
;;;448    		if(MultipleCnt >= 2) 	 
;;;449    		{			
;;;450    			bMultiple = 1;			
;;;451    			if(MultipleCnt >= SOCAPI_MAX_KEY_NUM_INVALID)
;;;452    			{
;;;453    				TK_SetNeedUpdateBaseline(); 
;;;454    			}
;;;455    			else
;;;456    			{					
;;;457    				if(TK_IsDoubleKeyOrSlideKey())
;;;458    				{
;;;459    					bMultiple = 0;
;;;460    				} 				 
;;;461    			}			
;;;462    		}			
;;;463    
;;;464    		if(bMultiple == 0)
;;;465    		{		
;;;466    			if(KeyData != 0x0)					    
;;;467    			{			
;;;468    				UpdateBaseLNum++; 
;;;469    			}
;;;470    			else	
;;;471    			{
;;;472    				UpdateBaseLNum = 0; 	
;;;473    			} 
;;;474    		}	
;;;475    		else
;;;476    		{   
;;;477    		    
;;;478    			MultipleLNum++; 
;;;479    			KeyData = 0x00;
;;;480    		}
;;;481    #endif
;;;482    		
;;;483    #ifdef	USING_SlideModule
;;;484    	
;;;485    		for(k = 0; k < UsingTKSlideModuleNumber; k ++)
;;;486    		{
;;;487    			if(TKSlideModulePCBArray[k].OutValue != 0x00)					        
;;;488    			{	
;;;489    				if(TKSlideModulePCBArray[k].OutValue == TKSlideModulePCBArray[k].LastOutValue)
;;;490    				{		
;;;491    				   TKSlideModulePCBArray[k].UpdateBaseLineNumber++; 
;;;492    				}
;;;493    				else
;;;494    				{
;;;495    				   TKSlideModulePCBArray[k].LastOutValue = TKSlideModulePCBArray[k].OutValue;
;;;496    				   TKSlideModulePCBArray[k].UpdateBaseLineNumber = 0; 
;;;497    				}
;;;498    			}
;;;499    			else	
;;;500    			{
;;;501    				TKSlideModulePCBArray[k].UpdateBaseLineNumber = 0; 	
;;;502    			}
;;;503    
;;;504    			if(TKSlideModulePCBArray[k].UpdateBaseLineNumber >= TK_SetOneKeyPushResetTime())	  
;;;505    			{
;;;506    				TK_SetNeedUpdateBaseline(); 
;;;507    				TKSlideModulePCBArray[k].UpdateBaseLineNumber = 0;
;;;508    			}
;;;509    		}
;;;510    #endif
;;;511    				
;;;512    
;;;513    #if (defined USING_TKKey_T1)
;;;514    		if(UpdateBaseLNum >= TK_SetOneKeyPushResetTime())	  
;;;515    		{
;;;516     			TK_SetNeedUpdateBaseline(); 
;;;517    			UpdateBaseLNum = 0;
;;;518    		}
;;;519    				
;;;520    		if(MultipleLNum > SOCAPI_MAX_KEY_MUTIPLE)		  
;;;521     		{
;;;522    			TK_SetNeedUpdateBaseline(); 
;;;523    			MultipleDealTpye = 1; 
;;;524    			MultipleLNum = 0;
;;;525    		} 
;;;526    #endif
;;;527    		
;;;528    	}			
;;;529    	else
;;;530    	{
;;;531    		TK_MultipleDeal(TKCFG[AUTO_UPDATE_TIME]);
000010  2002              MOVS     r0,#2
000012  f7fffffe          BL       TK_MultipleDeal
                  |L16.22|
;;;532    	}  
;;;533    	
;;;534    	return KeyData;
000016  4628              MOV      r0,r5
000018  4631              MOV      r1,r6
;;;535    		
;;;536    }
00001a  b003              ADD      sp,sp,#0xc
00001c  bdf0              POP      {r4-r7,pc}
                  |L16.30|
00001e  f7fffffe          BL       TK_SensorKeyFlag
000022  2100              MOVS     r1,#0                 ;435
000024  9000              STR      r0,[sp,#0]            ;439
000026  483a              LDR      r0,|L16.272|
000028  9101              STR      r1,[sp,#4]            ;439
00002a  7800              LDRB     r0,[r0,#0]            ;439
00002c  460c              MOV      r4,r1                 ;439
00002e  9002              STR      r0,[sp,#8]            ;439
000030  e017              B        |L16.98|
                  |L16.50|
000032  4622              MOV      r2,r4                 ;441
000034  2001              MOVS     r0,#1                 ;441
000036  2100              MOVS     r1,#0                 ;441
000038  f7fffffe          BL       __aeabi_llsl
00003c  9a00              LDR      r2,[sp,#0]            ;441
00003e  9b01              LDR      r3,[sp,#4]            ;441
000040  4010              ANDS     r0,r0,r2              ;441
000042  4019              ANDS     r1,r1,r3              ;441
000044  4308              ORRS     r0,r0,r1              ;441
000046  d009              BEQ      |L16.92|
000048  4832              LDR      r0,|L16.276|
00004a  2100              MOVS     r1,#0                 ;443
00004c  5d02              LDRB     r2,[r0,r4]            ;443
00004e  2001              MOVS     r0,#1                 ;443
000050  f7fffffe          BL       __aeabi_llsl
000054  4305              ORRS     r5,r5,r0              ;443
000056  430e              ORRS     r6,r6,r1              ;443
000058  1c7f              ADDS     r7,r7,#1              ;443
00005a  b2ff              UXTB     r7,r7                 ;444
                  |L16.92|
00005c  1c64              ADDS     r4,r4,#1              ;444
00005e  9802              LDR      r0,[sp,#8]            ;439
000060  b2e4              UXTB     r4,r4                 ;439
                  |L16.98|
000062  4284              CMP      r4,r0                 ;439
000064  d3e5              BCC      |L16.50|
000066  4c2c              LDR      r4,|L16.280|
000068  2f02              CMP      r7,#2                 ;448
00006a  d305              BCC      |L16.120|
00006c  2001              MOVS     r0,#1                 ;450
00006e  7020              STRB     r0,[r4,#0]            ;450
000070  2f03              CMP      r7,#3                 ;451
000072  d304              BCC      |L16.126|
000074  f7fffffe          BL       TK_SetNeedUpdateBaseline
                  |L16.120|
000078  7820              LDRB     r0,[r4,#0]            ;464  ; bMultiple
00007a  2800              CMP      r0,#0                 ;464
00007c  d007              BEQ      |L16.142|
                  |L16.126|
00007e  4927              LDR      r1,|L16.284|
000080  88c8              LDRH     r0,[r1,#6]            ;478  ; MultipleLNum
000082  1c40              ADDS     r0,r0,#1              ;478
000084  2500              MOVS     r5,#0                 ;478
000086  80c8              STRH     r0,[r1,#6]            ;478
000088  462e              MOV      r6,r5                 ;478
                  |L16.138|
00008a  2700              MOVS     r7,#0                 ;485
00008c  e026              B        |L16.220|
                  |L16.142|
00008e  4628              MOV      r0,r5                 ;485
000090  4330              ORRS     r0,r0,r6              ;466
000092  d004              BEQ      |L16.158|
000094  4821              LDR      r0,|L16.284|
000096  8881              LDRH     r1,[r0,#4]            ;468  ; UpdateBaseLNum
000098  1c49              ADDS     r1,r1,#1              ;468
00009a  8081              STRH     r1,[r0,#4]            ;468
00009c  e7f5              B        |L16.138|
                  |L16.158|
00009e  491f              LDR      r1,|L16.284|
0000a0  2000              MOVS     r0,#0                 ;472
0000a2  8088              STRH     r0,[r1,#4]            ;472
0000a4  e7f1              B        |L16.138|
                  |L16.166|
0000a6  2036              MOVS     r0,#0x36              ;487
0000a8  4639              MOV      r1,r7                 ;487
0000aa  4341              MULS     r1,r0,r1              ;487
0000ac  481b              LDR      r0,|L16.284|
0000ae  3008              ADDS     r0,r0,#8              ;487
0000b0  180c              ADDS     r4,r1,r0              ;487
0000b2  8da0              LDRH     r0,[r4,#0x2c]         ;487
0000b4  2800              CMP      r0,#0                 ;487
0000b6  d00d              BEQ      |L16.212|
0000b8  8d61              LDRH     r1,[r4,#0x2a]         ;489
0000ba  4288              CMP      r0,r1                 ;489
0000bc  d109              BNE      |L16.210|
0000be  8de0              LDRH     r0,[r4,#0x2e]         ;491
0000c0  4917              LDR      r1,|L16.288|
0000c2  1c40              ADDS     r0,r0,#1              ;491
0000c4  b280              UXTH     r0,r0                 ;491
0000c6  85e0              STRH     r0,[r4,#0x2e]         ;491
0000c8  4288              CMP      r0,r1                 ;504
0000ca  d305              BCC      |L16.216|
0000cc  f7fffffe          BL       TK_SetNeedUpdateBaseline
0000d0  e000              B        |L16.212|
                  |L16.210|
0000d2  8560              STRH     r0,[r4,#0x2a]         ;495
                  |L16.212|
0000d4  2000              MOVS     r0,#0                 ;501
0000d6  85e0              STRH     r0,[r4,#0x2e]         ;501
                  |L16.216|
0000d8  1c7f              ADDS     r7,r7,#1              ;501
0000da  b2ff              UXTB     r7,r7                 ;485
                  |L16.220|
0000dc  4811              LDR      r0,|L16.292|
0000de  7800              LDRB     r0,[r0,#0]            ;485  ; UsingTKSlideModuleNumber
0000e0  4287              CMP      r7,r0                 ;485
0000e2  d3e0              BCC      |L16.166|
0000e4  4c0d              LDR      r4,|L16.284|
0000e6  480e              LDR      r0,|L16.288|
0000e8  88a1              LDRH     r1,[r4,#4]            ;514  ; UpdateBaseLNum
0000ea  4281              CMP      r1,r0                 ;514
0000ec  d303              BCC      |L16.246|
0000ee  f7fffffe          BL       TK_SetNeedUpdateBaseline
0000f2  2000              MOVS     r0,#0                 ;517
0000f4  80a0              STRH     r0,[r4,#4]            ;517
                  |L16.246|
0000f6  88e0              LDRH     r0,[r4,#6]            ;520  ; MultipleLNum
0000f8  21ff              MOVS     r1,#0xff              ;520
0000fa  312d              ADDS     r1,r1,#0x2d           ;520
0000fc  4288              CMP      r0,r1                 ;520
0000fe  d98a              BLS      |L16.22|
000100  f7fffffe          BL       TK_SetNeedUpdateBaseline
000104  2001              MOVS     r0,#1                 ;523
000106  7020              STRB     r0,[r4,#0]            ;523
000108  2000              MOVS     r0,#0                 ;524
00010a  80e0              STRH     r0,[r4,#6]            ;524
00010c  e783              B        |L16.22|
;;;537    
                          ENDP
00010e  0000              DCW      0x0000
                  |L16.272|
                          DCD      SingleCurrentChannelMax
                  |L16.276|
                          DCD      ||.bss||
                  |L16.280|
                          DCD      bMultiple
                  |L16.284|
                          DCD      ||.data||
                  |L16.288|
                          DCD      0x00000bb8
                  |L16.292|
                          DCD      UsingTKSlideModuleNumber
                          AREA ||.bss||, DATA, NOINIT, ALIGN=0
                  CurrentChannel
                          %        9
                  SingleParameterBufferSet
                          %        9
                          AREA ||area_number.19||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.19||, ||.bss||
                  RestAreaCnt
                          %        9
                          AREA ||area_number.20||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.20||, ||.bss||
                  TouchCnt
                          %        9
                          AREA ||area_number.21||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.21||, ||.bss||
                  NoTouchCnt
                          %        9
                          AREA ||area_number.22||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.22||, ||.bss||
                  LowFingerDataCnt
                          %        9
                          AREA ||area_number.23||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.23||, ||.bss||
                  FloatAreaCnt
                          %        9
                          AREA ||area_number.24||, DATA, NOINIT, ALIGN=1
                          EXPORTAS ||area_number.24||, ||.bss||
                  DifferAccum
                          %        18
                          AREA ||area_number.25||, DATA, NOINIT, ALIGN=0
                          EXPORTAS ||area_number.25||, ||.bss||
                  CombineParameterBufferSet
                          %        9
                          AREA ||area_number.26||, DATA, NOINIT, ALIGN=1
                          EXPORTAS ||area_number.26||, ||.bss||
                  SingleChannelsBaseLineUpdatePar
                          %        54
                          AREA ||.constdata||, DATA, READONLY, ALIGN=2
                  TKCFG
                          DCD      0x00000000
                          DCD      0x00000000
                          DCD      0x00000000
                          DCD      0x00000005
                          DCD      0x0000000a
                          DCD      0x00000bb8
                          DCD      0x000000c8
                          DCD      0x00000064
                          DCD      0x00000002
                          DCD      0x00000001
                          DCD      0x00000000
                          DCD      0x00000004
                          DCD      0x00000000
                          DCD      0x00000001
                          DCD      0x0000ffff
                          DCD      0x0000ffff
                          DCD      0x0000001c
                          AREA ||area_number.29||, DATA, READONLY, ALIGN=0
                          EXPORTAS ||area_number.29||, ||.constdata||
                  TKChannelCfg
000000  05022804          DCB      0x05,0x02,0x28,0x04
000004  08031905          DCB      0x08,0x03,0x19,0x05
000008  01ce0502          DCB      0x01,0xce,0x05,0x02
00000c  28040803          DCB      0x28,0x04,0x08,0x03
000010  1b050207          DCB      0x1b,0x05,0x02,0x07
000014  05022804          DCB      0x05,0x02,0x28,0x04
000018  08031b05          DCB      0x08,0x03,0x1b,0x05
00001c  02000502          DCB      0x02,0x00,0x05,0x02
000020  28040803          DCB      0x28,0x04,0x08,0x03
000024  170501cb          DCB      0x17,0x05,0x01,0xcb
000028  05022804          DCB      0x05,0x02,0x28,0x04
00002c  08031d05          DCB      0x08,0x03,0x1d,0x05
000030  01ef0502          DCB      0x01,0xef,0x05,0x02
000034  28040803          DCB      0x28,0x04,0x08,0x03
000038  1b0501cb          DCB      0x1b,0x05,0x01,0xcb
00003c  05022804          DCB      0x05,0x02,0x28,0x04
000040  08031d05          DCB      0x08,0x03,0x1d,0x05
000044  016b0502          DCB      0x01,0x6b,0x05,0x02
000048  28040803          DCB      0x28,0x04,0x08,0x03
00004c  2105014b          DCB      0x21,0x05,0x01,0x4b
000050  05022804          DCB      0x05,0x02,0x28,0x04
000054  08031d05          DCB      0x08,0x03,0x1d,0x05
000058  0141              DCB      0x01,0x41
                          AREA ||.data||, DATA, ALIGN=1
                  MultipleDealTpye
000000  00                DCB      0x00
                  ConfirmTouchCnt
000001  00                DCB      0x00
                  SetNoiseThreshold
000002  0000              DCB      0x00,0x00
                  UpdateBaseLNum
000004  0000              DCB      0x00,0x00
                  MultipleLNum
000006  0000              DCB      0x00,0x00
                  TKSlideModulePCBArray
000008  011c1d1e          DCB      0x01,0x1c,0x1d,0x1e
                          %        12
000018  0003              DCB      0x00,0x03
00001a  0020              DCW      0x0020
00001c  001400a0          DCW      0x0014,0x00a0
000020  00000000          DCB      0x00,0x00,0x00,0x00
                          %        12
000030  0100              DCB      0x01,0x00
000032  0000              DCW      0x0000
000034  00000000          DCW      0x0000,0x0000
000038  00960000          DCW      0x0096,0x0000
00003c  0000              DCW      0x0000
                          AREA ||area_number.31||, DATA, ALIGN=0
                          EXPORTAS ||area_number.31||, ||.data||
                  CFG_OVERLOW_MAX_COUNT
000000  0a                DCB      0x0a
                          AREA ||area_number.32||, DATA, ALIGN=0
                          EXPORTAS ||area_number.32||, ||.data||
                  CFG_RESET_BASELINE_CNT
000000  0a                DCB      0x0a
                          AREA ||area_number.33||, DATA, ALIGN=0
                          EXPORTAS ||area_number.33||, ||.data||
                  CFG_CYCLE_CNT
000000  20                DCB      0x20
                          AREA ||area_number.34||, DATA, ALIGN=0
                          EXPORTAS ||area_number.34||, ||.data||
                  TK_TouchKeyStatus
000000  00                DCB      0x00
                          AREA ||i.__ARM_common_switch8||, COMGROUP=__ARM_common_switch8, CODE, READONLY, ALIGN=1
                  __ARM_common_switch8 PROC
000000  b430              PUSH     {r4,r5}
000002  4674              MOV      r4,lr
000004  1e64              SUBS     r4,r4,#1
000006  7825              LDRB     r5,[r4,#0]
000008  1c64              ADDS     r4,r4,#1
00000a  42ab              CMP      r3,r5
00000c  d200              BCS      |L117.16|
00000e  461d              MOV      r5,r3
                  |L117.16|
000010  5d63              LDRB     r3,[r4,r5]
000012  005b              LSLS     r3,r3,#1
000014  18e3              ADDS     r3,r4,r3
000016  bc30              POP      {r4,r5}
000018  4718              BX       r3
                          ENDP
;*** Start embedded assembler ***
#line 1 "..\\Drivers\\TKDriver\\C\\TKDriver.C"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___10_TKDriver_C_TKCFG____REV16|
#line 463 "..\\CMSIS\\cmsis_armcc.h"
|__asm___10_TKDriver_C_TKCFG____REV16| PROC
#line 464
 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___10_TKDriver_C_TKCFG____REVSH|
#line 478
|__asm___10_TKDriver_C_TKCFG____REVSH| PROC
#line 479
 revsh r0, r0
 bx lr
	ENDP
;*** End   embedded assembler ***
