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

📄 keypad_soft.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;;;113    {
000238  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;114    	char key;
;;;115    	//int Width_reg=10;  //width=30 => 1msec,width=10 => 0.3msec  
;;;116    	int Width_reg=100;  //width=30 => 1msec,width=10 => 0.3msec  
00023c  e3a04064          MOV      r4,#0x64
;;;117    	//int Width_reg=0x3fff;  //width=30 => 1msec,width=10 => 0.3msec  
;;;118    	
;;;119    	rGPPU|=(0x3f<<19);
000240  e59f00b0          LDR      r0,|L1.760|
000244  e5900010          LDR      r0,[r0,#0x10]
000248  e380077e          ORR      r0,r0,#0x1f80000
00024c  e59f10a4          LDR      r1,|L1.760|
000250  e5810010          STR      r0,[r1,#0x10]
;;;120    	rGPCON_U |=(0x3ffff) ; 
000254  e1a00001          MOV      r0,r1
000258  e5900000          LDR      r0,[r0,#0]
00025c  e59f1098          LDR      r1,|L1.764|
000260  e1800001          ORR      r0,r0,r1
000264  e59f108c          LDR      r1,|L1.760|
000268  e5810000          STR      r0,[r1,#0]
;;;121    	rGPCON_M |=(3<<14) ; 
00026c  e1a00001          MOV      r0,r1
000270  e5900004          LDR      r0,[r0,#4]
000274  e3800cc0          ORR      r0,r0,#0xc000
000278  e5810004          STR      r0,[r1,#4]
;;;122    	Uart_Printf("[KEY_PAD Test]\n");
00027c  e28f007c          ADR      r0,|L1.768|
000280  ebfffffe          BL       _printf
;;;123    	
;;;124    	Uart_Printf("Select Key filter clock...\n");
000284  e28f0084          ADR      r0,|L1.784|
000288  ebfffffe          BL       _printf
;;;125    	Uart_Printf("a. RTC Clock	 b. GCLK \n");
00028c  e28f0098          ADR      r0,|L1.812|
000290  ebfffffe          BL       _printf
;;;126    	key=Uart_Getch();
000294  ebfffffe          BL       Uart_Getch
000298  e1a05000          MOV      r5,r0
;;;127    	
;;;128    	switch(key)
00029c  e3550061          CMP      r5,#0x61
0002a0  0a000002          BEQ      |L1.688|
0002a4  e3550062          CMP      r5,#0x62
0002a8  1a000010          BNE      |L1.752|
0002ac  ea000007          B        |L1.720|
;;;129    	{
;;;130    	case 'a':
;;;131    		Uart_Printf(" RTC clock is selected\n");
                  |L1.688|
0002b0  e28f008c          ADR      r0,|L1.836|
0002b4  ebfffffe          BL       _printf
;;;132    		rKEYFLT0=(1<<1)|(0<<0); //RTC CLK
0002b8  e3a00002          MOV      r0,#2
0002bc  e51f1094          LDR      r1,|L1.560|
0002c0  e5810008          STR      r0,[r1,#8]
;;;133    		rKEYFLT1=(Width_reg);
0002c4  e1c10000          BIC      r0,r1,r0
0002c8  e580400c          STR      r4,[r0,#0xc]
;;;134    		break;
0002cc  ea000008          B        |L1.756|
;;;135    	case 'b':
;;;136    		Uart_Printf(" GCLK clock is selected\n");
                  |L1.720|
0002d0  e28f0084          ADR      r0,|L1.860|
0002d4  ebfffffe          BL       _printf
;;;137    		rKEYFLT0=(1<<1)|(1<<0); // GCLK
0002d8  e3a00003          MOV      r0,#3
0002dc  e51f10b4          LDR      r1,|L1.560|
0002e0  e5810008          STR      r0,[r1,#8]
;;;138    		rKEYFLT1=(Width_reg); 
0002e4  e1c10000          BIC      r0,r1,r0
0002e8  e580400c          STR      r4,[r0,#0xc]
;;;139    		break;
0002ec  ea000000          B        |L1.756|
;;;140    	default:
;;;141    		break;
                  |L1.752|
0002f0  e1a00000          NOP      
;;;142    		}
;;;143    	
;;;144    }
                  |L1.756|
0002f4  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.760|
0002f8  44800000          DCD      0x44800000
                  |L1.764|
0002fc  0003ffff          DCD      0x0003ffff
                  |L1.768|
000300  59454b5b          DCB      "[KEY"
000304  4441505f          DCB      "_PAD"
000308  73655420          DCB      " Tes"
00030c  000a5d74          DCB      "t]\n\0"
                  |L1.784|
000310  656c6553          DCB      "Sele"
000314  4b207463          DCB      "ct K"
000318  66207965          DCB      "ey f"
00031c  65746c69          DCB      "ilte"
000320  6c632072          DCB      "r cl"
000324  2e6b636f          DCB      "ock."
000328  000a2e2e          DCB      "..\n\0"
                  |L1.812|
00032c  52202e61          DCB      "a. R"
000330  43204354          DCB      "TC C"
000334  6b636f6c          DCB      "lock"
000338  2e622009          DCB      "\t b."
00033c  4c434720          DCB      " GCL"
000340  000a204b          DCB      "K \n\0"
                  |L1.836|
000344  43545220          DCB      " RTC"
000348  6f6c6320          DCB      " clo"
00034c  69206b63          DCB      "ck i"
000350  65732073          DCB      "s se"
000354  7463656c          DCB      "lect"
000358  000a6465          DCB      "ed\n\0"
                  |L1.860|
00035c  4c434720          DCB      " GCL"
000360  6c63204b          DCB      "K cl"
000364  206b636f          DCB      "ock "
000368  73207369          DCB      "is s"
00036c  63656c65          DCB      "elec"
000370  0a646574          DCB      "ted\n"
000374  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Ch29_KEYPAD PROC
;;;20     void Ch29_KEYPAD(void)
;;;21     {
000378  e92d4038          STMFD    sp!,{r3-r5,lr}
;;;22     	int save_U,save_PU;
;;;23     	save_U=rGPCON_U;
00037c  e51f008c          LDR      r0,|L1.760|
000380  e5900000          LDR      r0,[r0,#0]
000384  e1a04000          MOV      r4,r0
;;;24     	save_PU=rGPPU;
000388  e51f0098          LDR      r0,|L1.760|
00038c  e5900010          LDR      r0,[r0,#0x10]
000390  e1a05000          MOV      r5,r0
;;;25     
;;;26     	Key_pad_Init();
000394  ebfffffe          BL       Key_pad_Init
;;;27     	
;;;28     	rKEYINTC=(1<<3)|(0x4);//Falling edge
000398  e3a0000c          MOV      r0,#0xc
00039c  e51f1174          LDR      r1,|L1.560|
0003a0  e5810004          STR      r0,[r1,#4]
;;;29     	//rKEYINTC=(1<<3)|(0x0);//Low level
;;;30     	//rKEYINTC=(1<<3)|(0x2);//Rising edge
;;;31     	//rKEYINTC=(1<<3)|(0x6);//Both edge
;;;32     
;;;33     	rKEYMAN=0x20;
0003a4  e3a00020          MOV      r0,#0x20
0003a8  e1c11000          BIC      r1,r1,r0
0003ac  e5810010          STR      r0,[r1,#0x10]
;;;34     	rKEYDAT=(1<<6)|(1<<7);
0003b0  e3a000c0          MOV      r0,#0xc0
0003b4  e1c11000          BIC      r1,r1,r0
0003b8  e5810000          STR      r0,[r1,#0]
;;;35     
;;;36     	pISR_KEYPAD = (int)Key_ISR;
0003bc  e59f008c          LDR      r0,|L1.1104|
0003c0  e59f108c          LDR      r1,|L1.1108|
0003c4  e5810f44          STR      r0,[r1,#0xf44]
;;;37         ClearPending(BIT_KEYPAD);
0003c8  e3a00f80          MOV      r0,#0x200
0003cc  e51f11a8          LDR      r1,|L1.556|
0003d0  e5810000          STR      r0,[r1,#0]
0003d4  e1c10000          BIC      r0,r1,r0
0003d8  e5900010          LDR      r0,[r0,#0x10]
0003dc  e5810010          STR      r0,[r1,#0x10]
0003e0  e1a00001          MOV      r0,r1
0003e4  e5900010          LDR      r0,[r0,#0x10]
;;;38         rINTMSK&= ~(BIT_KEYPAD);
0003e8  e1a00001          MOV      r0,r1
0003ec  e5900008          LDR      r0,[r0,#8]
0003f0  e3c00f80          BIC      r0,r0,#0x200
0003f4  e5810008          STR      r0,[r1,#8]
;;;39     
;;;40     	Uart_Printf("keypad test start .......\n");
0003f8  e28f0058          ADR      r0,|L1.1112|
0003fc  ebfffffe          BL       _printf
;;;41     
;;;42     	while(!Uart_GetKey()); //Uart_Printf(".");
000400  e1a00000          NOP      
                  |L1.1028|
000404  ebfffffe          BL       Uart_GetKey
000408  e3500000          CMP      r0,#0
00040c  0afffffc          BEQ      |L1.1028|
;;;43     	
;;;44     	ClearPending(BIT_KEYPAD);
000410  e3a00f80          MOV      r0,#0x200
000414  e51f11f0          LDR      r1,|L1.556|
000418  e5810000          STR      r0,[r1,#0]
00041c  e1c10000          BIC      r0,r1,r0
000420  e5900010          LDR      r0,[r0,#0x10]
000424  e5810010          STR      r0,[r1,#0x10]
000428  e1a00001          MOV      r0,r1
00042c  e5900010          LDR      r0,[r0,#0x10]
;;;45         rINTMSK |= BIT_KEYPAD;       //Key Pad Int mask enable
000430  e1a00001          MOV      r0,r1
000434  e5900008          LDR      r0,[r0,#8]
000438  e3800f80          ORR      r0,r0,#0x200
00043c  e5810008          STR      r0,[r1,#8]
;;;46         rGPCON_U= save_U;
000440  e2810646          ADD      r0,r1,#0x4600000
000444  e5804000          STR      r4,[r0,#0]
;;;47         rGPPU=save_PU; 
000448  e5805010          STR      r5,[r0,#0x10]
;;;48     }
00044c  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.1104|
000450  00000000          DCD      Key_ISR
                  |L1.1108|
000454  13fff000          DCD      0x13fff000
                  |L1.1112|
000458  7079656b          DCB      "keyp"
00045c  74206461          DCB      "ad t"
000460  20747365          DCB      "est "
000464  72617473          DCB      "star"
000468  2e2e2074          DCB      "t .."
00046c  2e2e2e2e          DCB      "...."
000470  00000a2e          DCB      ".\n\0\0"
                          ENDP



        END

⌨️ 快捷键说明

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