39 #include "adc_hw_access.h"
89 ADC_Type *
const base = s_adcBase[instance];
94 ADC_SetTriggerMode(base, config->
trigger);
96 ADC_SetTriggerSelect(instance, config->
triggerSel);
97 ADC_SetDMAEnableFlag(base, config->
dmaEnable);
98 ADC_SetVoltageReference(base, config->
voltageRef);
116 const ADC_Type *
const base = s_adcBase[instance];
121 config->
trigger = ADC_GetTriggerMode(base);
122 config->
triggerSel = ADC_GetTriggerSelect(instance);
124 config->
dmaEnable = ADC_GetDMAEnableFlag(base);
125 config->
voltageRef = ADC_GetVoltageReference(base);
141 ADC_Type *
const baseAddr = s_adcBase[instance];
163 #if FEATURE_ADC_HAS_EXTRA_NUM_REGS
164 for(idx = 0U; idx < ADC_aSC1_COUNT; idx++)
211 ADC_Type *
const base = s_adcBase[instance];
215 ADC_SetHwCompareComp1Value(base, config->
compVal1);
216 ADC_SetHwCompareComp2Value(base, config->
compVal2);
233 const ADC_Type *
const base = s_adcBase[instance];
237 config->
compVal1 = ADC_GetHwCompareComp1Value(base);
238 config->
compVal2 = ADC_GetHwCompareComp2Value(base);
274 ADC_Type *
const base = s_adcBase[instance];
275 ADC_SetHwAverageEnableFlag(base, config->
hwAvgEnable);
276 ADC_SetHwAverageMode(base, config->
hwAverage);
293 const ADC_Type *
const base = s_adcBase[instance];
294 config->
hwAvgEnable = ADC_GetHwAverageEnableFlag(base);
295 config->
hwAverage = ADC_GetHwAverageMode(base);
332 const uint8_t chanIndex,
339 ADC_Type *
const base = s_adcBase[instance];
340 ADC_SetChanInterruptEnableFlag(base, chanIndex, config->
interruptEnable);
341 ADC_SetInputChannel(base, chanIndex, config->
channel);
353 const uint8_t chanIndex,
360 const ADC_Type *
const base = s_adcBase[instance];
361 config->
interruptEnable = ADC_GetChanInterruptEnableFlag(base, chanIndex);
362 config->
channel = ADC_GetInputChannel(base, chanIndex);
377 uint32_t intermValue = 0U;
384 intermValue = simBase->
ADCOPT & (~ mask[instance]);
398 simBase->
ADCOPT = intermValue;
413 const ADC_Type *
const base = s_adcBase[instance];
414 while (ADC_GetConvActiveFlag(base) ==
true)
430 const uint8_t chanIndex)
435 const ADC_Type *
const base = s_adcBase[instance];
437 #if FEATURE_ADC_HAS_EXTRA_NUM_REGS
438 uint32_t tmp = base->aSC1[chanIndex];
439 tmp = (tmp & ADC_aSC1_COCO_MASK) >> ADC_aSC1_COCO_SHIFT;
441 uint32_t tmp = base->
SC1[chanIndex];
445 return (tmp != 0u) ?
true :
false;
457 const uint8_t chanIndex,
458 uint16_t *
const result)
463 const ADC_Type *
const base = s_adcBase[instance];
465 #if FEATURE_ADC_HAS_EXTRA_NUM_REGS
469 uint32_t tmp = base->aR[chanIndex];
470 tmp = (tmp & ADC_aR_D_MASK) >> ADC_aR_D_SHIFT;
475 uint32_t tmp = base->
R[chanIndex];
479 *result = (uint16_t)tmp;
494 ADC_Type *
const base = s_adcBase[instance];
496 bool hwavgen = ADC_GetHwAverageEnableFlag(base);
500 ADC_SetHwAverageEnableFlag(base,
true);
512 ADC_SetCalibrationActiveFlag(base,
true);
513 while (ADC_GetCalibrationActiveFlag(base))
519 ADC_SetHwAverageEnableFlag(base, hwavgen);
520 ADC_SetHwAverageMode(base, hwavg);
521 ADC_SetTriggerMode(base, trig);
557 ADC_Type *
const base = s_adcBase[instance];
558 ADC_SetUserGainValue(base, config->
userGain);
559 ADC_SetUserOffsetValue(base, config->
userOffset);
576 const ADC_Type *
const base = s_adcBase[instance];
577 config->
userGain = ADC_GetUserGainValue(base);
578 config->
userOffset = ADC_GetUserOffsetValue(base);
611 ADC_Type *
const base = s_adcBase[instance];
614 ADC_ClearLatchTriggers(base);
617 while (ADC_GetTriggerLatchFlags(base) != 0u)
634 ADC_Type *
const base = s_adcBase[instance];
650 const ADC_Type *
const base = s_adcBase[instance];
static ADC_Type *const s_adcBase[ADC_INSTANCE_COUNT]
#define ADC_SC1_COCO_SHIFT
Defines the user calibration configuration.
#define ADC_USR_OFS_USR_OFS(x)
bool continuousConvEnable
uint32_t ADC_DRV_GetTriggerErrorFlags(const uint32_t instance)
This function returns the trigger error flags bits of the ADC instance.
void ADC_DRV_AutoCalibration(const uint32_t instance)
Executes an Auto-Calibration.
adc_trigger_sel_t triggerSel
adc_voltage_reference_t voltageRef
#define ADC_SC2_REFSEL(x)
void ADC_DRV_GetHwAverageConfig(const uint32_t instance, adc_average_config_t *const config)
Gets the current Hardware Average configuration.
#define ADC_DEFAULT_USER_GAIN
ADC default User Gain from RM.
void ADC_DRV_InitHwCompareStruct(adc_compare_config_t *const config)
Initializes the Hardware Compare configuration structure.
void ADC_DRV_InitHwAverageStruct(adc_average_config_t *const config)
Initializes the Hardware Average configuration structure.
bool ADC_DRV_GetConvCompleteFlag(const uint32_t instance, const uint8_t chanIndex)
Gets the control channel Conversion Complete Flag state.
void ADC_DRV_ConfigConverter(const uint32_t instance, const adc_converter_config_t *const config)
Configures the converter with the given configuration structure.
adc_input_clock_t inputClock
#define ADC_CFG2_SMPLTS(x)
void ADC_DRV_ConfigUserCalibration(const uint32_t instance, const adc_calibration_t *const config)
Configures the User Calibration feature with the given configuration structure.
#define ADC_DEFAULT_SAMPLE_TIME
ADC default Sample Time from RM.
void ADC_DRV_Reset(const uint32_t instance)
Resets the converter (sets all configurations to reset values)
void ADC_DRV_SetSwPretrigger(const uint32_t instance, const adc_sw_pretrigger_t swPretrigger)
This function sets the software pretrigger - affects only first 4 control channels.
adc_clk_divide_t clockDivide
void ADC_DRV_GetChanResult(const uint32_t instance, const uint8_t chanIndex, uint16_t *const result)
Gets the last result for the selected control channel.
Defines the hardware average configuration.
#define SIM_ADCOPT_ADC0SWPRETRG_MASK
void ADC_DRV_ConfigChan(const uint32_t instance, const uint8_t chanIndex, const adc_chan_config_t *const config)
Configures the selected control channel with the given configuration structure.
#define ADC_CTRL_CHANS_COUNT
ADC number of control channels.
void ADC_DRV_ConfigHwCompare(const uint32_t instance, const adc_compare_config_t *const config)
Configures the Hardware Compare feature with the given configuration structure.
void ADC_DRV_GetChanConfig(const uint32_t instance, const uint8_t chanIndex, adc_chan_config_t *const config)
Gets the current control channel configuration for the selected channel index.
void ADC_DRV_InitChanStruct(adc_chan_config_t *const config)
Initializes the control channel configuration structure.
adc_sw_pretrigger_t
Software pretriggers which may be set from Trigger Latching and Arbitration Unit. ...
void ADC_DRV_InitConverterStruct(adc_converter_config_t *const config)
Initializes the converter configuration structure.
void ADC_DRV_ClearTriggerErrors(const uint32_t instance)
Clear all latch trigger error.
#define ADC_SC2_TRGSTERR_MASK
void ADC_DRV_GetConverterConfig(const uint32_t instance, adc_converter_config_t *const config)
Gets the current converter configuration.
__I uint32_t R[ADC_R_COUNT]
void ADC_DRV_InitUserCalibrationStruct(adc_calibration_t *const config)
Initializes the User Calibration configuration structure.
#define ADC_CFG1_ADICLK(x)
IRQn_Type ADC_DRV_GetInterruptNumber(const uint32_t instance)
Returns the interrupt number for the ADC instance.
bool compareRangeFuncEnable
Defines the converter configuration.
#define SIM_ADCOPT_ADC1SWPRETRG(x)
__IO uint32_t CV[ADC_CV_COUNT]
#define ADC_INSTANCE_COUNT
adc_trigger_t
Trigger type selection.
#define SIM_ADCOPT_ADC1SWPRETRG_MASK
void ADC_DRV_GetUserCalibration(const uint32_t instance, adc_calibration_t *const config)
Gets the current User Calibration configuration.
__IO uint32_t SC1[ADC_SC1_COUNT]
#define SIM_ADCOPT_ADC0SWPRETRG(x)
#define ADC_SC2_TRGSTERR_SHIFT
adc_average_t
Hardware average selection.
#define ADC_SC1_COCO_MASK
bool compareGreaterThanEnable
void ADC_DRV_ClearLatchedTriggers(const uint32_t instance, const adc_latch_clear_t clearMode)
Clear latched triggers under processing.
adc_latch_clear_t
Defines the trigger latch clear method Implements : adc_latch_clear_t_Class.
void ADC_DRV_WaitConvDone(const uint32_t instance)
Waits for a conversion/calibration to finish.
adc_resolution_t resolution
adc_pretrigger_sel_t pretriggerSel
void ADC_DRV_GetHwCompareConfig(const uint32_t instance, adc_compare_config_t *const config)
Gets the current Hardware Compare configuration.
void ADC_DRV_ConfigHwAverage(const uint32_t instance, const adc_average_config_t *const config)
Configures the Hardware Average feature with the given configuration structure.
Defines the hardware compare configuration.
adc_inputchannel_t channel
IRQn_Type
Defines the Interrupt Numbers definitions.
Defines the control channel configuration.