2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 1
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILER V9.01, COMPILATION OF MODULE KEY
|
|
|
|
|
|
OBJECT MODULE PLACED IN .\Objects\key.obj
|
|
|
|
|
|
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE key.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\key.l
|
|
|
|
|
|
-st) OBJECT(.\Objects\key.obj)
|
|
|
|
|
|
|
|
|
|
|
|
line level source
|
|
|
|
|
|
|
|
|
|
|
|
1 #include "key.h"
|
|
|
|
|
|
2 #include "GPIO.h"
|
|
|
|
|
|
3 #include "timer.h"
|
|
|
|
|
|
4 #include "string.h"
|
|
|
|
|
|
5 #include "pwm_control.h"
|
|
|
|
|
|
6 KEY_t g_Key;
|
|
|
|
|
|
7
|
|
|
|
|
|
8 void Key_Init(void)
|
|
|
|
|
|
9 {
|
|
|
|
|
|
10 1 GPIO_InitTypeDef GPIO_InitStructure1; //<2F>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>
|
|
|
|
|
|
11 1 /***********************************1*******************************************/
|
|
|
|
|
|
12 1 GPIO_InitStructure1.Pin = GPIO_Pin_4; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO 4
|
|
|
|
|
|
13 1 GPIO_InitStructure1.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp
|
|
|
|
|
|
14 1 GPIO_Inilize(GPIO_P4,&GPIO_InitStructure1); //<2F><>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
15 1 memset(&g_Key, 0, sizeof(g_Key));
|
|
|
|
|
|
16 1 }
|
|
|
|
|
|
17
|
|
|
|
|
|
18 void Key_ScanTask(void)
|
|
|
|
|
|
19 {
|
|
|
|
|
|
20 1 u8 i;
|
|
|
|
|
|
21 1 static u32 update_10ms = 0;
|
|
|
|
|
|
22 1
|
|
|
|
|
|
23 1 if (systick_1ms - update_10ms > 10)
|
|
|
|
|
|
24 1 {
|
|
|
|
|
|
25 2 update_10ms = systick_1ms;
|
|
|
|
|
|
26 2
|
|
|
|
|
|
27 2 for (i = 0; i < KEY_CHN_MAX; i++)
|
|
|
|
|
|
28 2 {
|
|
|
|
|
|
29 3 switch (g_Key.KEY_STA[i])
|
|
|
|
|
|
30 3 {
|
|
|
|
|
|
31 4 case KEY_STA_S0:
|
|
|
|
|
|
32 4 if ( P44 == KEY_PRESS )
|
|
|
|
|
|
33 4 {
|
|
|
|
|
|
34 5 if (g_Key.delayCnt[i] < KEY_DELAY_COUNT)
|
|
|
|
|
|
35 5 {
|
|
|
|
|
|
36 6 g_Key.delayCnt[i]++;
|
|
|
|
|
|
37 6 }
|
|
|
|
|
|
38 5 else
|
|
|
|
|
|
39 5 {
|
|
|
|
|
|
40 6 g_Key.KEY_STA[i] = KEY_STA_S1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
41 6 g_Key.key_time[i] = 0;
|
|
|
|
|
|
42 6 g_Key.delayCnt[i] = 0;
|
|
|
|
|
|
43 6 }
|
|
|
|
|
|
44 5 }
|
|
|
|
|
|
45 4 else
|
|
|
|
|
|
46 4 {
|
|
|
|
|
|
47 5 g_Key.delayCnt[i] = 0;
|
|
|
|
|
|
48 5 g_Key.KEY_STA[i] = KEY_STA_S0;
|
|
|
|
|
|
49 5 g_Key.key_val[i] = KEY_VAL_NOT;
|
|
|
|
|
|
50 5 }
|
|
|
|
|
|
51 4 break;
|
|
|
|
|
|
52 4 case KEY_STA_S1:
|
|
|
|
|
|
53 4 g_Key.key_time[i] ++;
|
|
|
|
|
|
54 4 if ( g_Key.key_time[i] < KEY_DELAY_COUNT_LONG )
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 2
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
55 4 {
|
|
|
|
|
|
56 5 if ( P44 == KEY_LOOSEN ) //<2F>ɿ<EFBFBD>
|
|
|
|
|
|
57 5 {
|
|
|
|
|
|
58 6 g_Key.key_val[i] = KEY_VAL_SHORT_PRESS; //<2F>̰<EFBFBD><CCB0>ɿ<EFBFBD>
|
|
|
|
|
|
59 6 g_Key.key_time[i] = 0;
|
|
|
|
|
|
60 6 g_Key.KEY_STA[i] = KEY_STA_S0;
|
|
|
|
|
|
61 6 }
|
|
|
|
|
|
62 5 }
|
|
|
|
|
|
63 4 else
|
|
|
|
|
|
64 4 {
|
|
|
|
|
|
65 5 g_Key.KEY_STA[i] = KEY_STA_S2;
|
|
|
|
|
|
66 5 g_Key.key_time[i] = 0;
|
|
|
|
|
|
67 5 g_Key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
68 5 g_Key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
69 5 }
|
|
|
|
|
|
70 4 break;
|
|
|
|
|
|
71 4
|
|
|
|
|
|
72 4 case KEY_STA_S2:
|
|
|
|
|
|
73 4 g_Key.key_longPress[i] = KEY_VAL_NOT;
|
|
|
|
|
|
74 4 if ( P44 == KEY_LOOSEN )
|
|
|
|
|
|
75 4 {
|
|
|
|
|
|
76 5 g_Key.KEY_STA[i] = KEY_STA_S0;
|
|
|
|
|
|
77 5 g_Key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
|
|
|
|
|
|
78 5 }
|
|
|
|
|
|
79 4 break;
|
|
|
|
|
|
80 4 }
|
|
|
|
|
|
81 3 }
|
|
|
|
|
|
82 2 }
|
|
|
|
|
|
83 1 }
|
|
|
|
|
|
84
|
|
|
|
|
|
85
|
|
|
|
|
|
86 void KEY_TEST(void)
|
|
|
|
|
|
87 {
|
|
|
|
|
|
88 1 u8 flag;
|
|
|
|
|
|
89 1 if (g_Key.key_val[KEY_CH1] == KEY_VAL_SHORT_PRESS)
|
|
|
|
|
|
90 1 {
|
|
|
|
|
|
91 2 g_Key.key_val[KEY_CH1] = KEY_VAL_NOT;
|
|
|
|
|
|
92 2 s_pwm.key_value++;
|
|
|
|
|
|
93 2 switch (s_pwm.key_value)
|
|
|
|
|
|
94 2 {
|
|
|
|
|
|
95 3 case 1:
|
|
|
|
|
|
96 3 s_pwm.currpwm[0] = 2000ul; //90%<25><><EFBFBD><EFBFBD>
|
|
|
|
|
|
97 3 s_pwm.currvalue[0]=0x5A;
|
|
|
|
|
|
98 3 break;
|
|
|
|
|
|
99 3 case 2:
|
|
|
|
|
|
100 3 s_pwm.currpwm[1] = 2000ul;
|
|
|
|
|
|
101 3 s_pwm.currvalue[1]=0x5A;
|
|
|
|
|
|
102 3 break;
|
|
|
|
|
|
103 3 case 3:
|
|
|
|
|
|
104 3 s_pwm.currpwm[2] = 2000ul;
|
|
|
|
|
|
105 3 s_pwm.currvalue[2]=0x5A;
|
|
|
|
|
|
106 3 break;
|
|
|
|
|
|
107 3 case 4:
|
|
|
|
|
|
108 3 s_pwm.currpwm[3] = 2000ul;
|
|
|
|
|
|
109 3 s_pwm.currvalue[3]=0x5A;
|
|
|
|
|
|
110 3 break;
|
|
|
|
|
|
111 3 case 5:
|
|
|
|
|
|
112 3 s_pwm.currpwm[4] = 2000ul;
|
|
|
|
|
|
113 3 s_pwm.currvalue[4]=0x5A;
|
|
|
|
|
|
114 3 break;
|
|
|
|
|
|
115 3 case 6:
|
|
|
|
|
|
116 3 s_pwm.currpwm[5] = 2000ul;
|
2025-12-16 16:59:36 +08:00
|
|
|
|
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 3
|
2025-12-15 20:48:52 +08:00
|
|
|
|
|
|
|
|
|
|
117 3 s_pwm.currvalue[5]=0x5A;
|
|
|
|
|
|
118 3 break;
|
|
|
|
|
|
119 3 case 7:
|
|
|
|
|
|
120 3 s_pwm.currpwm[6] = 2000ul;
|
|
|
|
|
|
121 3 s_pwm.currvalue[6]=0x5A;
|
|
|
|
|
|
122 3 break;
|
|
|
|
|
|
123 3 case 8:
|
|
|
|
|
|
124 3 s_pwm.currpwm[7] = 2000ul;
|
|
|
|
|
|
125 3 s_pwm.currvalue[7]=0x5A;
|
|
|
|
|
|
126 3 break;
|
|
|
|
|
|
127 3 case 9:
|
|
|
|
|
|
128 3 s_pwm.currpwm[8] = 2000ul;
|
|
|
|
|
|
129 3 s_pwm.currvalue[8]=0x5A;
|
|
|
|
|
|
130 3 break;
|
|
|
|
|
|
131 3 case 10:
|
|
|
|
|
|
132 3 s_pwm.currpwm[9] = 2000ul;
|
|
|
|
|
|
133 3 s_pwm.currvalue[9]=0x5A;
|
|
|
|
|
|
134 3 break;
|
|
|
|
|
|
135 3 case 11:
|
|
|
|
|
|
136 3 s_pwm.currpwm[10] = 2000ul;
|
|
|
|
|
|
137 3 s_pwm.currvalue[10]=0x5A;
|
|
|
|
|
|
138 3 break;
|
|
|
|
|
|
139 3 case 12:
|
|
|
|
|
|
140 3 s_pwm.currpwm[11] = 2000ul;
|
|
|
|
|
|
141 3 s_pwm.currvalue[11]=0x5A;
|
|
|
|
|
|
142 3 break;
|
|
|
|
|
|
143 3 case 13:
|
|
|
|
|
|
144 3 for(flag=0;flag<12;flag++)
|
|
|
|
|
|
145 3 {
|
|
|
|
|
|
146 4 s_pwm.currpwm[flag] = PWM_MAX_VALUE;
|
|
|
|
|
|
147 4 s_pwm.currvalue[flag]=0x00;
|
|
|
|
|
|
148 4 }
|
|
|
|
|
|
149 3 s_pwm.key_value = 0;
|
|
|
|
|
|
150 3 break;
|
|
|
|
|
|
151 3 default:
|
|
|
|
|
|
152 3 break;
|
|
|
|
|
|
153 3 }
|
|
|
|
|
|
154 2 }
|
|
|
|
|
|
155 1 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MODULE INFORMATION: STATIC OVERLAYABLE
|
|
|
|
|
|
CODE SIZE = 553 ----
|
|
|
|
|
|
CONSTANT SIZE = ---- ----
|
|
|
|
|
|
XDATA SIZE = ---- ----
|
|
|
|
|
|
PDATA SIZE = ---- ----
|
|
|
|
|
|
DATA SIZE = 10 2
|
|
|
|
|
|
IDATA SIZE = ---- ----
|
|
|
|
|
|
BIT SIZE = ---- ----
|
|
|
|
|
|
END OF MODULE INFORMATION.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|