; generated by Component: ARM Compiler 5.05 update 2 (build 169) Tool: ArmCC [4d0f38]
; commandline ArmCC [--list --debug -c --asm --interleave -o.\obj\vk3804.o --asm_dir=.\lst\ --list_dir=.\lst\ --depend=.\obj\vk3804.d --cpu=Cortex-M4.fp --apcs=interwork -O0 --diag_suppress=9931 -I..\..\..\Library\CMSIS\Include -I..\..\..\Library\Device\Nuvoton\M451Series\Include -I..\..\..\Library\StdDriver\inc -I..\Bsp -I..\User -I..\lcd_driver -I..\exti_driver -I..\led_driver -I..\touch -I..\dotmatix_lcd -I..\KH -I.\RTE\_project -IC:\Keil_v5\ARM\PACK\ARM\CMSIS\4.3.0\CMSIS\Include -D__UVISION_VERSION=527 -D_RTE_ --omf_browse=.\obj\vk3804.crf ..\touch_driver\vk3804.c]
                          THUMB

                          AREA ||.text||, CODE, READONLY, ALIGN=2

                  delay_nus PROC
;;;34     **************************************************************/
;;;35     void delay_nus(unsigned int n)	   
000000  e007              B        |L1.18|
                  |L1.2|
;;;36     {
;;;37     	unsigned char i;
;;;38     	while(n--)
;;;39     	{
;;;40     		i=10;
000002  210a              MOVS     r1,#0xa
;;;41     		while(i--)
000004  e000              B        |L1.8|
                  |L1.6|
;;;42     		{//nopָݵƬӦ޸
;;;43     			__nop();
000006  bf00              NOP      
                  |L1.8|
000008  000a              MOVS     r2,r1                 ;41
00000a  f1a10301          SUB      r3,r1,#1              ;41
00000e  b2d9              UXTB     r1,r3                 ;41
000010  d1f9              BNE      |L1.6|
                  |L1.18|
000012  0002              MOVS     r2,r0                 ;38
000014  f1a00001          SUB      r0,r0,#1              ;38
000018  d1f3              BNE      |L1.2|
;;;44     		}
;;;45     	}
;;;46     }
00001a  4770              BX       lr
;;;47     /*************************************************************
                          ENDP

                  vk3804_I2CStart PROC
;;;53     **************************************************************/
;;;54     void vk3804_I2CStart( void )
00001c  b510              PUSH     {r4,lr}
;;;55     {
;;;56     	vk3804_SET_SDA_OUT();		
00001e  2201              MOVS     r2,#1
000020  0291              LSLS     r1,r2,#10
000022  48be              LDR      r0,|L1.796|
000024  f7fffffe          BL       GPIO_SetMode
;;;57       vk3804_SDA_H();
000028  2001              MOVS     r0,#1
00002a  49bd              LDR      r1,|L1.800|
00002c  6008              STR      r0,[r1,#0]
;;;58       vk3804_SCL_H();
00002e  49bc              LDR      r1,|L1.800|
000030  3108              ADDS     r1,r1,#8
000032  6008              STR      r0,[r1,#0]
;;;59       delay_nus(vk3804_CLK/2);
000034  2005              MOVS     r0,#5
000036  f7fffffe          BL       delay_nus
;;;60       vk3804_SDA_L();
00003a  2000              MOVS     r0,#0
00003c  49b8              LDR      r1,|L1.800|
00003e  6008              STR      r0,[r1,#0]
;;;61       delay_nus(vk3804_CLK/2);
000040  2005              MOVS     r0,#5
000042  f7fffffe          BL       delay_nus
;;;62       vk3804_SCL_L();
000046  2000              MOVS     r0,#0
000048  49b5              LDR      r1,|L1.800|
00004a  3108              ADDS     r1,r1,#8
00004c  6008              STR      r0,[r1,#0]
;;;63     }
00004e  bd10              POP      {r4,pc}
;;;64     /*************************************************************
                          ENDP

                  vk3804_I2CStop PROC
;;;70     **************************************************************/
;;;71     void vk3804_I2CStop( void )
000050  b510              PUSH     {r4,lr}
;;;72     {
;;;73       vk3804_SDA_L();
000052  2000              MOVS     r0,#0
000054  49b2              LDR      r1,|L1.800|
000056  6008              STR      r0,[r1,#0]
;;;74       delay_nus(vk3804_CLK/2);
000058  2005              MOVS     r0,#5
00005a  f7fffffe          BL       delay_nus
;;;75       vk3804_SCL_H();
00005e  2001              MOVS     r0,#1
000060  49af              LDR      r1,|L1.800|
000062  3108              ADDS     r1,r1,#8
000064  6008              STR      r0,[r1,#0]
;;;76       delay_nus(vk3804_CLK/2);
000066  2005              MOVS     r0,#5
000068  f7fffffe          BL       delay_nus
;;;77       vk3804_SDA_H();
00006c  2001              MOVS     r0,#1
00006e  49ac              LDR      r1,|L1.800|
000070  6008              STR      r0,[r1,#0]
;;;78     	vk3804_SET_SDA_IN();    
000072  2200              MOVS     r2,#0
000074  0281              LSLS     r1,r0,#10
000076  48a9              LDR      r0,|L1.796|
000078  f7fffffe          BL       GPIO_SetMode
;;;79     }
00007c  bd10              POP      {r4,pc}
;;;80     /*************************************************************
                          ENDP

                  vk3804_I2CSlaveAck PROC
;;;86     **************************************************************/
;;;87     unsigned char vk3804_I2CSlaveAck( void )
00007e  b570              PUSH     {r4-r6,lr}
;;;88     {
;;;89       unsigned int TimeOut;
;;;90       unsigned char RetValue;
;;;91     	
;;;92       vk3804_SET_SDA_IN();
000080  2200              MOVS     r2,#0
000082  f44f6180          MOV      r1,#0x400
000086  48a5              LDR      r0,|L1.796|
000088  f7fffffe          BL       GPIO_SetMode
;;;93       delay_nus(vk3804_CLK/2);
00008c  2005              MOVS     r0,#5
00008e  f7fffffe          BL       delay_nus
;;;94       vk3804_SCL_H();
000092  2001              MOVS     r0,#1
000094  49a2              LDR      r1,|L1.800|
000096  3108              ADDS     r1,r1,#8
000098  6008              STR      r0,[r1,#0]
;;;95     
;;;96       TimeOut = 10000;
00009a  f2427510          MOV      r5,#0x2710
;;;97       while( TimeOut-- > 0 )
00009e  e007              B        |L1.176|
                  |L1.160|
;;;98       {
;;;99         if( 1 == vk3804_GET_SDA() )
0000a0  489f              LDR      r0,|L1.800|
0000a2  6800              LDR      r0,[r0,#0]
0000a4  2801              CMP      r0,#1
0000a6  d101              BNE      |L1.172|
;;;100        {
;;;101          RetValue = 0;
0000a8  2400              MOVS     r4,#0
0000aa  e001              B        |L1.176|
                  |L1.172|
;;;102        }
;;;103        else
;;;104        {
;;;105          RetValue = 1;
0000ac  2401              MOVS     r4,#1
;;;106          break;
0000ae  e003              B        |L1.184|
                  |L1.176|
0000b0  0028              MOVS     r0,r5                 ;97
0000b2  f1a50501          SUB      r5,r5,#1              ;97
0000b6  d1f3              BNE      |L1.160|
                  |L1.184|
0000b8  bf00              NOP      
;;;107        }
;;;108      }
;;;109      vk3804_SCL_L();
0000ba  2000              MOVS     r0,#0
0000bc  4998              LDR      r1,|L1.800|
0000be  3108              ADDS     r1,r1,#8
0000c0  6008              STR      r0,[r1,#0]
;;;110      delay_nus(vk3804_CLK*20);//wait 100uS
0000c2  20c8              MOVS     r0,#0xc8
0000c4  f7fffffe          BL       delay_nus
;;;111    	vk3804_SET_SDA_OUT();		
0000c8  2201              MOVS     r2,#1
0000ca  0291              LSLS     r1,r2,#10
0000cc  4893              LDR      r0,|L1.796|
0000ce  f7fffffe          BL       GPIO_SetMode
;;;112      
;;;113      return RetValue;
0000d2  4620              MOV      r0,r4
;;;114    }
0000d4  bd70              POP      {r4-r6,pc}
;;;115    /*************************************************************
                          ENDP

                  vk3804_I2CSendAck PROC
;;;121    **************************************************************/
;;;122    void vk3804_I2CSendAck( void )
0000d6  b500              PUSH     {lr}
;;;123    {	
;;;124    	vk3804_SCL_L();
0000d8  2000              MOVS     r0,#0
0000da  4991              LDR      r1,|L1.800|
0000dc  3108              ADDS     r1,r1,#8
0000de  6008              STR      r0,[r1,#0]
;;;125    	vk3804_SDA_L();
0000e0  498f              LDR      r1,|L1.800|
0000e2  6008              STR      r0,[r1,#0]
;;;126    	delay_nus(vk3804_CLK/2);
0000e4  2005              MOVS     r0,#5
0000e6  f7fffffe          BL       delay_nus
;;;127    	vk3804_SCL_H();
0000ea  2001              MOVS     r0,#1
0000ec  498c              LDR      r1,|L1.800|
0000ee  3108              ADDS     r1,r1,#8
0000f0  6008              STR      r0,[r1,#0]
;;;128    	delay_nus(vk3804_CLK/2);
0000f2  2005              MOVS     r0,#5
0000f4  f7fffffe          BL       delay_nus
;;;129    	vk3804_SCL_L();
0000f8  2000              MOVS     r0,#0
0000fa  4989              LDR      r1,|L1.800|
0000fc  3108              ADDS     r1,r1,#8
0000fe  6008              STR      r0,[r1,#0]
;;;130      delay_nus(vk3804_CLK*20);//wait 100uS
000100  20c8              MOVS     r0,#0xc8
000102  f7fffffe          BL       delay_nus
;;;131    }
000106  bd00              POP      {pc}
;;;132    /*************************************************************
                          ENDP

                  vk3804_I2CSendNAck PROC
;;;138    **************************************************************/
;;;139    void vk3804_I2CSendNAck( void )
000108  b500              PUSH     {lr}
;;;140    {	
;;;141    	vk3804_SCL_L();
00010a  2000              MOVS     r0,#0
00010c  4984              LDR      r1,|L1.800|
00010e  3108              ADDS     r1,r1,#8
000110  6008              STR      r0,[r1,#0]
;;;142    	vk3804_SDA_H();
000112  2001              MOVS     r0,#1
000114  4982              LDR      r1,|L1.800|
000116  6008              STR      r0,[r1,#0]
;;;143    	delay_nus(vk3804_CLK/2);
000118  2005              MOVS     r0,#5
00011a  f7fffffe          BL       delay_nus
;;;144    	vk3804_SCL_H();
00011e  2001              MOVS     r0,#1
000120  497f              LDR      r1,|L1.800|
000122  3108              ADDS     r1,r1,#8
000124  6008              STR      r0,[r1,#0]
;;;145    	delay_nus(vk3804_CLK/2);
000126  2005              MOVS     r0,#5
000128  f7fffffe          BL       delay_nus
;;;146    	vk3804_SCL_L();
00012c  2000              MOVS     r0,#0
00012e  497c              LDR      r1,|L1.800|
000130  3108              ADDS     r1,r1,#8
000132  6008              STR      r0,[r1,#0]
;;;147      delay_nus(vk3804_CLK*20);//wait 100uS
000134  20c8              MOVS     r0,#0xc8
000136  f7fffffe          BL       delay_nus
;;;148    }
00013a  bd00              POP      {pc}
;;;149    /*************************************************************
                          ENDP

                  vk3804_I2CWriteByte PROC
;;;155    **************************************************************/
;;;156    void vk3804_I2CWriteByte( unsigned char byte )
00013c  b530              PUSH     {r4,r5,lr}
;;;157    {
00013e  4604              MOV      r4,r0
;;;158    	unsigned char i=8;
000140  2508              MOVS     r5,#8
;;;159    	while (i--)
000142  e019              B        |L1.376|
                  |L1.324|
;;;160    	{
;;;161    		if(byte&0x80)
000144  f0040080          AND      r0,r4,#0x80
000148  b118              CBZ      r0,|L1.338|
;;;162    			vk3804_SDA_H();
00014a  2001              MOVS     r0,#1
00014c  4974              LDR      r1,|L1.800|
00014e  6008              STR      r0,[r1,#0]
000150  e002              B        |L1.344|
                  |L1.338|
;;;163    		else
;;;164    			vk3804_SDA_L();
000152  2000              MOVS     r0,#0
000154  4972              LDR      r1,|L1.800|
000156  6008              STR      r0,[r1,#0]
                  |L1.344|
;;;165    		byte<<=1; 
000158  0660              LSLS     r0,r4,#25
00015a  0e04              LSRS     r4,r0,#24
;;;166    		delay_nus(vk3804_CLK);
00015c  200a              MOVS     r0,#0xa
00015e  f7fffffe          BL       delay_nus
;;;167    		vk3804_SCL_H();     
000162  2001              MOVS     r0,#1
000164  496e              LDR      r1,|L1.800|
000166  3108              ADDS     r1,r1,#8
000168  6008              STR      r0,[r1,#0]
;;;168    		delay_nus(vk3804_CLK); 
00016a  200a              MOVS     r0,#0xa
00016c  f7fffffe          BL       delay_nus
;;;169    		vk3804_SCL_L();
000170  2000              MOVS     r0,#0
000172  496b              LDR      r1,|L1.800|
000174  3108              ADDS     r1,r1,#8
000176  6008              STR      r0,[r1,#0]
                  |L1.376|
000178  0028              MOVS     r0,r5                 ;159
00017a  f1a50101          SUB      r1,r5,#1              ;159
00017e  b2cd              UXTB     r5,r1                 ;159
000180  d1e0              BNE      |L1.324|
;;;170    	}
;;;171    }
000182  bd30              POP      {r4,r5,pc}
;;;172    /*************************************************************
                          ENDP

                  vk3804_I2CReadByte PROC
;;;178    **************************************************************/
;;;179    unsigned char vk3804_I2CReadByte( void )
000184  b570              PUSH     {r4-r6,lr}
;;;180    {
;;;181      unsigned char i;
;;;182      unsigned char ReadValue = 0;
000186  2500              MOVS     r5,#0
;;;183      unsigned char bit;
;;;184    
;;;185    	vk3804_SET_SDA_IN();
000188  2200              MOVS     r2,#0
00018a  f44f6180          MOV      r1,#0x400
00018e  4863              LDR      r0,|L1.796|
000190  f7fffffe          BL       GPIO_SetMode
;;;186    	vk3804_SDA_L();	
000194  2000              MOVS     r0,#0
000196  4962              LDR      r1,|L1.800|
000198  6008              STR      r0,[r1,#0]
;;;187      for( i=0; i<8; i++ )
00019a  2400              MOVS     r4,#0
00019c  e019              B        |L1.466|
                  |L1.414|
;;;188      {
;;;189        vk3804_SCL_H(); 
00019e  2001              MOVS     r0,#1
0001a0  495f              LDR      r1,|L1.800|
0001a2  3108              ADDS     r1,r1,#8
0001a4  6008              STR      r0,[r1,#0]
;;;190        delay_nus(vk3804_CLK);
0001a6  200a              MOVS     r0,#0xa
0001a8  f7fffffe          BL       delay_nus
;;;191        if( 1 == vk3804_GET_SDA() )
0001ac  485c              LDR      r0,|L1.800|
0001ae  6800              LDR      r0,[r0,#0]
0001b0  2801              CMP      r0,#1
0001b2  d101              BNE      |L1.440|
;;;192          bit = 0X01;
0001b4  2601              MOVS     r6,#1
0001b6  e000              B        |L1.442|
                  |L1.440|
;;;193        else
;;;194          bit = 0x00;
0001b8  2600              MOVS     r6,#0
                  |L1.442|
;;;195          
;;;196        ReadValue = (ReadValue<<1)|bit;
0001ba  ea460045          ORR      r0,r6,r5,LSL #1
0001be  b2c5              UXTB     r5,r0
;;;197        vk3804_SCL_L();
0001c0  2000              MOVS     r0,#0
0001c2  4957              LDR      r1,|L1.800|
0001c4  3108              ADDS     r1,r1,#8
0001c6  6008              STR      r0,[r1,#0]
;;;198        delay_nus(vk3804_CLK);
0001c8  200a              MOVS     r0,#0xa
0001ca  f7fffffe          BL       delay_nus
0001ce  1c60              ADDS     r0,r4,#1              ;187
0001d0  b2c4              UXTB     r4,r0                 ;187
                  |L1.466|
0001d2  2c08              CMP      r4,#8                 ;187
0001d4  dbe3              BLT      |L1.414|
;;;199      }
;;;200      vk3804_SCL_L();
0001d6  2000              MOVS     r0,#0
0001d8  4951              LDR      r1,|L1.800|
0001da  3108              ADDS     r1,r1,#8
0001dc  6008              STR      r0,[r1,#0]
;;;201      vk3804_SET_SDA_OUT();
0001de  2201              MOVS     r2,#1
0001e0  1509              ASRS     r1,r1,#20
0001e2  484e              LDR      r0,|L1.796|
0001e4  f7fffffe          BL       GPIO_SetMode
;;;202      return ReadValue;
0001e8  4628              MOV      r0,r5
;;;203    }
0001ea  bd70              POP      {r4-r6,pc}
;;;204    
                          ENDP

                  vk3804SetCmd PROC
;;;210     *************************************************************/
;;;211    unsigned char vk3804SetCmd(unsigned char *pdata,unsigned char cnt)
0001ec  e92d41f0          PUSH     {r4-r8,lr}
;;;212    {
0001f0  4604              MOV      r4,r0
0001f2  460e              MOV      r6,r1
;;;213    	unsigned char i,n;
;;;214      unsigned char errorflag = 1;	//־λ1Ϊ0Ϊȷ
0001f4  f04f0801          MOV      r8,#1
;;;215    	
;;;216    	i=1;
0001f8  2701              MOVS     r7,#1
;;;217    	while(i--)
0001fa  e022              B        |L1.578|
                  |L1.508|
;;;218    	{ 
;;;219    		vk3804_I2CStart(); 
0001fc  f7fffffe          BL       vk3804_I2CStart
;;;220    		vk3804_I2CWriteByte(vk3804_ADDR); 
000200  2057              MOVS     r0,#0x57
000202  f7fffffe          BL       vk3804_I2CWriteByte
;;;221    		if( 0 == vk3804_I2CSlaveAck() )
000206  f7fffffe          BL       vk3804_I2CSlaveAck
00020a  b920              CBNZ     r0,|L1.534|
;;;222    		{
;;;223    			vk3804_I2CStop();
00020c  f7fffffe          BL       vk3804_I2CStop
;;;224    			errorflag=1;	
000210  f04f0801          MOV      r8,#1
;;;225    			continue;
000214  e015              B        |L1.578|
                  |L1.534|
;;;226    		}     
;;;227    		errorflag=0;	     //־λΪ0
000216  f04f0800          MOV      r8,#0
;;;228    		for(n=0;n<cnt;n++)
00021a  2500              MOVS     r5,#0
00021c  e00e              B        |L1.572|
                  |L1.542|
;;;229    		{ 
;;;230    			vk3804_I2CWriteByte(*pdata++);
00021e  f8140b01          LDRB     r0,[r4],#1
000222  f7fffffe          BL       vk3804_I2CWriteByte
;;;231    			if( 0 == vk3804_I2CSlaveAck() )
000226  f7fffffe          BL       vk3804_I2CSlaveAck
00022a  b920              CBNZ     r0,|L1.566|
;;;232    			{
;;;233    				vk3804_I2CStop();
00022c  f7fffffe          BL       vk3804_I2CStop
;;;234    				errorflag=1;	
000230  f04f0801          MOV      r8,#1
;;;235    				continue;
000234  e000              B        |L1.568|
                  |L1.566|
000236  bf00              NOP      
                  |L1.568|
000238  1c68              ADDS     r0,r5,#1              ;228
00023a  b2c5              UXTB     r5,r0                 ;228
                  |L1.572|
00023c  42b5              CMP      r5,r6                 ;228
00023e  dbee              BLT      |L1.542|
;;;236    			}
;;;237    		}
;;;238    		break;
000240  e004              B        |L1.588|
                  |L1.578|
000242  0038              MOVS     r0,r7                 ;217
000244  f1a70101          SUB      r1,r7,#1              ;217
000248  b2cf              UXTB     r7,r1                 ;217
00024a  d1d7              BNE      |L1.508|
                  |L1.588|
00024c  bf00              NOP      
;;;239     }
;;;240     vk3804_I2CStop();
00024e  f7fffffe          BL       vk3804_I2CStop
;;;241     return(errorflag);    //زɰܱ־
000252  4640              MOV      r0,r8
;;;242    }
000254  e8bd81f0          POP      {r4-r8,pc}
;;;243    /*************************************************************
                          ENDP

                  vk3804ReaData PROC
;;;248      *************************************************************/
;;;249    unsigned char vk3804ReaData(unsigned char *pdata,unsigned char cnt)
000258  e92d41f0          PUSH     {r4-r8,lr}
;;;250    {
00025c  4604              MOV      r4,r0
00025e  460e              MOV      r6,r1
;;;251    	unsigned char i,n;
;;;252      unsigned char errorflag = 1;	//־λ1Ϊ0Ϊȷ
000260  2701              MOVS     r7,#1
;;;253    	
;;;254    	i=1;
000262  46b8              MOV      r8,r7
;;;255    	while(i--)
000264  e020              B        |L1.680|
                  |L1.614|
;;;256    	{ 
;;;257    		vk3804_I2CStart(); 
000266  f7fffffe          BL       vk3804_I2CStart
;;;258    		vk3804_I2CWriteByte(vk3804_ADDRRD); 
00026a  20ad              MOVS     r0,#0xad
00026c  f7fffffe          BL       vk3804_I2CWriteByte
;;;259    		if( 0 == vk3804_I2CSlaveAck() )
000270  f7fffffe          BL       vk3804_I2CSlaveAck
000274  b918              CBNZ     r0,|L1.638|
;;;260    		{
;;;261    			vk3804_I2CStop();
000276  f7fffffe          BL       vk3804_I2CStop
;;;262    			errorflag=1;	
00027a  2701              MOVS     r7,#1
;;;263    			continue;
00027c  e014              B        |L1.680|
                  |L1.638|
;;;264    		}     
;;;265    		errorflag=0;//־λΪ0
00027e  2700              MOVS     r7,#0
;;;266    		for(n=0;n<(cnt-1);n++)
000280  2500              MOVS     r5,#0
000282  e007              B        |L1.660|
                  |L1.644|
;;;267    		{ 
;;;268    			*pdata++=vk3804_I2CReadByte();
000284  f7fffffe          BL       vk3804_I2CReadByte
000288  f8040b01          STRB     r0,[r4],#1
;;;269    			vk3804_I2CSendAck();
00028c  f7fffffe          BL       vk3804_I2CSendAck
000290  1c68              ADDS     r0,r5,#1              ;266
000292  b2c5              UXTB     r5,r0                 ;266
                  |L1.660|
000294  1e70              SUBS     r0,r6,#1              ;266
000296  42a8              CMP      r0,r5                 ;266
000298  dcf4              BGT      |L1.644|
;;;270    		}
;;;271    		*pdata++=vk3804_I2CReadByte();
00029a  f7fffffe          BL       vk3804_I2CReadByte
00029e  f8040b01          STRB     r0,[r4],#1
;;;272    		vk3804_I2CSendNAck();
0002a2  f7fffffe          BL       vk3804_I2CSendNAck
;;;273    		break;
0002a6  e006              B        |L1.694|
                  |L1.680|
0002a8  ea5f0008          MOVS     r0,r8                 ;255
0002ac  f1a80101          SUB      r1,r8,#1              ;255
0002b0  f00108ff          AND      r8,r1,#0xff           ;255
0002b4  d1d7              BNE      |L1.614|
                  |L1.694|
0002b6  bf00              NOP      
;;;274     }
;;;275     vk3804_I2CStop();
0002b8  f7fffffe          BL       vk3804_I2CStop
;;;276     return errorflag;    //زɰܱ־
0002bc  4638              MOV      r0,r7
;;;277    }
0002be  e8bd81f0          POP      {r4-r8,pc}
;;;278    
                          ENDP

                  vk3804_Lowlevel_Init PROC
;;;284      *************************************************************/
;;;285    void vk3804_Lowlevel_Init(void)
0002c2  b510              PUSH     {r4,lr}
;;;286    {
;;;287    	//ͨߵƽͬӵƽת·
;;;288    	//˺ݿͻƬӦ޸
;;;289    	GPIO_SetMode(vk3804_SCL_PORT, vk3804_SCL_PIN, GPIO_MODE_OUTPUT);
0002c4  2201              MOVS     r2,#1
0002c6  0311              LSLS     r1,r2,#12
0002c8  4814              LDR      r0,|L1.796|
0002ca  f7fffffe          BL       GPIO_SetMode
;;;290    	GPIO_SetMode(vk3804_SDA_PORT, vk3804_SDA_PIN, GPIO_MODE_QUASI);
0002ce  2203              MOVS     r2,#3
0002d0  f44f6180          MOV      r1,#0x400
0002d4  4811              LDR      r0,|L1.796|
0002d6  f7fffffe          BL       GPIO_SetMode
;;;291    	GPIO_SetMode(vk3804_INT_PORT, vk3804_INT_PIN, GPIO_MODE_INPUT);
0002da  2200              MOVS     r2,#0
0002dc  f44f6100          MOV      r1,#0x800
0002e0  480e              LDR      r0,|L1.796|
0002e2  f7fffffe          BL       GPIO_SetMode
;;;292    		      
;;;293    	vk3804_SCL_H();	
0002e6  2001              MOVS     r0,#1
0002e8  490d              LDR      r1,|L1.800|
0002ea  3108              ADDS     r1,r1,#8
0002ec  6008              STR      r0,[r1,#0]
;;;294    	vk3804_SDA_H();
0002ee  490c              LDR      r1,|L1.800|
0002f0  6008              STR      r0,[r1,#0]
;;;295    }
0002f2  bd10              POP      {r4,pc}
;;;296    
                          ENDP

                  vk3804_Init PROC
;;;301      *************************************************************/
;;;302    void vk3804_Init(void)
0002f4  b510              PUSH     {r4,lr}
;;;303    {	
;;;304    	vk3804_Lowlevel_Init();
0002f6  f7fffffe          BL       vk3804_Lowlevel_Init
;;;305    }
0002fa  bd10              POP      {r4,pc}
;;;306    /*************************************************************
                          ENDP

                  vk3804_Main PROC
;;;310      *************************************************************/
;;;311    void vk3804_Main(void)
0002fc  f7fffffe          BL       vk3804_Init
;;;312    {		
;;;313    	vk3804_Init();
;;;314    	while(1)
000300  e00a              B        |L1.792|
                  |L1.770|
;;;315    	{	
;;;316    //    if( 0 == vk3804_GET_INT() )
;;;317    //		{
;;;318    			vk3804_readbuf[0]=0;
000302  2000              MOVS     r0,#0
000304  4907              LDR      r1,|L1.804|
000306  7008              STRB     r0,[r1,#0]
;;;319    			vk3804_readbuf[1]=0;
000308  7048              STRB     r0,[r1,#1]
;;;320    			vk3804ReaData(vk3804_readbuf,2);
00030a  2102              MOVS     r1,#2
00030c  4805              LDR      r0,|L1.804|
00030e  f7fffffe          BL       vk3804ReaData
;;;321    			delay_nus(100);
000312  2064              MOVS     r0,#0x64
000314  f7fffffe          BL       delay_nus
                  |L1.792|
000318  e7f3              B        |L1.770|
;;;322    //		}
;;;323    	}
;;;324    }
;;;325    /************************END OF FILE****/ 
                          ENDP

00031a  0000              DCW      0x0000
                  |L1.796|
                          DCD      0x40004040
                  |L1.800|
                          DCD      0x40004868
                  |L1.804|
                          DCD      vk3804_readbuf

                          AREA ||.data||, DATA, ALIGN=0

                  vk3804_cmdsetbuf
                          DCDU     0x00000000
                  vk3804_readbuf
000004  0000              DCB      0x00,0x00

;*** Start embedded assembler ***

#line 1 "..\\touch_driver\\vk3804.c"
	AREA ||.rev16_text||, CODE
	THUMB
	EXPORT |__asm___8_vk3804_c_4e9246e2____REV16|
#line 114 "..\\..\\..\\Library\\CMSIS\\Include\\core_cmInstr.h"
|__asm___8_vk3804_c_4e9246e2____REV16| PROC
#line 115

 rev16 r0, r0
 bx lr
	ENDP
	AREA ||.revsh_text||, CODE
	THUMB
	EXPORT |__asm___8_vk3804_c_4e9246e2____REVSH|
#line 128
|__asm___8_vk3804_c_4e9246e2____REVSH| PROC
#line 129

 revsh r0, r0
 bx lr
	ENDP

;*** End   embedded assembler ***
