Files
RCU_C12_Dimming/Listings/key.lst
caocong 6ef7f0c503 docs:发布文件
发布生产文件:BLV_C12_Dimm_V19.hex
2025-12-16 16:59:36 +08:00

184 lines
7.3 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)