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

📄 button.txt

📁 STM32手持式示波器源代码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
00002e  2002              MOVS     r0,#2
000030  72c8              STRB     r0,[r1,#0xb]
;;;72     	s_BtnUser.KeyCodeLong = KEY_HOLD_USER;		/* 按键被持续按下的键值代码 */
000032  2003              MOVS     r0,#3
000034  7348              STRB     r0,[r1,#0xd]
;;;73     
;;;74     	/* 初始化TAMPER按键变量 */
;;;75     	s_BtnTamper.IsKeyDownFunc = IsKeyDownTamper;	/* 判断按键按下的函数 */
000036  484c              LDR      r0,|L3.360|
000038  3110              ADDS     r1,r1,#0x10
00003a  6008              STR      r0,[r1,#0]  ; s_BtnTamper
;;;76     	s_BtnTamper.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
00003c  2005              MOVS     r0,#5
00003e  7148              STRB     r0,[r1,#5]
;;;77     	s_BtnTamper.LongTime = 0;						/* 长按时间, 0表示不检测 */
000040  2000              MOVS     r0,#0
000042  8108              STRH     r0,[r1,#8]
;;;78     	s_BtnTamper.Count = s_BtnTamper.FilterTime / 2;	/* 计数器设置为滤波时间的一半 */
000044  7948              LDRB     r0,[r1,#5]  ; s_BtnTamper
000046  eb0071d0          ADD      r1,r0,r0,LSR #31
00004a  1049              ASRS     r1,r1,#1
00004c  3210              ADDS     r2,r2,#0x10
00004e  7111              STRB     r1,[r2,#4]
;;;79     	s_BtnTamper.State = 0;							/* 按键缺省状态,0为未按下 */
000050  2000              MOVS     r0,#0
000052  4611              MOV      r1,r2
000054  7288              STRB     r0,[r1,#0xa]
;;;80     	s_BtnTamper.KeyCodeDown = KEY_DOWN_TAMPER;		/* 按键按下的键值代码 */
000056  2005              MOVS     r0,#5
000058  7308              STRB     r0,[r1,#0xc]
;;;81     	s_BtnTamper.KeyCodeUp = 0;						/* 按键弹起的键值代码 */
00005a  2000              MOVS     r0,#0
00005c  72c8              STRB     r0,[r1,#0xb]
;;;82     	s_BtnTamper.KeyCodeLong = 0;					/* 按键被持续按下的键值代码 */
00005e  7348              STRB     r0,[r1,#0xd]
;;;83     
;;;84     	/* 初始化WAKEUP按键变量 */
;;;85     	s_BtnWakeUp.IsKeyDownFunc = IsKeyDownWakeUp;	/* 判断按键按下的函数 */
000060  4842              LDR      r0,|L3.364|
000062  3110              ADDS     r1,r1,#0x10
000064  6008              STR      r0,[r1,#0]  ; s_BtnWakeUp
;;;86     	s_BtnWakeUp.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
000066  2005              MOVS     r0,#5
000068  7148              STRB     r0,[r1,#5]
;;;87     	s_BtnWakeUp.LongTime = 0;						/* 长按时间 */
00006a  2000              MOVS     r0,#0
00006c  8108              STRH     r0,[r1,#8]
;;;88     	s_BtnWakeUp.Count = s_BtnWakeUp.FilterTime / 2;	/* 计数器设置为滤波时间的一半 */
00006e  7948              LDRB     r0,[r1,#5]  ; s_BtnWakeUp
000070  eb0071d0          ADD      r1,r0,r0,LSR #31
000074  1049              ASRS     r1,r1,#1
000076  3210              ADDS     r2,r2,#0x10
000078  7111              STRB     r1,[r2,#4]
;;;89     	s_BtnWakeUp.State = 0;							/* 按键缺省状态,0为未按下 */
00007a  2000              MOVS     r0,#0
00007c  4611              MOV      r1,r2
00007e  7288              STRB     r0,[r1,#0xa]
;;;90     	s_BtnWakeUp.KeyCodeUp = 0;						/* 按键弹起的键值代码,0表示不检测 */
000080  72c8              STRB     r0,[r1,#0xb]
;;;91     	s_BtnWakeUp.KeyCodeDown = KEY_DOWN_WAKEUP;		/* 按键按下的键值代码 */
000082  2004              MOVS     r0,#4
000084  7308              STRB     r0,[r1,#0xc]
;;;92     	s_BtnWakeUp.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
000086  2000              MOVS     r0,#0
000088  7348              STRB     r0,[r1,#0xd]
;;;93     
;;;94     	/* 初始化UP按键变量 */
;;;95     	s_BtnUp.IsKeyDownFunc = IsKeyDownUp;		/* 判断按键按下的函数 */
00008a  4839              LDR      r0,|L3.368|
00008c  3110              ADDS     r1,r1,#0x10
00008e  6008              STR      r0,[r1,#0]  ; s_BtnUp
;;;96     	s_BtnUp.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
000090  2005              MOVS     r0,#5
000092  7148              STRB     r0,[r1,#5]
;;;97     	s_BtnUp.LongTime = 0;						/* 长按时间 */
000094  2000              MOVS     r0,#0
000096  8108              STRH     r0,[r1,#8]
;;;98     	s_BtnUp.Count = s_BtnUp.FilterTime / 2;		/* 计数器设置为滤波时间的一半 */
000098  7948              LDRB     r0,[r1,#5]  ; s_BtnUp
00009a  eb0071d0          ADD      r1,r0,r0,LSR #31
00009e  1049              ASRS     r1,r1,#1
0000a0  3210              ADDS     r2,r2,#0x10
0000a2  7111              STRB     r1,[r2,#4]
;;;99     	s_BtnUp.State = 0;							/* 按键缺省状态,0为未按下 */
0000a4  2000              MOVS     r0,#0
0000a6  4611              MOV      r1,r2
0000a8  7288              STRB     r0,[r1,#0xa]
;;;100    	s_BtnUp.KeyCodeDown = KEY_DOWN_JOY_UP;		/* 按键按下的键值代码 */
0000aa  2006              MOVS     r0,#6
0000ac  7308              STRB     r0,[r1,#0xc]
;;;101    	s_BtnUp.KeyCodeUp = 0;						/* 按键弹起的键值代码,0表示不检测 */
0000ae  2000              MOVS     r0,#0
0000b0  72c8              STRB     r0,[r1,#0xb]
;;;102    	s_BtnUp.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
0000b2  7348              STRB     r0,[r1,#0xd]
;;;103    
;;;104    	/* 初始化DOWN按键变量 */
;;;105    	s_BtnDown.IsKeyDownFunc = IsKeyDownDown;	/* 判断按键按下的函数 */
0000b4  482f              LDR      r0,|L3.372|
0000b6  3110              ADDS     r1,r1,#0x10
0000b8  6008              STR      r0,[r1,#0]  ; s_BtnDown
;;;106    	s_BtnDown.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
0000ba  2005              MOVS     r0,#5
0000bc  7148              STRB     r0,[r1,#5]
;;;107    	s_BtnDown.LongTime = 0;						/* 长按时间 */
0000be  2000              MOVS     r0,#0
0000c0  8108              STRH     r0,[r1,#8]
;;;108    	s_BtnDown.Count = s_BtnDown.FilterTime / 2;	/* 计数器设置为滤波时间的一半 */
0000c2  7948              LDRB     r0,[r1,#5]  ; s_BtnDown
0000c4  eb0071d0          ADD      r1,r0,r0,LSR #31
0000c8  1049              ASRS     r1,r1,#1
0000ca  3210              ADDS     r2,r2,#0x10
0000cc  7111              STRB     r1,[r2,#4]
;;;109    	s_BtnDown.State = 0;						/* 按键缺省状态,0为未按下 */
0000ce  2000              MOVS     r0,#0
0000d0  4611              MOV      r1,r2
0000d2  7288              STRB     r0,[r1,#0xa]
;;;110    	s_BtnDown.KeyCodeDown = KEY_DOWN_JOY_DOWN;	/* 按键按下的键值代码 */
0000d4  2007              MOVS     r0,#7
0000d6  7308              STRB     r0,[r1,#0xc]
;;;111    	s_BtnDown.KeyCodeUp = 0;					/* 按键弹起的键值代码,0表示不检测 */
0000d8  2000              MOVS     r0,#0
0000da  72c8              STRB     r0,[r1,#0xb]
;;;112    	s_BtnDown.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
0000dc  7348              STRB     r0,[r1,#0xd]
;;;113    
;;;114    	/* 初始化LEFT按键变量 */
;;;115    	s_BtnLeft.IsKeyDownFunc = IsKeyDownLeft;	/* 判断按键按下的函数 */
0000de  4826              LDR      r0,|L3.376|
0000e0  3110              ADDS     r1,r1,#0x10
0000e2  6008              STR      r0,[r1,#0]  ; s_BtnLeft
;;;116    	s_BtnLeft.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
0000e4  2005              MOVS     r0,#5
0000e6  7148              STRB     r0,[r1,#5]
;;;117    	s_BtnLeft.LongTime = 0;						/* 长按时间 */
0000e8  2000              MOVS     r0,#0
0000ea  8108              STRH     r0,[r1,#8]
;;;118    	s_BtnLeft.Count = s_BtnLeft.FilterTime / 2;	/* 计数器设置为滤波时间的一半 */
0000ec  7948              LDRB     r0,[r1,#5]  ; s_BtnLeft
0000ee  eb0071d0          ADD      r1,r0,r0,LSR #31
0000f2  1049              ASRS     r1,r1,#1
0000f4  3210              ADDS     r2,r2,#0x10
0000f6  7111              STRB     r1,[r2,#4]
;;;119    	s_BtnLeft.State = 0;						/* 按键缺省状态,0为未按下 */
0000f8  2000              MOVS     r0,#0
0000fa  4611              MOV      r1,r2
0000fc  7288              STRB     r0,[r1,#0xa]
;;;120    	s_BtnLeft.KeyCodeDown = KEY_DOWN_JOY_LEFT;	/* 按键按下的键值代码 */
0000fe  2008              MOVS     r0,#8
000100  7308              STRB     r0,[r1,#0xc]
;;;121    	s_BtnLeft.KeyCodeUp = 0;					/* 按键弹起的键值代码,0表示不检测 */
000102  2000              MOVS     r0,#0
000104  72c8              STRB     r0,[r1,#0xb]
;;;122    	s_BtnLeft.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
000106  7348              STRB     r0,[r1,#0xd]
;;;123    
;;;124    	/* 初始化RIGHT按键变量 */
;;;125    	s_BtnRight.IsKeyDownFunc = IsKeyDownRight;	/* 判断按键按下的函数 */
000108  481c              LDR      r0,|L3.380|
00010a  3110              ADDS     r1,r1,#0x10
00010c  6008              STR      r0,[r1,#0]  ; s_BtnRight
;;;126    	s_BtnRight.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
00010e  2005              MOVS     r0,#5
000110  7148              STRB     r0,[r1,#5]
;;;127    	s_BtnRight.LongTime = 0;					/* 长按时间 */
000112  2000              MOVS     r0,#0
000114  8108              STRH     r0,[r1,#8]
;;;128    	s_BtnRight.Count = s_BtnRight.FilterTime / 2;/* 计数器设置为滤波时间的一半 */
000116  7948              LDRB     r0,[r1,#5]  ; s_BtnRight
000118  eb0071d0          ADD      r1,r0,r0,LSR #31
00011c  1049              ASRS     r1,r1,#1
00011e  3210              ADDS     r2,r2,#0x10
000120  7111              STRB     r1,[r2,#4]
;;;129    	s_BtnRight.State = 0;						/* 按键缺省状态,0为未按下 */
000122  2000              MOVS     r0,#0
000124  4611              MOV      r1,r2
000126  7288              STRB     r0,[r1,#0xa]
;;;130    	s_BtnRight.KeyCodeDown = KEY_DOWN_JOY_RIGHT;/* 按键按下的键值代码 */
000128  2009              MOVS     r0,#9
00012a  7308              STRB     r0,[r1,#0xc]
;;;131    	s_BtnRight.KeyCodeUp = 0;					/* 按键弹起的键值代码,0表示不检测 */
00012c  2000              MOVS     r0,#0
00012e  72c8              STRB     r0,[r1,#0xb]
;;;132    	s_BtnRight.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
000130  7348              STRB     r0,[r1,#0xd]
;;;133    
;;;134    	/* 初始化OK按键变量 */
;;;135    	s_BtnOk.IsKeyDownFunc = IsKeyDownOk;		/* 判断按键按下的函数 */
000132  4813              LDR      r0,|L3.384|
000134  3110              ADDS     r1,r1,#0x10
000136  6008              STR      r0,[r1,#0]  ; s_BtnOk
;;;136    	s_BtnOk.FilterTime = BUTTON_FILTER_TIME;	/* 按键滤波时间 */
000138  2005              MOVS     r0,#5
00013a  7148              STRB     r0,[r1,#5]
;;;137    	s_BtnOk.LongTime = 0;						/* 长按时间 */
00013c  2000              MOVS     r0,#0
00013e  8108              STRH     r0,[r1,#8]
;;;138    	s_BtnOk.Count = s_BtnOk.FilterTime / 2;		/* 计数器设置为滤波时间的一半 */
000140  7948              LDRB     r0,[r1,#5]  ; s_BtnOk
000142  eb0071d0          ADD      r1,r0,r0,LSR #31
000146  1049              ASRS     r1,r1,#1
000148  3210              ADDS     r2,r2,#0x10
00014a  7111              STRB     r1,[r2,#4]
;;;139    	s_BtnOk.State = 0;							/* 按键缺省状态,0为未按下 */
00014c  2000              MOVS     r0,#0
00014e  4611              MOV      r1,r2
000150  7288              STRB     r0,[r1,#0xa]
;;;140    	s_BtnOk.KeyCodeDown = KEY_DOWN_JOY_OK;		/* 按键按下的键值代码 */
000152  200a              MOVS     r0,#0xa
000154  7308              STRB     r0,[r1,#0xc]
;;;141    	s_BtnOk.KeyCodeUp = 0;						/* 按键弹起的键值代码,0表示不检测 */
000156  2000              MOVS     r0,#0
000158  72c8              STRB     r0,[r1,#0xb]
;;;142    	s_BtnOk.KeyCodeLong = 0;					/* 按键被持续按下的键值代码,0表示不检测 */
00015a  7348              STRB     r0,[r1,#0xd]
;;;143    }
00015c  4770              BX       lr
;;;144    
                          ENDP

00015e  0000              DCW      0x0000
                  |L3.352|
                          DCD      ||.bss||+0x80
                  |L3.356|
                          DCD      IsKeyDownUser
                  |L3.360|
                          DCD      IsKeyDownTamper
                  |L3.364|
                          DCD      IsKeyDownWakeUp
                  |L3.368|
                          DCD      IsKeyDownUp
                  |L3.372|
                          DCD      IsKeyDownDown
                  |L3.376|
                          DCD      IsKeyDownLeft
                  |L3.380|
                          DCD      IsKeyDownRight
                  |L3.384|
                          DCD      IsKeyDownOk

                          AREA ||i.IsKeyDownDown||, CODE, READONLY, ALIGN=2

                  IsKeyDownDown PROC
;;;46     static uint8_t IsKeyDownUp(void) 		{if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_15) == Bit_SET) return 0; return 1;}
;;;47     static uint8_t IsKeyDownDown(void) 		{if (GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == Bit_SET) return 0; return 1;}
000000  b510              PUSH     {r4,lr}
000002  2108              MOVS     r1,#8
000004  4804              LDR      r0,|L4.24|
000006  f7fffffe          BL       GPIO_ReadInputDataBit
00000a  2801              CMP      r0,#1
00000c  d101              BNE      |L4.18|
00000e  2000              MOVS     r0,#0
                  |L4.16|
000010  bd10              POP      {r4,pc}
                  |L4.18|
000012  2001              MOVS     r0,#1
000014  e7fc              B        |L4.16|
;;;48     static uint8_t IsKeyDownLeft(void) 		{if (GPIO_ReadInputDataBit(GPIOG, GPIO_Pin_14) == Bit_SET) return 0; return 1;}
                          ENDP

000016  0000              DCW      0x0000
                  |L4.24|
                          DCD      0x40011400

⌨️ 快捷键说明

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