<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<IP xmlns="http://mcd.rou.st.com/modules.php?name=mcu" DBVersion="V4.0" Name="ADC" Version="STM32Cube_FW_F1_V1.6.0" xmlns:ns0="http://www.w3.org/2001/XMLSchema-instance" IncludeFile="stm32f1xx_ll_adc.h" ns0:schemaLocation="http://mcd.rou.st.com/modules.php?name=mcu ../../../../../../../doc/V4/Development/Specifications/db/IP_Configs.xsd">

    <RefConfig Name="ADC_RegularConfig" Comment="Common config">
        <IFCondition Expression="$Index=1">
            <CallLibMethod Name="LL_ADC_CommonInit">
                <MethodArg Name="ADCxy_COMMON">
                    <CallLibMethod Name="__LL_ADC_COMMON_INSTANCE">
                        <MethodArg Name="ADCx" ParameterName="Instance" />
                    </CallLibMethod>
                </MethodArg>
                <MethodArg Name="Multimode" ParameterName="Mode" />
            </CallLibMethod>
        </IFCondition>
        
        <CallLibMethod Name="LL_ADC_Init">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="DataAlignment" ParameterName="DataAlign" />
            <MethodArg Name="SequencersScanMode" ParameterName="ScanConvMode" />
        </CallLibMethod>
      <IFCondition Expression="$Index=1">
        <CallLibMethod Name="LL_ADC_REG_Init">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="TriggerSource" ParameterName="ExternalTrigConv" />
            <MethodArg Name="SequencerLength" ParameterName="NbrOfConversion" />
            <MethodArg Name="SequencerDiscont" ParameterName="DiscontinuousConvMode,NbrOfDiscConversion" />
            <MethodArg Name="ContinuousMode" ParameterName="ContinuousConvMode" />
            <MethodArg Name="DMATransfer" ParameterName="DMAAccessMode_ADC1" />
        </CallLibMethod>
     </IFCondition>
        <IFCondition Expression="$Index=2">
             <CallLibMethod Name="LL_ADC_REG_Init">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="TriggerSource" ParameterName="ExternalTrigConv" />
            <MethodArg Name="SequencerLength" ParameterName="NbrOfConversion" />
            <MethodArg Name="SequencerDiscont" ParameterName="DiscontinuousConvMode,NbrOfDiscConversion" />
            <MethodArg Name="ContinuousMode" ParameterName="ContinuousConvMode" />
            <MethodArg Name="DMATransfer" ParameterName="DMAAccessMode_ADC2" />
        </CallLibMethod>
             </IFCondition>
			 
			 <IFCondition Expression="$Index=3">
             <CallLibMethod Name="LL_ADC_REG_Init">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="TriggerSource" ParameterName="ExternalTrigConv" />
            <MethodArg Name="SequencerLength" ParameterName="NbrOfConversion" />
            <MethodArg Name="SequencerDiscont" ParameterName="DiscontinuousConvMode,NbrOfDiscConversion" />
            <MethodArg Name="ContinuousMode" ParameterName="ContinuousConvMode" />
            <MethodArg Name="DMATransfer" ParameterName="DMAAccessMode_ADC3" />
        </CallLibMethod>
         </IFCondition>
             
             <IFCondition Expression="Injected_Mode_Enabled" >
             
            <CallLibMethod Name="LL_ADC_INJ_Init">
                <MethodArg Name="ADCx" ParameterName="Instance" />
                <MethodArg Name="TriggerSource" ParameterName="ExternalTrigInjecConv" />
                <MethodArg Name="SequencerLength" ParameterName="InjNumberOfConversion" />
                <MethodArg Name="SequencerDiscont" ParameterName="InjectedDiscontinuousConvMode" />
                <MethodArg Name="TrigAuto" ParameterName="AutoInjectedConv" />
            </CallLibMethod>
             
             
            <IFCondition Expression="!(ExternalTrigInjecConvEdge = ADC_EXTERNALTRIGINJECCONV_EDGE_NONE)">
                <CallLibMethod Name="LL_ADC_INJ_SetTriggerEdge">
                    <MethodArg Name="ADCx" ParameterName="Instance" />
                    <MethodArg Name="ExternalTriggerEdge" ParameterName="ExternalTrigInjecConvEdge" />
                </CallLibMethod>
            </IFCondition>
            <CallLibMethod Name="LL_ADC_INJ_SetQueueMode">
                <MethodArg Name="ADCx" ParameterName="Instance" />
                <MethodArg Name="QueueMode" ParameterName="injectedQueueMode,QueueInjectedContext" />
            </CallLibMethod>
            
            <CallLibMethod Name="LL_ADC_SetOverSamplingScope">
                <MethodArg Name="ADCx" ParameterName="Instance" />
                <MethodArg Name="OvsScope"
                           ParameterName="OversamplingMode,EnableInjectedOversampling,OversamplingStopReset" />
            </CallLibMethod>

            <CallLibMethod Name="LL_ADC_ConfigOverSamplingRatioShift">
                <MethodArg Name="ADCx" ParameterName="Instance" />
                <MethodArg Name="Ratio" ParameterName="InjOversamplingRatio" />
                <MethodArg Name="Shift" ParameterName="InjOversamplingRightShift" />
            </CallLibMethod>

            <!-- parameter EOCSelection -->
            <IFCondition Expression="(EOCSelection = ADC_EOC_SINGLE_CONV)">
                <CallLibMethod Name="LL_ADC_DisableIT_JEOC">
                    <MethodArg Name="ADCx" ParameterName="Instance" />
                </CallLibMethod>
                <CallLibMethod Name="LL_ADC_DisableIT_JEOS">
                    <MethodArg Name="ADCx" ParameterName="Instance" />
                </CallLibMethod>
            </IFCondition>

            <IFCondition Expression="(EOCSelection = ADC_EOC_SINGLE_SEQ_CONV)">
                <CallLibMethod Name="LL_ADC_DisableIT_JEOS">
                    <MethodArg Name="ADCx" ParameterName="Instance" />
                </CallLibMethod>
                <CallLibMethod Name="LL_ADC_DisableIT_JEOC">
                    <MethodArg Name="ADCx" ParameterName="Instance" />
                </CallLibMethod>
            </IFCondition>  
        </IFCondition>
           
    </RefConfig>
                
    <RefConfig Name="ADC_RegularChannelConfig" Comment="Configure Regular Channel">
        
       <CallLibMethod Name="LL_ADC_REG_SetSequencerRanks">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="Rank" ParameterName="Rank" />
            <MethodArg Name="Channel" ParameterName="Channel" />
        </CallLibMethod>
         <CallLibMethod Name="LL_ADC_SetChannelSamplingTime">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="Channel" ParameterName="Channel" />
            <MethodArg Name="SamplingTime" ParameterName="SamplingTime" />
        </CallLibMethod>
        <IFCondition
            Expression="(Channel = ADC_CHANNEL_TEMPSENSOR) | (Channel = ADC_CHANNEL_VREFINT)">
            <CallLibMethod Name="LL_ADC_SetCommonPathInternalCh">
                <MethodArg Name="ADCxy_COMMON">
                    <CallLibMethod Name="__LL_ADC_COMMON_INSTANCE">
                        <MethodArg Name="ADCx" ParameterName="Instance" />
                    </CallLibMethod>
                </MethodArg>
                <MethodArg Name="PathInternal" ParameterName="Channel" />
            </CallLibMethod>
        </IFCondition>
    </RefConfig>
   
    <RefConfig Name="ADC_InjectedChannelConfig" Comment="Configure Injected Channel">
<!--        <CallLibMethod Name="LL_ADC_INJ_Init">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="TriggerSource" ParameterName="ExternalTrigInjecConv" />
            <MethodArg Name="SequencerLength" ParameterName="InjNumberOfConversion" />
            <MethodArg Name="SequencerDiscont" ParameterName="InjectedDiscontinuousConvMode" />
            <MethodArg Name="TrigAuto" ParameterName="AutoInjectedConv" />
        </CallLibMethod>
        -->
    
        <!-- Injected Channel configuration -->
        <CallLibMethod Name="LL_ADC_INJ_SetSequencerRanks">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="Rank" ParameterName="Rank" />
            <MethodArg Name="Channel" ParameterName="Channel" />
        </CallLibMethod>

        <CallLibMethod Name="LL_ADC_SetChannelSamplingTime">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="Channel" ParameterName="Channel" />
            <MethodArg Name="SamplingTime" ParameterName="SamplingTime" />
        </CallLibMethod>
		
        <CallLibMethod Name="LL_ADC_INJ_SetOffset">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="Rank" ParameterName="Rank" />
            <MethodArg Name="OffsetLevel" ParameterName="InjectedOffset" />
        </CallLibMethod>
		
        <!-- PathInternal Depend on selected channel -->
        <IFCondition
            Expression="(Channel = ADC_CHANNEL_TEMPSENSOR) | (Channel = ADC_CHANNEL_VREFINT)">
            <CallLibMethod Name="LL_ADC_SetCommonPathInternalCh">
                <MethodArg Name="ADCxy_COMMON">
                    <CallLibMethod Name="__LL_ADC_COMMON_INSTANCE">
                        <MethodArg Name="ADCx" ParameterName="Instance" />
                    </CallLibMethod>
                </MethodArg>
                <MethodArg Name="PathInternal" ParameterName="Channel" />
            </CallLibMethod>
        </IFCondition>
    </RefConfig>
    
    
    
    <RefConfig Name="ADC_AnalogWDGConfig" Comment="Configure Analog WatchDog">
        <CallLibMethod Name="LL_ADC_SetAnalogWDMonitChannels">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="AWDChannelGroup" ParameterName="WatchdogMode,WatchdogChannel" />
        </CallLibMethod>

        <CallLibMethod Name="LL_ADC_SetAnalogWDThresholds">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="AWDThresholdsHighLow" FValue="LL_ADC_AWD_THRESHOLD_HIGH" />
            <MethodArg Name="AWDThresholdValue" ParameterName="AWD1HighThreshold" />
        </CallLibMethod>
        
         <CallLibMethod Name="LL_ADC_SetAnalogWDThresholds">
            <MethodArg Name="ADCx" ParameterName="Instance" />
            <MethodArg Name="AWDThresholdsHighLow" FValue="LL_ADC_AWD_THRESHOLD_LOW" />
            <MethodArg Name="AWDThresholdValue" ParameterName="AWD1LowThreshold" />
        </CallLibMethod>
        <!-- parameter AWD1ITMode ENABLE -->
        <IFCondition Expression="(AWD1ITMode = ENABLE)">
            <CallLibMethod Name="LL_ADC_EnableIT_AWD1">
                <MethodArg Name="ADCx" ParameterName="Instance" />
            </CallLibMethod>
        </IFCondition>
                
        <!-- parameter AWD1ITMode DISABLE -->
        <IFCondition Expression="(AWD1ITMode = DISABLE)">
            <CallLibMethod Name="LL_ADC_DisableIT_AWD1">
                <MethodArg Name="ADCx" ParameterName="Instance" />
            </CallLibMethod>
        </IFCondition>
         
    </RefConfig>
    
    
    <LibMethod Comment="" Name="__LL_ADC_COMMON_INSTANCE">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_Init">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"         TypeName="ADC_TypeDef" />
        <Argument AddressOf="true" GenericType="struct" Name="ADC_InitStruct"     TypeName="LL_ADC_InitTypeDef">
           
            <Argument AddressOf="false" GenericType="simple" Name="DataAlignment" OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="SequencersScanMode"  OptimizationCondition="equal" />
        </Argument>
    </LibMethod>   
    
    <LibMethod Comment="" Name="LL_ADC_INJ_SetOffset">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="Rank"
                  OptimizationCondition="equal" />
        <Argument AddressOf="false" GenericType="simple" Name="OffsetLevel"
                  OptimizationCondition="equal" />
    </LibMethod>   
    
        <LibMethod Comment="" Name="LL_ADC_REG_SetSequencerRanks">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                          TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="Rank"
                          OptimizationCondition="equal" />
        <Argument AddressOf="false" GenericType="simple" Name="Channel"
                          OptimizationCondition="equal" />
    </LibMethod>
    
    <LibMethod Comment="" Name="LL_ADC_CommonInit">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCxy_COMMON"
                  TypeName="ADC_Common_TypeDef" />
        <Argument AddressOf="true" GenericType="struct" Name="ADC_CommonInitStruct"
                  TypeName="LL_ADC_CommonInitTypeDef">
          
            <Argument AddressOf="false" GenericType="simple" Name="Multimode"
                      OptimizationCondition="equal" />
           
        </Argument>
    </LibMethod>   
    <LibMethod Comment="" Name="LL_ADC_INJ_Init">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="true" GenericType="struct" Name="ADC_INJ_InitStruct"
                  TypeName="LL_ADC_INJ_InitTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="TriggerSource"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="SequencerLength"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="SequencerDiscont"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="TrigAuto"
                      OptimizationCondition="equal" />
        </Argument>
    </LibMethod>
    
    <LibMethod Comment="" Name="LL_ADC_INJ_SetSequencerRanks">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="Rank"
                  OptimizationCondition="equal" />
        <Argument AddressOf="false" GenericType="simple" Name="Channel"
                  OptimizationCondition="equal" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_SetChannelSamplingTime">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="Channel"
                  OptimizationCondition="equal" />
        <Argument AddressOf="false" GenericType="simple" Name="SamplingTime"
                  OptimizationCondition="equal" />
    </LibMethod>   
                
    <LibMethod Comment="" Name="LL_ADC_REG_Init">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="true" GenericType="struct" Name="ADC_REG_InitStruct"
                  TypeName="LL_ADC_REG_InitTypeDef">
            <Argument AddressOf="false" GenericType="simple" Name="TriggerSource"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="SequencerLength"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="SequencerDiscont"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="ContinuousMode"
                      OptimizationCondition="equal" />
            <Argument AddressOf="false" GenericType="simple" Name="DMATransfer"
                      OptimizationCondition="equal" />
          
        </Argument>
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_SetClock">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="ClockSource"
                  OptimizationCondition="equal" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_REG_SetTriggerEdge">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="ExternalTriggerEdge"
                  OptimizationCondition="equal" />
    </LibMethod> 
        
    <LibMethod Comment="" Name="LL_ADC_REG_SetSequencerScanDirection">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="ScanDirection"
                  OptimizationCondition="equal" />
    </LibMethod> 
    <LibMethod Comment="" Name="LL_ADC_SetSamplingTimeCommonChannels">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="SamplingTime"
                  OptimizationCondition="equal" />
    </LibMethod> 
    <LibMethod Comment="" Name="LL_ADC_EnableIT_EOC">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
		
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_DisableIT_EOS">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
		
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_EnableIT_EOS">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
		
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_DisableIT_EOC">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
		
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_REG_SetSequencerChannels">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="Channel"
                  OptimizationCondition="equal" />
		
    </LibMethod>
        
    <LibMethod Comment="" Name="LL_ADC_SetCommonPathInternalCh">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCxy_COMMON"
                  TypeName="ADC_Common_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="PathInternal"
                  OptimizationCondition="equal" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_SetAnalogWDMonitChannels">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="AWDChannelGroup"
                  OptimizationCondition="equal" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_SetAnalogWDThresholds">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
        <Argument AddressOf="false" GenericType="simple" Name="AWDThresholdsHighLow"
                  OptimizationCondition="equal" />
        <Argument AddressOf="false" GenericType="simple" Name="AWDThresholdValue"
                  OptimizationCondition="equal" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_EnableIT_AWD1">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
    </LibMethod>
    <LibMethod Comment="" Name="LL_ADC_DisableIT_AWD1">
        <Argument AddressOf="false" GenericType="baseaddress" Name="ADCx"
                  TypeName="ADC_TypeDef" />
    </LibMethod>
        
    
        
    <RefComponent Cclass="LL" Cgroup="ADC" Cversion="1.6.0">
        <File Category="header" Name="Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_adc.h"/>
        <File Category="source" Name="Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_ll_adc.c"/>
    </RefComponent>
</IP>
