184 lines
7.3 KiB
Plaintext
184 lines
7.3 KiB
Plaintext
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 1
|
||
|
||
|
||
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; //结构定义
|
||
11 1 /***********************************1*******************************************/
|
||
12 1 GPIO_InitStructure1.Pin = GPIO_Pin_4; //指定要初始化的IO 4
|
||
13 1 GPIO_InitStructure1.Mode = GPIO_PullUp; //指定IO的输入或输出方式,GPIO_PullUp
|
||
14 1 GPIO_Inilize(GPIO_P4,&GPIO_InitStructure1); //初始化
|
||
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; //消抖后
|
||
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 )
|
||
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 2
|
||
|
||
55 4 {
|
||
56 5 if ( P44 == KEY_LOOSEN ) //松开
|
||
57 5 {
|
||
58 6 g_Key.key_val[i] = KEY_VAL_SHORT_PRESS; //短按松开
|
||
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; //长按单击按下
|
||
68 5 g_Key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //长按按下
|
||
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; //长按松开
|
||
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%亮度
|
||
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;
|
||
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 3
|
||
|
||
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)
|