rusEFI
The most advanced open source ECU
Loading...
Searching...
No Matches
Functions
adc_onchip.h File Reference

Detailed Description

Low level ChibiOS ADC helpers header.

Date
Aug 23, 2025
Author
Andrey Gusakov, (c) 2025

Definition in file adc_onchip.h.

Functions

int adcConversionGroupSetSeqInput (ADCConversionGroup *cfg, size_t sqn, size_t input)
 
int adcConversionGroupGetSeqInput (ADCConversionGroup *cfg, size_t sqn)
 

Function Documentation

◆ adcConversionGroupGetSeqInput()

int adcConversionGroupGetSeqInput ( ADCConversionGroup *  cfg,
size_t  sqn 
)

Definition at line 51 of file adc_onchip.cpp.

51 {
52 if (sqn < 6) {
53 size_t shift = 5 * (sqn - 0);
54 return (cfg->sqr3 >> shift) & 0x1f;
55 } else if (sqn < 12) {
56 size_t shift = 5 * (sqn - 6);
57 return (cfg->sqr2 >> shift) & 0x1f;
58 } else if (sqn < 18) {
59 size_t shift = 5 * (sqn - 12);
60 return (cfg->sqr1 >> shift) & 0x1f;
61#if ADC_MAX_CHANNELS_COUNT > 16
62 } else if (sqn < 24) {
63 size_t shift = 5 * (sqn - 18);
64 return (cfg->sqr4 >> shift) & 0x1f;
65 } else if (sqn < 30) {
66 size_t shift = 5 * (sqn - 24);
67 return (cfg->sqr5 >> shift) & 0x1f;
68#endif /* ADC_MAX_CHANNELS_COUNT */
69 }
70
71 return -1;
72}

◆ adcConversionGroupSetSeqInput()

int adcConversionGroupSetSeqInput ( ADCConversionGroup *  cfg,
size_t  sqn,
size_t  input 
)

Definition at line 20 of file adc_onchip.cpp.

20 {
21 if (sqn < 6) {
22 size_t shift = 5 * (sqn - 0);
23 cfg->sqr3 = (cfg->sqr3 & (~(0x1f << shift))) |
24 (input << shift);
25 } else if (sqn < 12) {
26 size_t shift = 5 * (sqn - 6);
27 cfg->sqr2 = (cfg->sqr2 & (~(0x1f << shift))) |
28 (input << shift);
29 } else if (sqn < 18) {
30 size_t shift = 5 * (sqn - 12);
31 cfg->sqr1 = (cfg->sqr1 & (~(0x1f << shift))) |
32 (input << shift);
33#if ADC_MAX_CHANNELS_COUNT > 16
34 } else if (sqn < 24) {
35 size_t shift = 5 * (sqn - 18);
36 cfg->sqr4 = (cfg->sqr4 & (~(0x1f << shift))) |
37 (input << shift);
38 } else if (sqn < 30) {
39 size_t shift = 5 * (sqn - 24);
40 cfg->sqr5 = (cfg->sqr5 & (~(0x1f << shift))) |
41 (input << shift);
42 }
43#endif /* ADC_MAX_CHANNELS_COUNT */
44 } else {

Referenced by slowAdcEnableDisableChannel().

Here is the caller graph for this function:

Go to the source code of this file.