📄 adcts.txt
字号:
000298 e59f1168 LDR r1,|L1.1032|
00029c e5810000 STR r0,[r1,#0] ; xdata
;;;125 ydata=(rADCDAT1&0x3ff);
0002a0 e3a00458 MOV r0,#0x58000000
0002a4 e5900010 LDR r0,[r0,#0x10]
0002a8 e1a00b00 MOV r0,r0,LSL #22
0002ac e1a00b20 MOV r0,r0,LSR #22
0002b0 e59f1154 LDR r1,|L1.1036|
0002b4 e5810000 STR r0,[r1,#0] ; ydata
;;;126
;;;127 //YH 0627, To check Stylus Up Interrupt.
;;;128 rSUBSRCPND|=BIT_SUB_TC;
0002b8 e3a0044a MOV r0,#0x4a000000
0002bc e5900018 LDR r0,[r0,#0x18]
0002c0 e3800f80 ORR r0,r0,#0x200
0002c4 e3a0144a MOV r1,#0x4a000000
0002c8 e5810018 STR r0,[r1,#0x18]
;;;129 ClearPending(BIT_ADC);
0002cc e3a00480 MOV r0,#0x80000000
0002d0 e3a0144a MOV r1,#0x4a000000
0002d4 e5810000 STR r0,[r1,#0]
0002d8 e3a00480 MOV r0,#0x80000000
0002dc e3a0144a MOV r1,#0x4a000000
0002e0 e5810010 STR r0,[r1,#0x10]
0002e4 e3a0044a MOV r0,#0x4a000000
0002e8 e5900010 LDR r0,[r0,#0x10]
;;;130 rINTSUBMSK=~(BIT_SUB_TC);
0002ec e3e00f80 MVN r0,#0x200
0002f0 e3a0144a MOV r1,#0x4a000000
0002f4 e581001c STR r0,[r1,#0x1c]
;;;131 rINTMSK=~(BIT_ADC);
0002f8 e3e00480 MVN r0,#0x80000000
0002fc e3a0144a MOV r1,#0x4a000000
000300 e5810008 STR r0,[r1,#8]
;;;132
;;;133 rADCTSC =0xd3; //Waiting for interrupt
000304 e3a000d3 MOV r0,#0xd3
000308 e3a01458 MOV r1,#0x58000000
00030c e5810004 STR r0,[r1,#4]
;;;134 rADCTSC=rADCTSC|(1<<8); // Detect stylus up interrupt signal.
000310 e3a00458 MOV r0,#0x58000000
000314 e5900004 LDR r0,[r0,#4]
000318 e3800f40 ORR r0,r0,#0x100
00031c e3a01458 MOV r1,#0x58000000
000320 e5810004 STR r0,[r1,#4]
;;;135
;;;136 while(1) //to check Pen-up state
000324 e1a00000 NOP
|L1.808|
000328 e1a00000 NOP
;;;137 {
;;;138 if(rSUBSRCPND & (BIT_SUB_TC)) //check if ADC is finished with interrupt bit
00032c e3a0044a MOV r0,#0x4a000000
000330 e5900018 LDR r0,[r0,#0x18]
000334 e3100f80 TST r0,#0x200
000338 0a000002 BEQ |L1.840|
;;;139 {
;;;140 Uart_Printf("Stylus Up Interrupt~!\n");
00033c e28f00cc ADR r0,|L1.1040|
000340 ebfffffe BL Uart_Printf
;;;141 break; //if Stylus is up(1) state
000344 ea000000 B |L1.844|
;;;142 }
;;;143 }
|L1.840|
000348 eafffff6 B |L1.808|
;;;144
;;;145 Uart_Printf("count=%d XP=%04d, YP=%04d\n", count++, xdata, ydata); //X-position Conversion data
|L1.844|
00034c e59f00d4 LDR r0,|L1.1064|
000350 e5900000 LDR r0,[r0,#0] ; count
000354 e2802001 ADD r2,r0,#1
000358 e59f30c8 LDR r3,|L1.1064|
00035c e1a01000 MOV r1,r0
000360 e59f00a4 LDR r0,|L1.1036|
000364 e5832000 STR r2,[r3,#0] ; count
000368 e5903000 LDR r3,[r0,#0] ; ydata
00036c e59f0094 LDR r0,|L1.1032|
000370 e5902000 LDR r2,[r0,#0] ; xdata
000374 e28f00b0 ADR r0,|L1.1068|
000378 ebfffffe BL Uart_Printf
;;;146
;;;147 rADCDLY=saveAdcdly;
00037c e3a00458 MOV r0,#0x58000000
000380 e5804008 STR r4,[r0,#8]
;;;148 rADCTSC=rADCTSC&~(1<<8); // Detect stylus Down interrupt signal.
000384 e3a00458 MOV r0,#0x58000000
000388 e5900004 LDR r0,[r0,#4]
00038c e3c00f40 BIC r0,r0,#0x100
000390 e3a01458 MOV r1,#0x58000000
000394 e5810004 STR r0,[r1,#4]
;;;149 rSUBSRCPND|=BIT_SUB_TC;
000398 e3a0044a MOV r0,#0x4a000000
00039c e5900018 LDR r0,[r0,#0x18]
0003a0 e3800f80 ORR r0,r0,#0x200
0003a4 e3a0144a MOV r1,#0x4a000000
0003a8 e5810018 STR r0,[r1,#0x18]
;;;150 rINTSUBMSK=~(BIT_SUB_TC); // Unmask sub interrupt (TC)
0003ac e3e00f80 MVN r0,#0x200
0003b0 e3a0144a MOV r1,#0x4a000000
0003b4 e581001c STR r0,[r1,#0x1c]
;;;151 ClearPending(BIT_ADC);
0003b8 e3a00480 MOV r0,#0x80000000
0003bc e3a0144a MOV r1,#0x4a000000
0003c0 e5810000 STR r0,[r1,#0]
0003c4 e3a00480 MOV r0,#0x80000000
0003c8 e3a0144a MOV r1,#0x4a000000
0003cc e5810010 STR r0,[r1,#0x10]
0003d0 e3a0044a MOV r0,#0x4a000000
0003d4 e5900010 LDR r0,[r0,#0x10]
;;;152 }
0003d8 e28dd004 ADD sp,sp,#4
0003dc e8bd501f LDMFD sp!,{r0-r4,r12,lr}
0003e0 e25ef004 SUBS pc,lr,#4
|L1.996|
0003e4 7974530a DCB "\nSty"
0003e8 2073756c DCB "lus "
0003ec 21217055 DCB "Up!!"
0003f0 0000000a DCB "\n\0\0\0"
|L1.1012|
0003f4 7974530a DCB "\nSty"
0003f8 2073756c DCB "lus "
0003fc 6e776f44 DCB "Down"
000400 000a2121 DCB "!!\n\0"
|L1.1028|
000404 00009c40 DCD 0x00009c40
|L1.1032|
000408 00000004 DCD ||.bss$2|| + 4
|L1.1036|
00040c 00000008 DCD ||.bss$2|| + 8
|L1.1040|
000410 6c797453 DCB "Styl"
000414 55207375 DCB "us U"
000418 6e492070 DCB "p In"
00041c 72726574 DCB "terr"
000420 7e747075 DCB "upt~"
000424 00000a21 DCB "!\n\0\0"
|L1.1064|
000428 00000000 DCD ||.bss$2||
|L1.1068|
00042c 6e756f63 DCB "coun"
000430 64253d74 DCB "t=%d"
000434 3d505820 DCB " XP="
000438 64343025 DCB "%04d"
00043c 5059202c DCB ", YP"
000440 3430253d DCB "=%04"
000444 00000a64 DCB "d\n\0\0"
ENDP
Test_AdcTs PROC
;;;75 void Test_AdcTs(void)
;;;76 {
000448 e92d4008 STMFD sp!,{r3,lr}
;;;77
;;;78 rADCDLY=50000; //Normal conversion mode delay about (1/3.6864M)*50000=13.56ms
00044c e59f0090 LDR r0,|L1.1252|
000450 e3a01458 MOV r1,#0x58000000
000454 e5810008 STR r0,[r1,#8]
;;;79 rADCCON=(1<<14)+(ADCPRS<<6); //ADCPRS En, ADCPRS Value
000458 e51f0318 LDR r0,|L1.328|
00045c e3a01458 MOV r1,#0x58000000
000460 e5810000 STR r0,[r1,#0]
;;;80
;;;81 Uart_Printf("[ADC touch screen test.]\n");
000464 e28f007c ADR r0,|L1.1256|
000468 ebfffffe BL Uart_Printf
;;;82
;;;83 rADCTSC=0xd3; //Wfait,XP_PU,XP_Dis,XM_Dis,YP_Dis,YM_En
00046c e3a000d3 MOV r0,#0xd3
000470 e3a01458 MOV r1,#0x58000000
000474 e5810004 STR r0,[r1,#4]
;;;84
;;;85 pISR_ADC = (int)AdcTsAuto;
000478 e59f0084 LDR r0,|L1.1284|
00047c e59f1084 LDR r1,|L1.1288|
000480 e5810f9c STR r0,[r1,#0xf9c]
;;;86 rINTMSK=~BIT_ADC; //ADC Touch Screen Mask bit clear
000484 e3e00480 MVN r0,#0x80000000
000488 e3a0144a MOV r1,#0x4a000000
00048c e5810008 STR r0,[r1,#8]
;;;87 rINTSUBMSK=~(BIT_SUB_TC);
000490 e3e00f80 MVN r0,#0x200
000494 e3a0144a MOV r1,#0x4a000000
000498 e581001c STR r0,[r1,#0x1c]
;;;88
;;;89 Uart_Printf("\nType any key to exit!!!\n");
00049c e28f0068 ADR r0,|L1.1292|
0004a0 ebfffffe BL Uart_Printf
;;;90 Uart_Printf("\nStylus Down, please...... \n");
0004a4 e28f007c ADR r0,|L1.1320|
0004a8 ebfffffe BL Uart_Printf
;;;91 Uart_Getch();
0004ac ebfffffe BL Uart_Getch
;;;92
;;;93 rINTSUBMSK|=BIT_SUB_TC;
0004b0 e3a0044a MOV r0,#0x4a000000
0004b4 e590001c LDR r0,[r0,#0x1c]
0004b8 e3800f80 ORR r0,r0,#0x200
0004bc e3a0144a MOV r1,#0x4a000000
0004c0 e581001c STR r0,[r1,#0x1c]
;;;94 rINTMSK|=BIT_ADC;
0004c4 e3a0044a MOV r0,#0x4a000000
0004c8 e5900008 LDR r0,[r0,#8]
0004cc e3800480 ORR r0,r0,#0x80000000
0004d0 e3a0144a MOV r1,#0x4a000000
0004d4 e5810008 STR r0,[r1,#8]
;;;95 Uart_Printf("[Touch Screen Test.]\n");
0004d8 e28f0068 ADR r0,|L1.1352|
0004dc ebfffffe BL Uart_Printf
;;;96
;;;97 }
0004e0 e8bd8008 LDMFD sp!,{r3,pc}
|L1.1252|
0004e4 0000c350 DCD 0x0000c350
|L1.1256|
0004e8 4344415b DCB "[ADC"
0004ec 756f7420 DCB " tou"
0004f0 73206863 DCB "ch s"
0004f4 65657263 DCB "cree"
0004f8 6574206e DCB "n te"
0004fc 5d2e7473 DCB "st.]"
000500 0000000a DCB "\n\0\0\0"
|L1.1284|
000504 00000000 DCD AdcTsAuto
|L1.1288|
000508 31fff000 DCD 0x31fff000
|L1.1292|
00050c 7079540a DCB "\nTyp"
000510 6e612065 DCB "e an"
000514 656b2079 DCB "y ke"
000518 6f742079 DCB "y to"
00051c 69786520 DCB " exi"
000520 21212174 DCB "t!!!"
000524 0000000a DCB "\n\0\0\0"
|L1.1320|
000528 7974530a DCB "\nSty"
00052c 2073756c DCB "lus "
000530 6e776f44 DCB "Down"
000534 6c70202c DCB ", pl"
000538 65736165 DCB "ease"
00053c 2e2e2e2e DCB "...."
000540 0a202e2e DCB ".. \n"
000544 00000000 DCB "\0\0\0\0"
|L1.1352|
000548 756f545b DCB "[Tou"
00054c 53206863 DCB "ch S"
000550 65657263 DCB "cree"
000554 6554206e DCB "n Te"
000558 5d2e7473 DCB "st.]"
00055c 0000000a DCB "\n\0\0\0"
ENDP
AREA ||.data||, DATA, ALIGN=2
||.data$0||
||prevCh@ReadAdc_0||
DCD 0xffffffff
AREA ||.bss||, NOINIT, ALIGN=2
count
||.bss$2||
% 4
xdata
% 4
ydata
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -