source: trunk/firmware/SES/Src/precharge.c@ 1

Last change on this file since 1 was 1, checked in by f.jahn, 3 years ago
File size: 17.4 KB
Line 
1#include <stdio.h>
2
3#include "main.h"
4#include "dac.h"
5#include "dma.h"
6#include "precharge.h"
7
8#define DELAYS_NUM 43U
9
10extern void (*MOSFETS_Management)(void);
11extern void DoNothing(void);
12
13static void (*ReturnFunctionPtr)(void);
14
15//------------------------------------------------------------------------------
16
17void SetReturnFunction(void (*WhereToReturnControl)(void))
18{
19 if (NULL != WhereToReturnControl) ReturnFunctionPtr = WhereToReturnControl;
20}
21
22//------------------------------------------------------------------------------
23
24#ifdef USE_RAM_FUNC
25__RAM_FUNC void PreChargeStage(void)
26#else
27 void PreChargeStage(void)
28#endif
29{
30 static int stage = 0;
31 static int cnt = 0;
32 static int mal = 0;
33 // DAC = 0 DAC = 3V
34 const int delay_µs[DELAYS_NUM] = { 50, 2, // 0, 1 - 6710µs is MAX @320kHz
35 50, 2, // 2, 3
36 50, 2, // 4, 5
37 50, 2, // 6, 7
38 50, 2, // 9, 9
39 50, 2, // 10, 11
40 50, 2, // 12, 13
41 50, 2, // 14, 15
42 50, 2, // 16, 17
43 50, 2, // 18, 19
44 50, 2, // 20, 21
45 50, 2, // 22, 23
46 50, 2, // 24, 25
47 50, 2, // 26, 27
48 50, 2, // 28, 29
49 50, 2, // 30, 31
50 50, 2, // 32, 33
51 50, 2, // 34, 35
52 50, 2, // 36, 37
53 50, 2, // 38, 39
54 50, 2, // 40, 41
55 50}; // 42
56 const int delay_cnt[DELAYS_NUM] = { (delay_µs[ 0] * CURRENT_INTEGRAL_FREQ) / 1000000U,
57 (delay_µs[ 1] * CURRENT_INTEGRAL_FREQ) / 1000000U,
58 (delay_µs[ 2] * CURRENT_INTEGRAL_FREQ) / 1000000U,
59 (delay_µs[ 3] * CURRENT_INTEGRAL_FREQ) / 1000000U,
60 (delay_µs[ 4] * CURRENT_INTEGRAL_FREQ) / 1000000U,
61 (delay_µs[ 5] * CURRENT_INTEGRAL_FREQ) / 1000000U,
62 (delay_µs[ 6] * CURRENT_INTEGRAL_FREQ) / 1000000U,
63 (delay_µs[ 7] * CURRENT_INTEGRAL_FREQ) / 1000000U,
64 (delay_µs[ 8] * CURRENT_INTEGRAL_FREQ) / 1000000U,
65 (delay_µs[ 9] * CURRENT_INTEGRAL_FREQ) / 1000000U,
66 (delay_µs[10] * CURRENT_INTEGRAL_FREQ) / 1000000U,
67 (delay_µs[11] * CURRENT_INTEGRAL_FREQ) / 1000000U,
68 (delay_µs[12] * CURRENT_INTEGRAL_FREQ) / 1000000U,
69 (delay_µs[13] * CURRENT_INTEGRAL_FREQ) / 1000000U,
70 (delay_µs[14] * CURRENT_INTEGRAL_FREQ) / 1000000U,
71 (delay_µs[15] * CURRENT_INTEGRAL_FREQ) / 1000000U,
72 (delay_µs[16] * CURRENT_INTEGRAL_FREQ) / 1000000U,
73 (delay_µs[17] * CURRENT_INTEGRAL_FREQ) / 1000000U,
74 (delay_µs[18] * CURRENT_INTEGRAL_FREQ) / 1000000U,
75 (delay_µs[19] * CURRENT_INTEGRAL_FREQ) / 1000000U,
76 (delay_µs[20] * CURRENT_INTEGRAL_FREQ) / 1000000U,
77 (delay_µs[21] * CURRENT_INTEGRAL_FREQ) / 1000000U,
78 (delay_µs[22] * CURRENT_INTEGRAL_FREQ) / 1000000U,
79 (delay_µs[23] * CURRENT_INTEGRAL_FREQ) / 1000000U,
80 (delay_µs[24] * CURRENT_INTEGRAL_FREQ) / 1000000U,
81 (delay_µs[25] * CURRENT_INTEGRAL_FREQ) / 1000000U,
82 (delay_µs[26] * CURRENT_INTEGRAL_FREQ) / 1000000U,
83 (delay_µs[27] * CURRENT_INTEGRAL_FREQ) / 1000000U,
84 (delay_µs[28] * CURRENT_INTEGRAL_FREQ) / 1000000U,
85 (delay_µs[29] * CURRENT_INTEGRAL_FREQ) / 1000000U,
86 (delay_µs[30] * CURRENT_INTEGRAL_FREQ) / 1000000U,
87 (delay_µs[31] * CURRENT_INTEGRAL_FREQ) / 1000000U,
88 (delay_µs[32] * CURRENT_INTEGRAL_FREQ) / 1000000U,
89 (delay_µs[33] * CURRENT_INTEGRAL_FREQ) / 1000000U,
90 (delay_µs[34] * CURRENT_INTEGRAL_FREQ) / 1000000U,
91 (delay_µs[35] * CURRENT_INTEGRAL_FREQ) / 1000000U,
92 (delay_µs[36] * CURRENT_INTEGRAL_FREQ) / 1000000U,
93 (delay_µs[37] * CURRENT_INTEGRAL_FREQ) / 1000000U,
94 (delay_µs[38] * CURRENT_INTEGRAL_FREQ) / 1000000U,
95 (delay_µs[39] * CURRENT_INTEGRAL_FREQ) / 1000000U,
96 (delay_µs[40] * CURRENT_INTEGRAL_FREQ) / 1000000U,
97 (delay_µs[41] * CURRENT_INTEGRAL_FREQ) / 1000000U,
98 (delay_µs[42] * CURRENT_INTEGRAL_FREQ) / 1000000U
99 };
100
101 switch(stage)
102 {
103 case 0:
104 // Setting new values for DAC
105 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
106 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
107
108 if (cnt++ >= delay_cnt[0])
109 {
110 cnt = 0;
111 stage++;
112 }
113 break;
114
115 case 1:
116 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
117 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
118
119 if (cnt++ >= delay_cnt[1])
120 {
121 cnt = 0;
122 stage++;
123 }
124 break;
125
126 /*case 2:
127 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
128 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
129
130 if (cnt++ >= delay_cnt[2])
131 {
132 cnt = 0;
133 stage++;
134 }
135 break;
136
137 case 3:
138 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
139 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
140
141 if (cnt++ >= delay_cnt[3])
142 {
143 cnt = 0;
144 stage++;
145 }
146 break;
147
148 case 4:
149 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
150 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
151
152 if (cnt++ >= delay_cnt[4])
153 {
154 cnt = 0;
155 stage++;
156 }
157 break;
158
159 case 5:
160 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
161 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
162
163 if (cnt++ >= delay_cnt[5])
164 {
165 cnt = 0;
166 stage++;
167 }
168 break;
169
170 case 6:
171 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
172 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
173
174 if (cnt++ >= delay_cnt[6])
175 {
176 cnt = 0;
177 stage++;
178 }
179 break;
180
181 case 7:
182 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
183 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
184
185 if (cnt++ >= delay_cnt[7])
186 {
187 cnt = 0;
188 stage++;
189 }
190 break;
191
192 case 8:
193 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
194 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
195
196 if (cnt++ >= delay_cnt[8])
197 {
198 cnt = 0;
199 stage++;
200 }
201 break;
202
203 case 9:
204 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
205 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
206
207 if (cnt++ >= delay_cnt[9])
208 {
209 cnt = 0;
210 stage++;
211 }
212 break;
213
214 case 10:
215 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
216 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
217
218 if (cnt++ >= delay_cnt[10])
219 {
220 cnt = 0;
221 stage++;
222 }
223 break;
224
225 case 11:
226 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
227 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
228
229 if (cnt++ >= delay_cnt[11])
230 {
231 cnt = 0;
232 stage++;
233 }
234 break;
235
236 case 12:
237 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
238 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
239
240 if (cnt++ >= delay_cnt[12])
241 {
242 cnt = 0;
243 stage++;
244 }
245 break;
246
247 case 13:
248 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
249 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
250
251 if (cnt++ >= delay_cnt[13])
252 {
253 cnt = 0;
254 stage++;
255 }
256 break;
257
258 case 14:
259 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
260 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
261
262 if (cnt++ >= delay_cnt[14])
263 {
264 cnt = 0;
265 stage++;
266 }
267 break;
268
269 case 15:
270 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
271 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
272
273 if (cnt++ >= delay_cnt[15])
274 {
275 cnt = 0;
276 stage++;
277 }
278 break;
279
280 case 16:
281 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
282 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
283
284 if (cnt++ >= delay_cnt[16])
285 {
286 cnt = 0;
287 stage++;
288 }
289 break;
290
291 case 17:
292 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
293 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
294
295 if (cnt++ >= delay_cnt[17])
296 {
297 cnt = 0;
298 stage++;
299 }
300 break;
301
302 case 18:
303 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
304 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
305
306 if (cnt++ >= delay_cnt[18])
307 {
308 cnt = 0;
309 stage++;
310 }
311 break;
312
313 case 19:
314 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
315 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
316
317 if (cnt++ >= delay_cnt[19])
318 {
319 cnt = 0;
320 stage++;
321 }
322 break;
323
324 case 20:
325 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
326 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
327
328 if (cnt++ >= delay_cnt[20])
329 {
330 cnt = 0;
331 stage++;
332 }
333 break;
334
335 case 21:
336 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
337 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
338
339 if (cnt++ >= delay_cnt[21])
340 {
341 cnt = 0;
342 stage++;
343 }
344 break;
345
346 case 22:
347 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
348 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
349
350 if (cnt++ >= delay_cnt[22])
351 {
352 cnt = 0;
353 stage++;
354 }
355 break;
356
357 case 23:
358 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
359 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
360
361 if (cnt++ >= delay_cnt[23])
362 {
363 cnt = 0;
364 stage++;
365 }
366 break;
367
368 case 24:
369 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
370 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
371
372 if (cnt++ >= delay_cnt[24])
373 {
374 cnt = 0;
375 stage++;
376 }
377 break;
378
379 case 25:
380 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
381 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
382
383 if (cnt++ >= delay_cnt[25])
384 {
385 cnt = 0;
386 stage++;
387 }
388 break;
389
390 case 26:
391 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
392 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
393
394 if (cnt++ >= delay_cnt[26])
395 {
396 cnt = 0;
397 stage++;
398 }
399 break;
400
401 case 27:
402 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
403 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
404
405 if (cnt++ >= delay_cnt[27])
406 {
407 cnt = 0;
408 stage++;
409 }
410 break;
411
412 case 28:
413 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
414 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
415
416 if (cnt++ >= delay_cnt[28])
417 {
418 cnt = 0;
419 stage++;
420 }
421 break;
422
423 case 29:
424 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
425 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
426
427 if (cnt++ >= delay_cnt[29])
428 {
429 cnt = 0;
430 stage++;
431 }
432 break;
433
434 case 30:
435 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
436 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
437
438 if (cnt++ >= delay_cnt[30])
439 {
440 cnt = 0;
441 stage++;
442 }
443 break;
444
445 case 31:
446 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
447 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
448
449 if (cnt++ >= delay_cnt[31])
450 {
451 cnt = 0;
452 stage++;
453 }
454 break;
455
456 case 32:
457 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
458 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
459
460 if (cnt++ >= delay_cnt[32])
461 {
462 cnt = 0;
463 stage++;
464 }
465 break;
466
467 case 33:
468 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
469 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
470
471 if (cnt++ >= delay_cnt[33])
472 {
473 cnt = 0;
474 stage++;
475 }
476 break;
477
478 case 34:
479 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
480 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
481
482 if (cnt++ >= delay_cnt[34])
483 {
484 cnt = 0;
485 stage++;
486 }
487 break;
488
489 case 35:
490 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
491 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
492
493 if (cnt++ >= delay_cnt[35])
494 {
495 cnt = 0;
496 stage++;
497 }
498 break;
499
500 case 36:
501 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
502 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
503
504 if (cnt++ >= delay_cnt[36])
505 {
506 cnt = 0;
507 stage++;
508 }
509 break;
510
511 case 37:
512 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
513 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
514
515 if (cnt++ >= delay_cnt[37])
516 {
517 cnt = 0;
518 stage++;
519 }
520 break;
521
522 case 38:
523 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
524 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
525
526 if (cnt++ >= delay_cnt[38])
527 {
528 cnt = 0;
529 stage++;
530 }
531 break;
532
533 case 39:
534 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
535 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
536
537 if (cnt++ >= delay_cnt[39])
538 {
539 cnt = 0;
540 stage++;
541 }
542 break;
543
544 case 40:
545 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
546 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
547
548 if (cnt++ >= delay_cnt[40])
549 {
550 cnt = 0;
551 stage++;
552 }
553 break;
554
555 case 41:
556 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
557 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_3V;
558
559 if (cnt++ >= delay_cnt[41])
560 {
561 cnt = 0;
562 stage++;
563 }
564 break;*/
565
566 case 2:
567 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_A_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
568 *(__IO uint32_t *)((uint32_t)DAC_HANDLE.Instance + DAC_CH_B_ALIGNMENT(DAC_ALIGN_12B_R)) = DAC_0V;
569
570 if (cnt++ >= delay_cnt[3])
571 {
572 cnt = 0;
573 stage = 0;
574
575 if (mal++ >= 1600 - 1) // approx 95ms
576 {
577 mal = 0;
578 HAL_NVIC_DisableIRQ(ADC_DMA_IRQ);
579 if (NULL != ReturnFunctionPtr) MOSFETS_Management = ReturnFunctionPtr;
580 else MOSFETS_Management = &DoNothing;
581 HAL_NVIC_EnableIRQ(ADC_DMA_IRQ);
582 }
583 }
584 break;
585 }
586}
587
588//------------------------------------------------------------------------------
Note: See TracBrowser for help on using the repository browser.