📄 adc.txt
字号:
000c20 e1a00000 NOP
|L1.3108|
000c24 e1a00000 NOP
;;;449 while(!tsTrue)
000c28 e1a00000 NOP
|L1.3116|
000c2c e51f08c8 LDR r0,|L1.876|
000c30 e5900000 LDR r0,[r0,#0] ; tsTrue
000c34 e3500000 CMP r0,#0
000c38 1a00000f BNE |L1.3196|
;;;450 if(Uart_GetKey()) {
000c3c ebfffffe BL Uart_GetKey
000c40 e3500000 CMP r0,#0
000c44 0a00000b BEQ |L1.3192|
;;;451 rINTSUBMSK|=(BIT_SUB_PENUP|BIT_SUB_PENDN|BIT_SUB_ADC);
000c48 e51f0bd0 LDR r0,|L1.128|
000c4c e590001c LDR r0,[r0,#0x1c]
000c50 e3800ae0 ORR r0,r0,#0xe0000
000c54 e51f1bdc LDR r1,|L1.128|
000c58 e581001c STR r0,[r1,#0x1c]
;;;452 rINTMSK|=BIT_ADC_PENUP_DOWN;
000c5c e1a00001 MOV r0,r1
000c60 e5900008 LDR r0,[r0,#8]
000c64 e3800480 ORR r0,r0,#0x80000000
000c68 e5810008 STR r0,[r1,#8]
;;;453 Uart_Printf("[Touch Screen Test is done]\n");
000c6c e28f0f4a ADR r0,|L1.3484|
000c70 ebfffffe BL _printf
;;;454 return;
;;;455 }
;;;456
;;;457 tsTrue=0;
;;;458 switch(tsStatus) {
;;;459 case 1:
;;;460 Uart_Printf("Stylue Up!\n");
;;;461 break;
;;;462 case 2:
;;;463 Uart_Printf("Stylue Down!\n");
;;;464 break;
;;;465 case 4:
;;;466 Uart_Printf("X-Posion[AIN5] is %04d\n", (0x3ff&rADCDAX));
;;;467 Uart_Printf("Y-Posion[AIN7] is %04d\n", (0x3ff&rADCDAY));
;;;468 rADCTSC=(0<<8)|(13<<4)|(0<<3)|(0<<2)|1;//for returning to X-position....
;;;469 rADCTSC=0xd3; //for waiting interruupt
;;;470 break;
;;;471 default:
;;;472 break;
;;;473 }
;;;474 }
;;;475
;;;476 rINTSUBMSK|=(BIT_SUB_PENUP|BIT_SUB_PENDN|BIT_SUB_ADC);
;;;477 rINTMSK|=BIT_ADC_PENUP_DOWN;
;;;478 Uart_Printf("[Touch Screen Test is done]\n");
;;;479 }
000c74 e8bd8008 LDMFD sp!,{r3,pc}
|L1.3192|
000c78 eaffffeb B |L1.3116| ;455
|L1.3196|
000c7c e3a00000 MOV r0,#0 ;457
000c80 e51f191c LDR r1,|L1.876| ;457
000c84 e5810000 STR r0,[r1,#0] ;457 ; tsTrue
000c88 e51f0928 LDR r0,|L1.872| ;458
000c8c e5900000 LDR r0,[r0,#0] ;458 ; tsStatus
000c90 e3500001 CMP r0,#1 ;458
000c94 0a000004 BEQ |L1.3244| ;458
000c98 e3500002 CMP r0,#2 ;458
000c9c 0a000005 BEQ |L1.3256| ;458
000ca0 e3500004 CMP r0,#4 ;458
000ca4 1a000019 BNE |L1.3344| ;458
000ca8 ea000005 B |L1.3268| ;458
|L1.3244|
000cac e28f0f42 ADR r0,|L1.3516| ;460
000cb0 ebfffffe BL _printf ;460
000cb4 ea000016 B |L1.3348| ;461
|L1.3256|
000cb8 e28f0f42 ADR r0,|L1.3528| ;463
000cbc ebfffffe BL _printf ;463
000cc0 ea000013 B |L1.3348| ;464
|L1.3268|
000cc4 e51f095c LDR r0,|L1.880| ;466
000cc8 e590000c LDR r0,[r0,#0xc] ;466
000ccc e1a01b00 MOV r1,r0,LSL #22 ;466
000cd0 e1a01b21 MOV r1,r1,LSR #22 ;466
000cd4 e28f00fc ADR r0,|L1.3544| ;466
000cd8 ebfffffe BL _printf ;466
000cdc e51f0974 LDR r0,|L1.880| ;467
000ce0 e5900010 LDR r0,[r0,#0x10] ;467
000ce4 e1a01b00 MOV r1,r0,LSL #22 ;467
000ce8 e1a01b21 MOV r1,r1,LSR #22 ;467
000cec e28f00fc ADR r0,|L1.3568| ;467
000cf0 ebfffffe BL _printf ;467
000cf4 e3a000d1 MOV r0,#0xd1 ;468
000cf8 e51f1990 LDR r1,|L1.880| ;468
000cfc e5810004 STR r0,[r1,#4] ;468
000d00 e3a000d3 MOV r0,#0xd3 ;469
000d04 e1c11000 BIC r1,r1,r0 ;469
000d08 e5810004 STR r0,[r1,#4] ;469
000d0c ea000000 B |L1.3348| ;470
|L1.3344|
000d10 e1a00000 NOP ;472
|L1.3348|
000d14 eaffffc2 B |L1.3108| ;474
|L1.3352|
000d18 756f545b DCB "[Tou" ;474
000d1c 53206863 DCB "ch S" ;474
000d20 65657263 DCB "cree" ;474
000d24 6554206e DCB "n Te" ;474
000d28 5d2e7473 DCB "st.]" ;474
000d2c 0000000a DCB "\n\0\0\0" ;474
|L1.3376|
000d30 6f747541 DCB "Auto" ;474
000d34 592f5820 DCB " X/Y" ;474
000d38 736f7020 DCB " pos" ;474
000d3c 6f697469 DCB "itio" ;474
000d40 6f63206e DCB "n co" ;474
000d44 7265766e DCB "nver" ;474
000d48 6e6f6973 DCB "sion" ;474
000d4c 646f6d20 DCB " mod" ;474
000d50 65742065 DCB "e te" ;474
000d54 000a7473 DCB "st\n\0" ;474
|L1.3416|
000d58 000049c0 DCD 0x000049c0 ;474
|L1.3420|
000d5c 00000000 DCD TS_Auto_Int ;474
|L1.3424|
000d60 7079540a DCB "\nTyp" ;474
000d64 6e612065 DCB "e an" ;474
000d68 656b2079 DCB "y ke" ;474
000d6c 6f742079 DCB "y to" ;474
000d70 69786520 DCB " exi" ;474
000d74 21212174 DCB "t!!!" ;474
000d78 0000000a DCB "\n\0\0\0" ;474
|L1.3452|
000d7c 7974530a DCB "\nSty" ;474
000d80 2073756c DCB "lus " ;474
000d84 6e776f44 DCB "Down" ;474
000d88 6c70202c DCB ", pl" ;474
000d8c 65736165 DCB "ease" ;474
000d90 2e2e2e2e DCB "...." ;474
000d94 0a202e2e DCB ".. \n" ;474
000d98 00000000 DCB "\0\0\0\0" ;474
|L1.3484|
000d9c 756f545b DCB "[Tou" ;474
000da0 53206863 DCB "ch S" ;474
000da4 65657263 DCB "cree" ;474
000da8 6554206e DCB "n Te" ;474
000dac 69207473 DCB "st i" ;474
000db0 6f642073 DCB "s do" ;474
000db4 0a5d656e DCB "ne]\n" ;474
000db8 00000000 DCB "\0\0\0\0" ;474
|L1.3516|
000dbc 6c797453 DCB "Styl" ;474
000dc0 55206575 DCB "ue U" ;474
000dc4 000a2170 DCB "p!\n\0" ;474
|L1.3528|
000dc8 6c797453 DCB "Styl" ;474
000dcc 44206575 DCB "ue D" ;474
000dd0 216e776f DCB "own!" ;474
000dd4 0000000a DCB "\n\0\0\0" ;474
|L1.3544|
000dd8 6f502d58 DCB "X-Po" ;474
000ddc 6e6f6973 DCB "sion" ;474
000de0 4e49415b DCB "[AIN" ;474
000de4 69205d35 DCB "5] i" ;474
000de8 30252073 DCB "s %0" ;474
000dec 000a6434 DCB "4d\n\0" ;474
|L1.3568|
000df0 6f502d59 DCB "Y-Po" ;474
000df4 6e6f6973 DCB "sion" ;474
000df8 4e49415b DCB "[AIN" ;474
000dfc 69205d37 DCB "7] i" ;474
000e00 30252073 DCB "s %0" ;474
000e04 000a6434 DCB "4d\n\0" ;474
ENDP
Test_Ts_Sep PROC
;;;483 void Test_Ts_Sep(void)
;;;484 {
000e08 e92d4010 STMFD sp!,{r4,lr}
;;;485
;;;486
;;;487 U32 whatposition;
;;;488
;;;489 Uart_Printf("[Touch Screen Test.]\n");
000e0c e24f00fc ADR r0,|L1.3352|
000e10 ebfffffe BL _printf
;;;490 Uart_Printf("Auto X/Y position conversion mode test\n");
000e14 e24f00ec ADR r0,|L1.3376|
000e18 ebfffffe BL _printf
;;;491
;;;492 #if 0
;;;493 rGPCON_M=(rGPCON_M&~(0x3f))|(0x3f);
;;;494 rGPCON_L=(rGPCON_L&~(0x3<<20))|(0x3<<20);
;;;495 #endif
;;;496
;;;497 rADCDLY=(1000); // ADC Start or Interval Delay
000e1c e3a00ffa MOV r0,#0x3e8
000e20 e51f1ab8 LDR r1,|L1.880|
000e24 e5810008 STR r0,[r1,#8]
;;;498
;;;499 // Enable Prescaler,Prescaler,AIN5/7 fix,Normal,Disable read start,No operation
;;;500 rADCCON = (1<<14)|(ADCPRS<<6)|(0<<3)|(0<<2)|(0<<1)|0;
000e28 e51f00d8 LDR r0,|L1.3416|
000e2c e1c11000 BIC r1,r1,r0
000e30 e5810000 STR r0,[r1,#0]
;;;501
;;;502 //rADCTSC=(0<<8)|(13<<4)|(0<<3)|(0<<2)|3;//tark, XP pullup En,Normal,Waiting for interrupt mode
;;;503 rADCTSC=0xd3;
000e34 e3a000d3 MOV r0,#0xd3
000e38 e1c11000 BIC r1,r1,r0
000e3c e5810004 STR r0,[r1,#4]
;;;504
;;;505 pISR_ADC_PENUP_DOWN=(U32)TS_Sep_Int;
000e40 e59f0178 LDR r0,|L1.4032|
000e44 e51f1304 LDR r1,|L1.2888|
000e48 e5810f9c STR r0,[r1,#0xf9c]
;;;506 rINTMSK&=~(BIT_ADC_PENUP_DOWN);
000e4c e51f0dd4 LDR r0,|L1.128|
000e50 e5900008 LDR r0,[r0,#8]
000e54 e3c00480 BIC r0,r0,#0x80000000
000e58 e51f1de0 LDR r1,|L1.128|
000e5c e5810008 STR r0,[r1,#8]
;;;507 rINTSUBMSK&=~(BIT_SUB_PENUP|BIT_SUB_PENDN|BIT_SUB_ADC);
000e60 e1a00001 MOV r0,r1
000e64 e590001c LDR r0,[r0,#0x1c]
000e68 e3c00ae0 BIC r0,r0,#0xe0000
000e6c e581001c STR r0,[r1,#0x1c]
;;;508
;;;509 Uart_Printf("\nType any key to exit!!!\n");
000e70 e24f0f46 ADR r0,|L1.3424|
000e74 ebfffffe BL _printf
;;;510 Uart_Printf("\nStylus Down, please...... \n");
000e78 e24f0f41 ADR r0,|L1.3452|
000e7c ebfffffe BL _printf
;;;511
;;;512 tsTrue=0;
000e80 e3a00000 MOV r0,#0
000e84 e51f1b20 LDR r1,|L1.876|
000e88 e5810000 STR r0,[r1,#0] ; tsTrue
;;;513 whatposition=0;
000e8c e3a04000 MOV r4,#0
;;;514 while(1) {
000e90 e1a00000 NOP
|L1.3732|
000e94 e1a00000 NOP
;;;515 while(!tsTrue)
000e98 e1a00000 NOP
|L1.3740|
000e9c e51f0b38 LDR r0,|L1.876|
000ea0 e5900000 LDR r0,[r0,#0] ; tsTrue
000ea4 e3500000 CMP r0,#0
000ea8 1a00000f BNE |L1.3820|
;;;516 if(Uart_GetKey()) {
000eac ebfffffe BL Uart_GetKey
000eb0 e3500000 CMP r0,#0
000eb4 0a00000b BEQ |L1.3816|
;;;517 rINTSUBMSK|=(BIT_SUB_PENUP|BIT_SUB_PENDN|BIT_SUB_ADC);
000eb8 e51f0e40 LDR r0,|L1.128|
000ebc e590001c LDR r0,[r0,#0x1c]
000ec0 e3800ae0 ORR r0,r0,#0xe0000
000ec4 e51f1e4c LDR r1,|L1.128|
000ec8 e581001c STR r0,[r1,#0x1c]
;;;518 rINTMSK|=BIT_ADC_PENUP_DOWN;
000ecc e1a00001 MOV r0,r1
000ed0 e5900008 LDR r0,[r0,#8]
000ed4 e3800480 ORR r0,r0,#0x80000000
000ed8 e5810008 STR r0,[r1,#8]
;;;519 Uart_Printf("[Touch Screen Test is done]\n");
000edc e24f0f52 ADR r0,|L1.3484|
000ee0 ebfffffe BL _printf
;;;520 return;
;;;521 }
;;;522 tsTrue=0;
;;;523 switch(tsStatus) {
;;;524 case 1:
;;;525 Uart_Printf("Stylue Up!\n");
;;;526 break;
;;;527 case 2:
;;;528 Uart_Printf("Stylue Down!\n");
;;;529 break;
;;;530 case 4:
;;;531 if(whatposition==0) {
;;;532 Uart_Printf("X-Posion[AIN5] is %04d\n", (0x3ff&rADCDAX));
;;;533 whatposition=1;
;;;534 rADCTSC=(0<<8)|(1<<3)|(0<<2)|(2);// Down,Pullup Dis,Normal,Y-position
;;;535 rADCCON|=0x1;// Start Y conversion
;;;536 }
;;;537 else if(whatposition==1) {
;;;538 Uart_Printf("Y-Posion[AIN7] is %04d\n", (0x3ff&rADCDAY));
;;;539 whatposition=0;
;;;540 rADCTSC=(0<<8)|(13<<4)|(0<<3)|(0<<2)|1;//for returning to X-position....
;;;541 rADCTSC=0xd3; //for waiting interruupt
;;;542 }
;;;543 break;
;;;544 default:
;;;545 break;
;;;546 }
;;;547 }
;;;548
;;;549 rINTSUBMSK|=(BIT_SUB_PENUP|BIT_SUB_PENDN|BIT_SUB_ADC);
;;;550 rINTMSK|=BIT_ADC_PENUP_DOWN;
;;;551 Uart_Printf("[Touch Screen Test is done]\n");
;;;552 }
000ee4 e8bd8010 LDMFD sp!,{r4,pc}
|L1.3816|
000ee8 eaffffeb B |L1.3740| ;521
|L1.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -