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

📄 touch.cod

📁 PXA270 平台 Windows Mobile 5。0 UCB1400 触摸屏驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:

  000a4	e1a03083	 mov         r3, r3, lsl #1

; 525  :         pTCP->CalibrationY = CalibrationRadiusY*2;

  000a8	e1a02082	 mov         r2, r2, lsl #1

; 526  :         break;

  000ac	ea000003	 b           |$L32870|
  000b0		 |$L32507|

; 517  :     {
; 518  :     case  0:  // Middle
; 519  :         pTCP->CalibrationX = cDisplayWidth/2;

  000b0	e0863fa6	 add         r3, r6, r6, lsr #31

; 520  :         pTCP->CalibrationY = cDisplayHeight/2;

  000b4	e0872fa7	 add         r2, r7, r7, lsr #31
  000b8	e1a030c3	 mov         r3, r3, asr #1
  000bc	e1a020c2	 mov         r2, r2, asr #1
  000c0		 |$L32870|
  000c0	e580300c	 str         r3, [r0, #0xC]
  000c4	e5802010	 str         r2, [r0, #0x10]

; 548  :     }
; 549  : 
; 550  :     return (TRUE);

  000c8	e3a00001	 mov         r0, #1

; 551  : }

  000cc	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  000d0	e12fff1e	 bx          lr
  000d4		 |$L32878|
  000d4	66666667	 DCD         0x66666667
  000d8		 |$M32874|

			 ENDP  ; |TouchDriverCalibrationPointGet|

	EXPORT	|DdsiTouchPanelGetDeviceCaps|
	EXPORT	|??_C@_1JC@PJIGKIBG@?$AAc?$AA?3?$AA?2?$AAw?$AAm?$AA5?$AA2?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?2?$AAa?$AAl@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1FM@GOBOJOFI@?$AAT?$AAo?$AAu?$AAc?$AAh?$AAP?$AAa?$AAn?$AAe?$AAl?$AAG?$AAe?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC@| [ DATA ] ; `string'
	IMPORT	|NKDbgPrintfW|

  00000			 AREA	 |.text| { |DdsiTouchPanelGetDeviceCaps| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DdsiTouchPanelGetDeviceCaps|, PDATA, SELECTION=5, ASSOC=|.text| { |DdsiTouchPanelGetDeviceCaps| } ; comdat associative
|$T32895| DCD	|$L32894|
	DCD	0x40002901

  00000			 AREA	 |.rdata| { |??_C@_1JC@PJIGKIBG@?$AAc?$AA?3?$AA?2?$AAw?$AAm?$AA5?$AA2?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?2?$AAa?$AAl@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1JC@PJIGKIBG@?$AAc?$AA?3?$AA?2?$AAw?$AAm?$AA5?$AA2?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?2?$AAa?$AAl@| DCB "c"
	DCB	0x0, ":", 0x0, "\\", 0x0, "w", 0x0, "m", 0x0, "5", 0x0, "2"
	DCB	0x0, "0", 0x0, "\\", 0x0, "p", 0x0, "l", 0x0, "a", 0x0, "t"
	DCB	0x0, "f", 0x0, "o", 0x0, "r", 0x0, "m", 0x0, "\\", 0x0, "a"
	DCB	0x0, "l", 0x0, "2", 0x0, "7", 0x0, "0", 0x0, "\\", 0x0, "p"
	DCB	0x0, "l", 0x0, "a", 0x0, "t", 0x0, "f", 0x0, "o", 0x0, "r"
	DCB	0x0, "m", 0x0, "\\", 0x0, "m", 0x0, "a", 0x0, "i", 0x0, "n"
	DCB	0x0, "s", 0x0, "t", 0x0, "o", 0x0, "n", 0x0, "e", 0x0, "i"
	DCB	0x0, "i", 0x0, "\\", 0x0, "s", 0x0, "r", 0x0, "c", 0x0, "\\"
	DCB	0x0, "d", 0x0, "r", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "r"
	DCB	0x0, "s", 0x0, "\\", 0x0, "t", 0x0, "o", 0x0, "u", 0x0, "c"
	DCB	0x0, "h", 0x0, "\\", 0x0, "t", 0x0, "o", 0x0, "u", 0x0, "c"
	DCB	0x0, "h", 0x0, ".", 0x0, "c", 0x0, "p", 0x0, "p", 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@| DCB "E"
	DCB	0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, ":", 0x0, " "
	DCB	0x0, "%", 0x0, "s", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
	DCB	0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, ":", 0x0, " "
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1FM@GOBOJOFI@?$AAT?$AAo?$AAu?$AAc?$AAh?$AAP?$AAa?$AAn?$AAe?$AAl?$AAG?$AAe?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FM@GOBOJOFI@?$AAT?$AAo?$AAu?$AAc?$AAh?$AAP?$AAa?$AAn?$AAe?$AAl?$AAG?$AAe?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC@| DCB "T"
	DCB	0x0, "o", 0x0, "u", 0x0, "c", 0x0, "h", 0x0, "P", 0x0, "a"
	DCB	0x0, "n", 0x0, "e", 0x0, "l", 0x0, "G", 0x0, "e", 0x0, "t"
	DCB	0x0, "D", 0x0, "e", 0x0, "v", 0x0, "i", 0x0, "c", 0x0, "e"
	DCB	0x0, "C", 0x0, "a", 0x0, "p", 0x0, "s", 0x0, ":", 0x0, " "
	DCB	0x0, "i", 0x0, "n", 0x0, "v", 0x0, "a", 0x0, "l", 0x0, "i"
	DCB	0x0, "d", 0x0, " ", 0x0, "p", 0x0, "a", 0x0, "r", 0x0, "a"
	DCB	0x0, "m", 0x0, "e", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "."
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DdsiTouchPanelGetDeviceCaps| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DdsiTouchPanelGetDeviceCaps| PROC

; 555  : {

  00000		 |$L32894|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32892|
  00004	e3510000	 cmp         r1, #0

; 556  : 
; 557  :     if (lpOutput == NULL)
; 558  :     {
; 559  :         ERRORMSG(1,(__TEXT("TouchPanelGetDeviceCaps: invalid parameter.\r\n")));

  00008	03a02f8b	 moveq       r2, #0x8B, 30
  0000c	03822003	 orreq       r2, r2, #3
  00010	0a000006	 beq         |$L32891|

; 560  :         SetLastError(ERROR_INVALID_PARAMETER);
; 561  :         return (FALSE);
; 562  :     }
; 563  : 
; 564  :     switch (iIndex)

  00014	e3500000	 cmp         r0, #0
  00018	0a000016	 beq         |$L32525|
  0001c	e3500001	 cmp         r0, #1
  00020	0a000010	 beq         |$L32528|
  00024	e3500002	 cmp         r0, #2
  00028	0a00000a	 beq         |$L32531|

; 586  : 
; 587  :     default:
; 588  :         ERRORMSG(1,(__TEXT("TouchPanelGetDeviceCaps: invalid parameter.\r\n")));

  0002c	e3a02f93	 mov         r2, #0x93, 30
  00030		 |$L32891|
  00030	e59f0068	 ldr         r0, [pc, #0x68]
  00034	e59f1060	 ldr         r1, [pc, #0x60]
  00038	eb000000	 bl          NKDbgPrintfW
  0003c	e59f0054	 ldr         r0, [pc, #0x54]
  00040	eb000000	 bl          NKDbgPrintfW

; 589  :         SetLastError(ERROR_INVALID_PARAMETER);

  00044	e3a00057	 mov         r0, #0x57
  00048	eb000000	 bl          SetLastError

; 590  :         return (FALSE);

  0004c	e3a00000	 mov         r0, #0

; 593  : }

  00050	e49de004	 ldr         lr, [sp], #4
  00054	e12fff1e	 bx          lr
  00058		 |$L32531|

; 583  : 
; 584  :     case TPDC_CALIBRATION_POINT_ID:
; 585  :         return(TouchDriverCalibrationPointGet((TPDC_CALIBRATION_POINT*)lpOutput));

  00058	e1a00001	 mov         r0, r1
  0005c	eb000000	 bl          TouchDriverCalibrationPointGet

; 593  : }

  00060	e49de004	 ldr         lr, [sp], #4
  00064	e12fff1e	 bx          lr
  00068		 |$L32528|

; 573  :         }
; 574  :         break;
; 575  : 
; 576  :     case TPDC_CALIBRATION_POINT_COUNT_ID:
; 577  :         {
; 578  :             TPDC_CALIBRATION_POINT_COUNT *pTCPC = (TPDC_CALIBRATION_POINT_COUNT*)lpOutput;
; 579  :             pTCPC->flags = 0;

  00068	e3a03000	 mov         r3, #0

; 580  :             pTCPC->cCalibrationPoints = 5;

  0006c	e5813000	 str         r3, [r1]
  00070	e3a02005	 mov         r2, #5

; 581  :         }
; 582  :         break;

  00074	ea000003	 b           |$L32889|
  00078		 |$L32525|

; 565  :     {
; 566  :     case TPDC_SAMPLE_RATE_ID:
; 567  :         {
; 568  :             TPDC_SAMPLE_RATE  *pTSR = (TPDC_SAMPLE_RATE*)lpOutput;
; 569  : 
; 570  :             pTSR->SamplesPerSecondLow = TOUCHPANEL_SAMPLE_RATE_LOW;
; 571  :             pTSR->SamplesPerSecondHigh = TOUCHPANEL_SAMPLE_RATE_HIGH;
; 572  :             pTSR->CurrentSampleRateSetting = 90;

  00078	e3a0305a	 mov         r3, #0x5A
  0007c	e3a02096	 mov         r2, #0x96
  00080	e5813008	 str         r3, [r1, #8]
  00084	e5812000	 str         r2, [r1]
  00088		 |$L32889|
  00088	e5812004	 str         r2, [r1, #4]

; 591  :     }
; 592  :     return (TRUE);

  0008c	e3a00001	 mov         r0, #1

; 593  : }

  00090	e49de004	 ldr         lr, [sp], #4
  00094	e12fff1e	 bx          lr
  00098		 |$L32897|
  00098	00000000	 DCD         |??_C@_1FM@GOBOJOFI@?$AAT?$AAo?$AAu?$AAc?$AAh?$AAP?$AAa?$AAn?$AAe?$AAl?$AAG?$AAe?$AAt?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC@|
  0009c	00000000	 DCD         |??_C@_1JC@PJIGKIBG@?$AAc?$AA?3?$AA?2?$AAw?$AAm?$AA5?$AA2?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm?$AA?2?$AAa?$AAl@|
  000a0	00000000	 DCD         |??_C@_1CI@OHCJFJPM@?$AAE?$AAR?$AAR?$AAO?$AAR?$AA?3?$AA?5?$AA?$CF?$AAs?$AA?5?$AAl?$AAi?$AAn?$AAe?$AA?5?$AA?$CF?$AAd?$AA?3?$AA?5?$AA?$AA@|
  000a4		 |$M32893|

			 ENDP  ; |DdsiTouchPanelGetDeviceCaps|

	EXPORT	|DdsiTouchPanelSetMode|

  00000			 AREA	 |.text| { |DdsiTouchPanelSetMode| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$DdsiTouchPanelSetMode|, PDATA, SELECTION=5, ASSOC=|.text| { |DdsiTouchPanelSetMode| } ; comdat associative
|$T32907| DCD	|$L32906|
	DCD	0x40000f01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |DdsiTouchPanelSetMode| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |DdsiTouchPanelSetMode| PROC

; 597  : {

  00000		 |$L32906|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32904|
  00004	e3500000	 cmp         r0, #0

; 598  :     BOOL  ReturnCode = FALSE;

  00008	e3a04000	 mov         r4, #0

; 599  : 
; 600  :     switch (iIndex)

  0000c	4a000005	 bmi         |$L32544|
  00010	e3500001	 cmp         r0, #1
  00014	ca000003	 bgt         |$L32544|

; 601  :     {
; 602  :     case TPSM_SAMPLERATE_LOW_ID:
; 603  :     case TPSM_SAMPLERATE_HIGH_ID:
; 604  :         SetLastError(ERROR_SUCCESS);

  00018	e3a00000	 mov         r0, #0
  0001c	eb000000	 bl          SetLastError

; 605  :         ReturnCode = TRUE;

  00020	e3a04001	 mov         r4, #1

; 606  :         break;

  00024	ea000001	 b           |$L32540|
  00028		 |$L32544|

; 607  : 
; 608  :     default:
; 609  :         SetLastError(ERROR_INVALID_PARAMETER);

  00028	e3a00057	 mov         r0, #0x57
  0002c	eb000000	 bl          SetLastError
  00030		 |$L32540|

; 610  :         break;
; 611  :     }
; 612  :     return(ReturnCode);

  00030	e1a00004	 mov         r0, r4

; 613  : }

  00034	e8bd4010	 ldmia       sp!, {r4, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$M32905|

			 ENDP  ; |DdsiTouchPanelSetMode|

	EXPORT	|?PDDSampleTouchScreen@@YAIPAH0@Z|	; PDDSampleTouchScreen

  00000			 AREA	 |.text| { |?PDDSampleTouchScreen@@YAIPAH0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?PDDSampleTouchScreen@@YAIPAH0@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PDDSampleTouchScreen@@YAIPAH0@Z| } ; comdat associative
|$T32928| DCD	|$L32927|
	DCD	0x40004102
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?PDDSampleTouchScreen@@YAIPAH0@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?PDDSampleTouchScreen@@YAIPAH0@Z| PROC ; PDDSampleTouchScreen

; 617  : {

  00000		 |$L32927|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004	e24dd018	 sub         sp, sp, #0x18
  00008		 |$M32925|
  00008	e1a07001	 mov         r7, r1
  0000c	e1a08000	 mov         r8, r0

; 618  :     UINT32 i;
; 619  :     TOUCH_PANEL_SAMPLE_FLAGS TmpStateFlags;
; 620  :     TOUCHPANEL_POINT_SAMPLES rgPointSamples;
; 621  :     INT TmpX = 0;

  00010	e3a03000	 mov         r3, #0

; 622  :     INT TmpY = 0;

  00014	e3a06000	 mov         r6, #0
  00018	e58d3008	 str         r3, [sp, #8]
  0001c	e58d6004	 str         r6, [sp, #4]
  00020	e28d400c	 add         r4, sp, #0xC
  00024	e3a05003	 mov         r5, #3
  00028		 |$L32554|

; 623  : 
; 624  :     for (i=0;i<NUMBER_SAMPLES_PER_POINT;i++)             // Prime the Pump for the X
; 625  :         rgPointSamples[i].XSample=getTouchCoordinate(UCB_ADC_X);  // Throw away the samples

  00028	e3a00902	 mov         r0, #2, 18
  0002c	e3800008	 orr         r0, r0, #8
  00030	eb000000	 bl          |?getTouchCoordinate@@YAGI@Z|
  00034	e0c400b4	 strh        r0, [r4], #4
  00038	e2555001	 subs        r5, r5, #1
  0003c	1afffff9	 bne         |$L32554|

; 626  : 
; 627  :     for (i=0;i<NUMBER_SAMPLES_PER_POINT;i++)

  00040	e28d400c	 add         r4, sp, #0xC
  00044	e3a05003	 mov         r5, #3
  00048		 |$L32557|

; 628  :         rgPointSamples[i].XSample=getTouchCoordinate(UCB_ADC_X);

  00048	e3a00902	 mov         r0, #2, 18
  0004c	e3800008	 orr         r0, r0, #8
  00050	eb000000	 bl          |?getTouchCoordinate@@YAGI@Z|
  00054	e0c400b4	 strh        r0, [r4], #4
  00058	e2555001	 subs        r5, r5, #1
  0005c	1afffff9	 bne         |$L32557|

; 629  : 
; 630  :     for (i=0;i<NUMBER_SAMPLES_PER_POINT;i++)             // Prime the Pump for the Y

  00060	e28d400c	 add         r4, sp, #0xC
  00064	e3a05003	 mov         r5, #3
  00068		 |$L32560|

; 631  :         rgPointSamples[i].YSample=getTouchCoordinate(UCB_ADC_Y);  // Throw it away

  00068	e3a00902	 mov         r0, #2, 18
  0006c	eb000000	 bl          |?getTouchCoordinate@@YAGI@Z|
  00070	e1c400b2	 strh        r0, [r4, #2]
  00074	e2844004	 add         r4, r4, #4
  00078	e2555001	 subs        r5, r5, #1
  0007c	1afffff9	 bne         |$L32560|

; 632  : 
; 633  :     for (i=0;i<NUMBER_SAMPLES_PER_POINT;i++)

  00080	e28d400c	 add         r4, sp, #0xC
  00084	e3a05003	 mov         r5, #3
  00088		 |$L32563|

; 634  :         rgPointSamples[i].YSample=getTouchCoordinate(UCB_ADC_Y);

  00088	e3a00902	 mov         r0, #2, 18
  0008c	eb000000	 bl          |?getTouchCoordinate@@YAGI@Z|
  00090	e1c400b2	 strh        r0, [r4, #2]
  00094	e2844004	 add         r4, r4, #4
  00098	e2555001	 subs        r5, r5, #1
  0009c	1afffff9	 bne         |$L32563|

; 635  : 
; 636  :     TmpStateFlags = TouchSampleDownFlag;
; 637  :     if (evaluateSample(rgPointSamples[0].XSample,rgPointSamples[1].XSample,rgPointSamples[2].XSample,
; 638  :                        DELTA_X_COORD_VARIANCE,&TmpX) == TouchSampleIgnore)

  000a0	e1dd21b4	 ldrh        r2, [sp, #0x14]
  000a4	e1dd11b0	 ldrh        r1, [sp, #0x10]
  000a8	e1dd00bc	 ldrh        r0, [sp, #0xC]
  000ac	e28de008	 add         lr, sp, #8
  000b0	e3a03016	 mov         r3, #0x16
  000b4	e58de000	 str         lr, [sp]

⌨️ 快捷键说明

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