fix:修复调光时间BUG
解决调光时间一样的情况下,调光亮与调光灭的实际调光时间不一致问题
This commit is contained in:
657
Listings/UART_Set.lst
Normal file
657
Listings/UART_Set.lst
Normal file
@@ -0,0 +1,657 @@
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 1
|
||||
|
||||
|
||||
C51 COMPILER V9.01, COMPILATION OF MODULE UART_SET
|
||||
OBJECT MODULE PLACED IN .\Objects\UART_Set.obj
|
||||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE UART_Set.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\
|
||||
-UART_Set.lst) OBJECT(.\Objects\UART_Set.obj)
|
||||
|
||||
line level source
|
||||
|
||||
1 #include "UART_Set.h"
|
||||
2 #include "UART.h"
|
||||
3 #include "pwm_control.h"
|
||||
4 #include "string.h"
|
||||
5 #include "config.h"
|
||||
6 #include "timer.h"
|
||||
7 #include "STC8xxxx.h"
|
||||
8 #include "PWM15bit.h"
|
||||
9
|
||||
10 G_Usart g_Usart;
|
||||
11 G_answer g_answer;
|
||||
12 S_recv s_recv;
|
||||
13
|
||||
14 u8 debug = 0x00;
|
||||
15
|
||||
16
|
||||
17 /*
|
||||
18 <20>жϽ<D0B6><CFBD>յ<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>
|
||||
19 */
|
||||
20 void Usart_judge_Data(void)
|
||||
21 {
|
||||
22 1 u8 len = 0;
|
||||
23 1 u8 i, sum;
|
||||
24 1 sum = 0;
|
||||
25 1 g_Usart.ok_flag = 0;
|
||||
26 1
|
||||
27 1 if((recv_start_flag==1)&&(systick_1ms-recv_time>8))
|
||||
28 1 {
|
||||
29 2 recv_start_flag=0;
|
||||
30 2 #if DEBUG_
|
||||
{
|
||||
for(i=0;i<COM1.RX_Cnt;i++)
|
||||
{
|
||||
g_Usart.recv_buffer[i]=RX1_Buffer[i];
|
||||
}
|
||||
COM1.RX_Cnt = 0;
|
||||
memset(RX1_Buffer,0,sizeof(RX1_Buffer));
|
||||
}
|
||||
#else
|
||||
40 2 {
|
||||
41 3 len = COM3.RX_Cnt;
|
||||
42 3 for(i=0;i<COM3.RX_Cnt;i++)
|
||||
43 3 {
|
||||
44 4 g_Usart.recv_buffer[i]=RX3_Buffer[i];
|
||||
45 4 }
|
||||
46 3 COM3.RX_Cnt = 0;
|
||||
47 3 memset(RX3_Buffer,0,sizeof(RX3_Buffer));
|
||||
48 3 // if(debug) Printbuffer1(g_Usart.recv_buffer,11);
|
||||
49 3 }
|
||||
50 2 #endif
|
||||
51 2
|
||||
52 2 for (i = 0; i < g_Usart.recv_buffer[UART_FMT_LEN]; i++)
|
||||
53 2 {
|
||||
54 3 sum += g_Usart.recv_buffer[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 2
|
||||
|
||||
55 3 }
|
||||
56 2 if (sum == 0xff)
|
||||
57 2 {
|
||||
58 3 if(len == g_Usart.recv_buffer[UART_FMT_LEN])
|
||||
59 3 {
|
||||
60 4 if ((g_Usart.recv_buffer[UART_FMT_ADDR_RX] == ADDR_RX) && (g_Usart.recv_buffer[UART_FMT_DEV_TYPE] == D
|
||||
-EV_TYPE))
|
||||
61 4 {
|
||||
62 5 g_Usart.Sn = g_Usart.recv_buffer[UART_FMT_TYPE]&0x0F;
|
||||
63 5
|
||||
64 5 if ((g_Usart.recv_buffer[UART_FMT_TYPE] & 0x40) == 0x00) //<2F><><EFBFBD>кż<D0BA><C5BC>飬<EFBFBD><EFBFBD>
|
||||
65 5 {
|
||||
66 6 g_Usart.ok_flag = 1; //<2F><EFBFBD><D7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
67 6 }
|
||||
68 5 else //<2F><><EFBFBD>к<EFBFBD>Ϊ<EFBFBD>ط<EFBFBD><D8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Σ<EFBFBD>
|
||||
-<2D><><EFBFBD><EFBFBD>Ӧ<EFBFBD>øı<C3B8><C4B1><EFBFBD><EFBFBD>к<EFBFBD>
|
||||
69 5 {
|
||||
70 6 if (g_Usart.Sn == g_Usart.lastsn)
|
||||
71 6 {
|
||||
72 7 g_Usart.ok_flag = 0;
|
||||
73 7 g_answer.short_answer[UART_FMT_CMD]=0xF0;
|
||||
74 7 g_answer.short_answer_flag=0x01;
|
||||
75 7 }
|
||||
76 6 else
|
||||
77 6 {
|
||||
78 7 g_Usart.ok_flag = 1;
|
||||
79 7 }
|
||||
80 6 }
|
||||
81 5 g_Usart.lastsn = g_Usart.Sn;
|
||||
82 5 }
|
||||
83 4 }
|
||||
84 3 }
|
||||
85 2 }
|
||||
86 1 }
|
||||
87
|
||||
88 void Usart_Deal_Data(void)
|
||||
89 {
|
||||
90 1 u8 i;
|
||||
91 1 if(g_Usart.ok_flag)
|
||||
92 1 {
|
||||
93 2 if(debug)
|
||||
94 2 {
|
||||
95 3 PrintString1("data ok");
|
||||
96 3 }
|
||||
97 2 switch(g_Usart.recv_buffer[UART_FMT_CMD])
|
||||
98 2 {
|
||||
99 3 //<2F><>ѯ״̬<D7B4><CCAC><EFBFBD><EFBFBD>
|
||||
100 3 case USART_CMD_QUEST:
|
||||
101 3 if(debug)
|
||||
102 3 {
|
||||
103 4 PrintString1("ask");
|
||||
104 4 }
|
||||
105 3 g_answer.long_answer[UART_FMT_CMD]=USART_CMD_QUEST_A;
|
||||
106 3 g_answer.long_answer_flag=0x01;
|
||||
107 3 break;
|
||||
108 3 //<2F><><EFBFBD>ðٷֱ<D9B7><D6B1><EFBFBD><EFBFBD><EFBFBD>ֵ
|
||||
109 3 case USART_CMD_SET_BRIGHTNESS:
|
||||
110 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SET_BRIGHTNESS_A;
|
||||
111 3 if(debug)
|
||||
112 3 {
|
||||
113 4 PrintString1("percent");
|
||||
114 4 }
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 3
|
||||
|
||||
115 3 //<2F><>һ<EFBFBD><D2BB>ʹ<EFBFBD><CAB9>λ
|
||||
116 3 for (i = 0; i < 8; i++)
|
||||
117 3 {
|
||||
118 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
119 4 {
|
||||
120 5 s_recv.flag1[i] = 1;
|
||||
121 5 s_recv.flag2[i] = 0;
|
||||
122 5 s_recv.B_Ch[i] = g_Usart.recv_buffer[21 - i];
|
||||
123 5
|
||||
124 5 if (s_recv.B_Ch[i] < s_recv.B_min)
|
||||
125 5 {
|
||||
126 6 s_recv.B_Ch[i] = s_recv.B_min;
|
||||
127 6 }
|
||||
128 5
|
||||
129 5 if (s_recv.B_Ch[i] > s_recv.B_max)
|
||||
130 5 {
|
||||
131 6 s_recv.B_Ch[i] = s_recv.B_max;
|
||||
132 6 }
|
||||
133 5
|
||||
134 5 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_Ch[i] * PWM_MAX_VALUE * s_recv.global_
|
||||
-brightness / 100 / 100 * s_recv.key_status[i];
|
||||
135 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
136 5
|
||||
137 5 s_recv.gradual_time[i] = g_Usart.recv_buffer[9] * 10; /*<2A><><EFBFBD>յĽ<D5B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>*/
|
||||
138 5 /*
|
||||
139 5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||
140 5 */
|
||||
141 5 if (s_recv.gradual_time[i] == 0)
|
||||
142 5 {
|
||||
143 6 s_recv.gradual_time[i] = 1;
|
||||
144 6 }
|
||||
145 5
|
||||
146 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
147 5 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
||||
148 5 {
|
||||
149 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.wanttopwm[i] - s_pwm.currpwm[i]) / s_
|
||||
-recv.gradual_time[i];
|
||||
150 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
151 6 {
|
||||
152 7 s_pwm.every_change_10ms[i] = 1;
|
||||
153 7 }
|
||||
154 6 }
|
||||
155 5
|
||||
156 5 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
157 5 {
|
||||
158 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.currpwm[i] - s_pwm.wanttopwm[i]) / s_
|
||||
-recv.gradual_time[i];
|
||||
159 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
160 6 {
|
||||
161 7 s_pwm.every_change_10ms[i] = 1;
|
||||
162 7 }
|
||||
163 6 }
|
||||
164 5 }
|
||||
165 4 }
|
||||
166 3
|
||||
167 3 //<2F>ڶ<EFBFBD><DAB6><EFBFBD>ʹ<EFBFBD><CAB9>λ
|
||||
168 3 for (i = 0; i < 4; i++)
|
||||
169 3 {
|
||||
170 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
171 4 {
|
||||
172 5 s_recv.flag1[i+8] = 1;
|
||||
173 5 s_recv.flag2[i+8] = 0;
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 4
|
||||
|
||||
174 5 s_recv.B_Ch[i+8] = g_Usart.recv_buffer[13 - i];
|
||||
175 5
|
||||
176 5 if (s_recv.B_Ch[i+8] < s_recv.B_min)
|
||||
177 5 {
|
||||
178 6 s_recv.B_Ch[i+8] = s_recv.B_min;
|
||||
179 6 }
|
||||
180 5
|
||||
181 5 if (s_recv.B_Ch[i+8] > s_recv.B_max)
|
||||
182 5 {
|
||||
183 6 s_recv.B_Ch[i+8] = s_recv.B_max;
|
||||
184 6 }
|
||||
185 5
|
||||
186 5 s_pwm.wanttopwm[i+8] = PWM_MAX_VALUE - s_recv.B_Ch[i+8] * PWM_MAX_VALUE * s_recv.g
|
||||
-lobal_brightness / 100 / 100 * s_recv.key_status[i+8];
|
||||
187 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
188 5
|
||||
189 5 s_recv.gradual_time[i+8] = g_Usart.recv_buffer[9] * 10; /*<2A><><EFBFBD>յĽ<D5B5><C4BD><EFBFBD>ʱ<EFBFBD><CAB1>*/
|
||||
190 5
|
||||
191 5 /*
|
||||
192 5 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
|
||||
193 5 */
|
||||
194 5 if (s_recv.gradual_time[i+8] == 0)
|
||||
195 5 {
|
||||
196 6 s_recv.gradual_time[i+8] = 1;
|
||||
197 6 }
|
||||
198 5
|
||||
199 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
200 5 if (s_pwm.wanttopwm[i+8] > s_pwm.currpwm[i+8])
|
||||
201 5 {
|
||||
202 6 s_pwm.every_change_10ms[i+8] = (float)(s_pwm.wanttopwm[i+8] - s_pwm.currpwm[i+
|
||||
-8]) / s_recv.gradual_time[i+8];
|
||||
203 6 if (s_pwm.every_change_10ms[i+8] < 1)
|
||||
204 6 {
|
||||
205 7 s_pwm.every_change_10ms[i+8] = 1;
|
||||
206 7 }
|
||||
207 6 }
|
||||
208 5
|
||||
209 5
|
||||
210 5 if (s_pwm.wanttopwm[i+8] < s_pwm.currpwm[i+8])
|
||||
211 5 {
|
||||
212 6 s_pwm.every_change_10ms[i+8] = (float)(s_pwm.currpwm[i+8] - s_pwm.wanttopwm[i
|
||||
-+8]) / s_recv.gradual_time[i+8];
|
||||
213 6 if (s_pwm.every_change_10ms[i+8] < 1)
|
||||
214 6 {
|
||||
215 7 s_pwm.every_change_10ms[i+8] = 1;
|
||||
216 7 }
|
||||
217 6 }
|
||||
218 5 }
|
||||
219 4 }
|
||||
220 3
|
||||
221 3 g_answer.short_answer_flag=0x01;
|
||||
222 3 break;
|
||||
223 3
|
||||
224 3
|
||||
225 3 //<2F><><EFBFBD><EFBFBD>ģʽ<C4A3><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>ѭ<EFBFBD><D1AD>
|
||||
226 3 case USART_CMD_SET_MODE:
|
||||
227 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SET_MODE_A;
|
||||
228 3 if(debug)
|
||||
229 3 {
|
||||
230 4 PrintString1("change light");
|
||||
231 4 }
|
||||
232 3
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 5
|
||||
|
||||
233 3 for (i = 0; i < 8; i++)
|
||||
234 3 {
|
||||
235 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
236 4 {
|
||||
237 5 s_recv.flag1[i] = 0;
|
||||
238 5 s_recv.flag2[i] = 1;
|
||||
239 5 s_recv.mode[i] = g_Usart.recv_buffer[9];
|
||||
240 5 s_recv.pwm_step[i] = g_Usart.recv_buffer[11];
|
||||
241 5
|
||||
242 5 if (s_recv.mode[i] == 0x00)
|
||||
243 5 {
|
||||
244 6 if (g_Usart.recv_buffer[10] == 0x00)
|
||||
245 6 {
|
||||
246 7 s_recv.forward[i] = 0;
|
||||
247 7 }
|
||||
248 6
|
||||
249 6 if (g_Usart.recv_buffer[10] == 0x01)
|
||||
250 6 {
|
||||
251 7 s_recv.forward[i] = 1;
|
||||
252 7 }
|
||||
253 6
|
||||
254 6 if (g_Usart.recv_buffer[10] == 0x02) //<2F><>ת
|
||||
255 6 {
|
||||
256 7 if (s_recv.forward[i] == 0x01)
|
||||
257 7 {
|
||||
258 8 s_recv.forward[i] = 0x00;
|
||||
259 8 continue; // Ϊ<><CEAA>ֹ<EFBFBD><D6B9>ת֮<D7AA><D6AE>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬
|
||||
260 8 }
|
||||
261 7
|
||||
262 7 if (s_recv.forward[i] == 0x00)
|
||||
263 7 {
|
||||
264 8 s_recv.forward[i] = 0x01;
|
||||
265 8 continue;
|
||||
266 8 }
|
||||
267 7 }
|
||||
268 6 }
|
||||
269 5 }
|
||||
270 4 }
|
||||
271 3
|
||||
272 3
|
||||
273 3 for (i = 0; i < 4; i++)
|
||||
274 3 {
|
||||
275 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
276 4 {
|
||||
277 5 s_recv.flag1[i+8] = 0;
|
||||
278 5 s_recv.flag2[i+8] = 1;
|
||||
279 5 s_recv.mode[i+8] = g_Usart.recv_buffer[9];
|
||||
280 5 s_recv.pwm_step[i+8] = g_Usart.recv_buffer[11];
|
||||
281 5
|
||||
282 5 if (s_recv.mode[i+8] == 0x00)
|
||||
283 5 {
|
||||
284 6 if (g_Usart.recv_buffer[10] == 0x00)
|
||||
285 6 {
|
||||
286 7 s_recv.forward[i+8] = 0;
|
||||
287 7 }
|
||||
288 6
|
||||
289 6 if (g_Usart.recv_buffer[10] == 0x01)
|
||||
290 6 {
|
||||
291 7 s_recv.forward[i+8] = 1;
|
||||
292 7 }
|
||||
293 6
|
||||
294 6 if (g_Usart.recv_buffer[10] == 0x02) //<2F><>ת
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 6
|
||||
|
||||
295 6 {
|
||||
296 7 if (s_recv.forward[i+8] == 0x01)
|
||||
297 7 {
|
||||
298 8 s_recv.forward[i+8] = 0x00;
|
||||
299 8 continue; // Ϊ<><CEAA>ֹ<EFBFBD><D6B9>ת֮<D7AA><D6AE>ֱ<EFBFBD>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>״̬
|
||||
300 8 }
|
||||
301 7
|
||||
302 7 if (s_recv.forward[i+8] == 0x00)
|
||||
303 7 {
|
||||
304 8 s_recv.forward[i+8] = 0x01;
|
||||
305 8 continue;
|
||||
306 8 }
|
||||
307 7 }
|
||||
308 6 }
|
||||
309 5 }
|
||||
310 4 }
|
||||
311 3 g_answer.short_answer_flag=0x01;
|
||||
312 3 break;
|
||||
313 3
|
||||
314 3
|
||||
315 3 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
316 3 case USART_CMD_ALL_BRIGHTNESS:
|
||||
317 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_ALL_BRIGHTNESS_A;
|
||||
318 3
|
||||
319 3 if(debug)
|
||||
320 3 {
|
||||
321 4 PrintString1("global light");
|
||||
322 4 }
|
||||
323 3
|
||||
324 3 // s_recv.changeflag = 1;
|
||||
325 3 if (g_Usart.recv_buffer[7] & (1 << 5)) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
326 3 {
|
||||
327 4 s_recv.B_min = g_Usart.recv_buffer[10];
|
||||
328 4 for (i = 0; i < 12; i++)
|
||||
329 4 {
|
||||
330 5 if ( s_pwm.currvalue[i] < s_recv.B_min)
|
||||
331 5 {
|
||||
332 6 s_pwm.currvalue[i] = s_recv.B_min;
|
||||
333 6 }
|
||||
334 5 }
|
||||
335 4 }
|
||||
336 3
|
||||
337 3 if (g_Usart.recv_buffer[7] & (1 << 6)) //ȫ<>ֿɵ<D6BF><C9B5><EFBFBD><EFBFBD><EFBFBD>
|
||||
338 3 {
|
||||
339 4 s_recv.B_max = g_Usart.recv_buffer[9];
|
||||
340 4 for (i = 0; i < 12; i++)
|
||||
341 4 {
|
||||
342 5 if ( s_pwm.currvalue[i] > s_recv.B_max)
|
||||
343 5 {
|
||||
344 6 s_pwm.currvalue[i] = s_recv.B_max;
|
||||
345 6 }
|
||||
346 5 }
|
||||
347 4 }
|
||||
348 3
|
||||
349 3 if (g_Usart.recv_buffer[7] & (1 << 7)) //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
350 3 {
|
||||
351 4 s_recv.global_brightness = g_Usart.recv_buffer[8];
|
||||
352 4
|
||||
353 4 for (i = 0; i < 12; i++)
|
||||
354 4 {
|
||||
355 5 // s_pwm.wanttopwmflash[i] = PWM_MAX_VALUE - s_pwm.currvalue[i] * PWM_MAX_VALUE *
|
||||
-s_recv.global_brightness / 100 / 100 * s_recv.key_status[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 7
|
||||
|
||||
356 5
|
||||
357 5 s_recv.flag1[i] = 1;
|
||||
358 5 s_recv.flag2[i] = 0;
|
||||
359 5
|
||||
360 5 s_pwm.wanttopwm[i] = PWM_MAX_VALUE - s_recv.B_Ch[i] * PWM_MAX_VALUE * s_recv.glo
|
||||
-bal_brightness / 100 / 100 * s_recv.key_status[i];
|
||||
361 5 s_pwm.doublecurrpwm[i] = s_pwm.currpwm[i]; //<2F><><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
||||
362 5 if(s_pwm.wanttopwm[i] > PWM_MAX_VALUE)
|
||||
363 5 {
|
||||
364 6 s_pwm.wanttopwm[i] = PWM_MAX_VALUE;
|
||||
365 6 }
|
||||
366 5
|
||||
367 5 /*<2A><><EFBFBD><EFBFBD>10ms<6D><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pwm<77><6D><EFBFBD><EFBFBD>ֵ*/
|
||||
368 5 if (s_pwm.wanttopwm[i] > s_pwm.currpwm[i])
|
||||
369 5 {
|
||||
370 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.wanttopwm[i] - s_pwm.currpwm[i])
|
||||
-/ s_recv.gradual_time[i];
|
||||
371 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
372 6 {
|
||||
373 7 s_pwm.every_change_10ms[i] = 1;
|
||||
374 7 }
|
||||
375 6 }
|
||||
376 5
|
||||
377 5 if (s_pwm.wanttopwm[i] < s_pwm.currpwm[i])
|
||||
378 5 {
|
||||
379 6 s_pwm.every_change_10ms[i] = (float)(s_pwm.currpwm[i] - s_pwm.wanttopwm[i])
|
||||
-/ s_recv.gradual_time[i];
|
||||
380 6 if (s_pwm.every_change_10ms[i] < 1)
|
||||
381 6 {
|
||||
382 7 s_pwm.every_change_10ms[i] = 1;
|
||||
383 7 }
|
||||
384 6 }
|
||||
385 5 }
|
||||
386 4 }
|
||||
387 3
|
||||
388 3
|
||||
389 3 g_answer.short_answer_flag=0x01;
|
||||
390 3 break;
|
||||
391 3
|
||||
392 3
|
||||
393 3 //<2F><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD>״̬
|
||||
394 3 case USART_CMD_SWITCH_STATUS:
|
||||
395 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_SWITCH_STATUS_A;
|
||||
396 3 if(debug)
|
||||
397 3 {
|
||||
398 4 PrintString1("switch state");
|
||||
399 4 }
|
||||
400 3
|
||||
401 3 for (i = 0; i < 8; i++)
|
||||
402 3 {
|
||||
403 4 if (g_Usart.recv_buffer[7] & (1 << i))
|
||||
404 4 {
|
||||
405 5 if (g_Usart.recv_buffer[9 + i] == 0x01)
|
||||
406 5 {
|
||||
407 6 s_recv.key_status[i] = 0x01;
|
||||
408 6 //s_pwm.currvalue[i] = s_pwm.thenvalue[i];
|
||||
409 6 Open_Light(i);
|
||||
410 6 }
|
||||
411 5
|
||||
412 5 if (g_Usart.recv_buffer[9 + i] == 0x00)
|
||||
413 5 {
|
||||
414 6 //s_pwm.thenvalue[i] = s_pwm.currvalue[i];
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 8
|
||||
|
||||
415 6 Close_Light(i);
|
||||
416 6 s_recv.flag1[i] = 0;
|
||||
417 6 s_recv.flag2[i] = 0;
|
||||
418 6 s_recv.mode[i] = 2;
|
||||
419 6 s_recv.key_status[i] = 0x00;
|
||||
420 6 }
|
||||
421 5
|
||||
422 5 if (g_Usart.recv_buffer[9 + i] == 0x02)
|
||||
423 5 {
|
||||
424 6 if (s_recv.key_status[i] == 0x00)
|
||||
425 6 {
|
||||
426 7 s_recv.key_status[i] = 0x01;
|
||||
427 7 //s_pwm.currvalue[i] = s_pwm.thenvalue[i];
|
||||
428 7 Open_Light(i);
|
||||
429 7 continue;
|
||||
430 7 }
|
||||
431 6
|
||||
432 6 if (s_recv.key_status[i] == 0x01)
|
||||
433 6 {
|
||||
434 7 //s_pwm.thenvalue[i] = s_pwm.currvalue[i];
|
||||
435 7 Close_Light(i);
|
||||
436 7 s_recv.flag1[i] = 0;
|
||||
437 7 s_recv.flag2[i] = 0;
|
||||
438 7 s_recv.mode[i] = 2;
|
||||
439 7 s_recv.key_status[i] = 0x00;
|
||||
440 7 continue;
|
||||
441 7 }
|
||||
442 6 }
|
||||
443 5 }
|
||||
444 4 }
|
||||
445 3
|
||||
446 3
|
||||
447 3 for (i = 0; i < 4; i++)
|
||||
448 3 {
|
||||
449 4 if (g_Usart.recv_buffer[8] & (1 << i))
|
||||
450 4 {
|
||||
451 5 if (g_Usart.recv_buffer[9 + 8 + i] == 0x01)
|
||||
452 5 {
|
||||
453 6 s_recv.key_status[i+8] = 0x01;
|
||||
454 6 //s_pwm.currvalue[i+8] = s_pwm.thenvalue[i];
|
||||
455 6 Open_Light(i+8);
|
||||
456 6 }
|
||||
457 5
|
||||
458 5 if (g_Usart.recv_buffer[9 +8 + i] == 0x00)
|
||||
459 5 {
|
||||
460 6 //s_pwm.thenvalue[i+8] = s_pwm.currvalue[i+8];
|
||||
461 6 Close_Light(i+8);
|
||||
462 6 s_recv.flag1[i+8] = 0;
|
||||
463 6 s_recv.flag2[i+8] = 0;
|
||||
464 6 s_recv.mode[i+8] = 2;
|
||||
465 6 s_recv.key_status[i+8] = 0x00;
|
||||
466 6 }
|
||||
467 5
|
||||
468 5 if (g_Usart.recv_buffer[9 + 8 + i] == 0x02)
|
||||
469 5 {
|
||||
470 6 if (s_recv.key_status[i+8] == 0x00)
|
||||
471 6 {
|
||||
472 7 s_recv.key_status[i+8] = 0x01;
|
||||
473 7 //s_pwm.currvalue[i+8] = s_pwm.thenvalue[i];
|
||||
474 7 Open_Light(i+8);
|
||||
475 7 continue;
|
||||
476 7 }
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 9
|
||||
|
||||
477 6
|
||||
478 6
|
||||
479 6 if (s_recv.key_status[i+8] == 0x01)
|
||||
480 6 {
|
||||
481 7 //s_pwm.thenvalue[i+8] = s_pwm.currvalue[i+8];
|
||||
482 7 Close_Light(i+8);
|
||||
483 7 s_recv.flag1[i+8] = 0;
|
||||
484 7 s_recv.flag2[i+8] = 0;
|
||||
485 7 s_recv.mode[i+8] = 2;
|
||||
486 7 s_recv.key_status[i+8] = 0x00;
|
||||
487 7 continue;
|
||||
488 7 }
|
||||
489 6 }
|
||||
490 5 }
|
||||
491 4 }
|
||||
492 3 g_answer.short_answer_flag=0x01;
|
||||
493 3 break;
|
||||
494 3 case USART_CMD_DEBUG_SET:
|
||||
495 3 g_answer.short_answer[UART_FMT_CMD]=USART_CMD_DEBUG_SET_A;
|
||||
496 3 if(debug)
|
||||
497 3 {
|
||||
498 4 PrintString1("debug");
|
||||
499 4 }
|
||||
500 3 debug = g_Usart.recv_buffer[7];
|
||||
501 3 g_answer.short_answer_flag=0x01;
|
||||
502 3 break;
|
||||
503 3 case Usart_CMD_Version:
|
||||
504 3 g_answer.version_answer[UART_FMT_CMD]=Usart_CMD_Version_A;
|
||||
505 3 g_answer.version_answer_flag=0x01;
|
||||
506 3 if(debug)
|
||||
507 3 {
|
||||
508 4 PrintString1("version");
|
||||
509 4 }
|
||||
510 3 break;
|
||||
511 3 }
|
||||
512 2 g_Usart.ok_flag=0;
|
||||
513 2 }
|
||||
514 1 }
|
||||
515
|
||||
516 void Usart_answer(void)
|
||||
517 {
|
||||
518 1 u8 i=0;
|
||||
519 1 u8 checksum=0;
|
||||
520 1 if(g_answer.long_answer_flag)
|
||||
521 1 {
|
||||
522 2 g_answer.long_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
523 2 g_answer.long_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
524 2 g_answer.long_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
525 2 g_answer.long_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
526 2 g_answer.long_answer[UART_FMT_LEN]=0x14;
|
||||
527 2 g_answer.long_answer[7] = s_recv.global_brightness;
|
||||
528 2 for(i=0;i<12;i++)
|
||||
529 2 {
|
||||
530 3 g_answer.long_answer[8+i] = s_pwm.currvalue[11-i];
|
||||
531 3 if(s_recv.key_status[i] == 0x01)
|
||||
532 3 {
|
||||
533 4 g_answer.long_answer[8+i] |= 0x80;
|
||||
534 4 }
|
||||
535 3 }
|
||||
536 2 checksum=sumfunc(g_answer.long_answer,0x14);
|
||||
537 2 g_answer.long_answer[UART_FMT_CKS]=checksum;
|
||||
538 2
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 10
|
||||
|
||||
539 2 Printbuffer3(g_answer.long_answer,0x14); //<2F><><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӡ
|
||||
540 2
|
||||
541 2 if(debug)
|
||||
542 2 {
|
||||
543 3 // PrintString1("long answer");
|
||||
544 3 }
|
||||
545 2 g_answer.long_answer_flag=0;
|
||||
546 2 memset(g_Usart.recv_buffer,0,32);
|
||||
547 2 }
|
||||
548 1 if(g_answer.short_answer_flag)
|
||||
549 1 {
|
||||
550 2 g_answer.short_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
551 2 g_answer.short_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
552 2 g_answer.short_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
553 2 g_answer.short_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
554 2 g_answer.short_answer[UART_FMT_LEN]=0x07;
|
||||
555 2 checksum=sumfunc(g_answer.short_answer,0x07);
|
||||
556 2 g_answer.short_answer[UART_FMT_CKS]=checksum;
|
||||
557 2 Printbuffer3(g_answer.short_answer,0x07);
|
||||
558 2 if(debug)
|
||||
559 2 {
|
||||
560 3 PrintString1("short answer");
|
||||
561 3 }
|
||||
562 2
|
||||
563 2
|
||||
564 2 g_answer.short_answer_flag=0;
|
||||
565 2 memset(g_Usart.recv_buffer,0,32);
|
||||
566 2 }
|
||||
567 1
|
||||
568 1 if(g_answer.version_answer_flag)
|
||||
569 1 {
|
||||
570 2 g_answer.version_answer[UART_FMT_ADDR_TX]=ADDR_RX;
|
||||
571 2 g_answer.version_answer[UART_FMT_TYPE]=g_Usart.Sn;
|
||||
572 2 g_answer.version_answer[UART_FMT_DEV_TYPE]=DEV_TYPE;
|
||||
573 2 g_answer.version_answer[UART_FMT_ADDR_RX]=g_Usart.recv_buffer[UART_FMT_ADDR_TX];
|
||||
574 2 g_answer.version_answer[UART_FMT_LEN]=0x09;
|
||||
575 2 g_answer.version_answer[UART_FMT_CMD+1]=Version_High;
|
||||
576 2 g_answer.version_answer[UART_FMT_CMD+2]=Version_Low;
|
||||
577 2
|
||||
578 2 checksum=sumfunc(g_answer.version_answer,0x09);
|
||||
579 2 g_answer.version_answer[UART_FMT_CKS]=checksum;
|
||||
580 2 Printbuffer3(g_answer.version_answer,0x09);
|
||||
581 2 if(debug)
|
||||
582 2 {
|
||||
583 3 PrintString1("version_answer");
|
||||
584 3 }
|
||||
585 2 g_answer.version_answer_flag=0;
|
||||
586 2 memset(g_Usart.recv_buffer,0,32);
|
||||
587 2 }
|
||||
588 1 memset(&g_answer,0,sizeof(g_answer));
|
||||
589 1 }
|
||||
590
|
||||
591 u8 sumfunc(u8* answer,u8 len)
|
||||
592 {
|
||||
593 1 u8 m = 0;
|
||||
594 1 u8 j;
|
||||
595 1 for (j = 0; j < len; j++)
|
||||
596 1 {
|
||||
597 2 if (5 == j) continue;
|
||||
598 2 m += *(answer+j);
|
||||
599 2 }
|
||||
600 1 return ~m;
|
||||
C51 COMPILER V9.01 UART_SET 12/15/2025 20:45:04 PAGE 11
|
||||
|
||||
601 1 }
|
||||
|
||||
|
||||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||||
CODE SIZE = 4719 ----
|
||||
CONSTANT SIZE = 101 ----
|
||||
XDATA SIZE = 272 ----
|
||||
PDATA SIZE = ---- ----
|
||||
DATA SIZE = 1 7
|
||||
IDATA SIZE = ---- ----
|
||||
BIT SIZE = ---- ----
|
||||
END OF MODULE INFORMATION.
|
||||
|
||||
|
||||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|
||||
Reference in New Issue
Block a user