960 lines
27 KiB
C
Raw Normal View History

2012-08-14 18:00:48 -04:00
/* ============================================================================
* Copyright (c) Texas Instruments Inc 2002, 2003, 2004, 2005, 2008
*
* Use of this software is controlled by the terms and conditions found in the
* license agreement under which this software has been supplied.
* ============================================================================
*/
/** @file csl_sar.h
*
* @brief SAR functional layer API header file
*
* Path: \\(CSLPATH)\\inc
*/
/* ============================================================================
* Revision History
* ================
* 22-Sept-2008 Added a new API function - SAR_getStatus()
* ============================================================================
*/
/** @defgroup CSL_SAR_API SAR
*
* @section Introduction
*
* @subsection SAR Overview
* 10 bit Sucessive Approximation analog to digital module converts an analog input voltage
* to a corresponding digital value.It supports six channels.
* @subsection References
* -# C5505_Spec_1.16.pdf
*
*/
#ifndef _CSL_SAR_H_
#define _CSL_SAR_H_
#ifdef __cplusplus
extern "C" {
#endif
/* Header Files */
#include <cslr.h>
#include <soc.h>
#include <csl_error.h>
#include <csl_types.h>
#include <csl_general.h>
/**
@defgroup CSL_SAR_SYMBOL SAR Symbols Defined
@ingroup CSL_SAR_API
*/
/**
@defgroup CSL_SAR_DATASTRUCT SAR Data Structures
@ingroup CSL_SAR_API
*/
/**
@defgroup CSL_SAR_FUNCTION SAR Functions
@ingroup CSL_SAR_API
*/
/**
@defgroup CSL_SAR_ENUM SAR Enumerated Data Types
@ingroup CSL_SAR_API
*/
/** @addtogroup CSL_SAR_SYMBOL
@{ */
/*****************************************************************************\
SAR global macro declarations
\*****************************************************************************/
/** Maximum SAR Clock Divider value */
#define CSL_SAR_MAX_CLKDIV 127
/** Number of SAR channels available */
#define CSL_SAR_NUM_CHANNEL 6
/** Number of GPAIN available */
#define CSL_SAR_NUM_GPAIN 4
/** SAR ADC is busy in conversion */
# define CSL_SAR_ADC_BUSY 1
/** SAR Conversion is completed and ADC data is available */
# define CSL_SAR_DATA_AVAILABLE 0
/** To start ADC conversion */
# define CSL_SAR_ADC_START 1
/** Sar module is in use */
#define CSL_SAR_OPEN 1
/** Sar module is not in use */
#define CSL_SAR_CLOSE 0
/**
@} */
/**************************************************************************\
* SAR global typedef declarations *
\**************************************************************************/
/** @addtogroup CSL_SAR_ENUM
@{ */
/** \brief Enumeration for SAR channel selection */
typedef enum {
/** SAR Channel Number 0 */
CSL_SAR_CHAN_0 = 0,
/** SAR Channel Number 1 */
CSL_SAR_CHAN_1 = 1,
/** SAR Channel Number 2 */
CSL_SAR_CHAN_2 = 2,
/** SAR Channel Number 3 */
CSL_SAR_CHAN_3 = 3,
/** SAR Channel Number 4 */
CSL_SAR_CHAN_4 = 4,
/** SAR Channel Number 5 */
CSL_SAR_CHAN_5 = 5,
/** No channel Allocated */
CSL_SAR_NO_CHAN = 6
} CSL_SarChanSel;
/** \brief Enumeration for Selection mode of SAR -
To configure Status bit in SAR A/D Reference and Pin Register */
typedef enum {
/** Polling Mode */
CSL_SAR_POLLING = 0,
/** Interrupt Mode */
CSL_SAR_INTERRUPT = 1,
/** DMA mode */
CSL_SAR_DMA = 2
} CSL_SarOpMode;
/** \brief Enumeration for SAR Single Cycle Operation
To configure SingleCyc bit in SAR A/D Control Register
*/
typedef enum {
/** Continously perform Conversion */
CSL_SAR_CONTINUOUS_CONVERSION = 0,
/** Single Conversion */
CSL_SAR_SINGLE_CONVERSION = 1
} CSL_SarChanCyc;
/** \brief Enumeration for SAR Multi Channel Operation
To configure MultiCh bit in SAR A/D Control Register
*/
typedef enum {
/** No dischage of array */
CSL_SAR_NO_DISCHARGE = 0,
/** Discharge of array */
CSL_SAR_DISCHARGE_ARRAY = 1
} CSL_SarMultiCh;
/** \brief Enumeration for SAR Reference voltage selection
*/
typedef enum {
/** Select Reference voltage 0.8 volts */
CSL_SAR_REF_0_8v = 0,
/** Select Reference voltage 1 volts */
CSL_SAR_REF_1v = 1 ,
/** Select Reference voltage as Input voltage */
CSL_SAR_REF_VIN = 2
} CSL_RefVoltage;
/** \brief Enumeration for SAR GPAIN Pin Index
*/
typedef enum {
/** GPAIN 0 */
CSL_SAR_GPO_0 = 0,
/** GPAIN 1 */
CSL_SAR_GPO_1 = 1,
/** GPAIN 2 */
CSL_SAR_GPO_2 = 2,
/** GPAIN 3 */
CSL_SAR_GPO_3 = 3
} CSL_SarGPOPinSel;
/** \brief Enumeration for SAR General Purpose Pin Direction
*/
typedef enum {
/** GPAIN as i/p */
CSL_SAR_GPO_IN = 0,
/** GPAIN as o/p */
CSL_SAR_GPO_OUT = 1
} CSL_SarGPODir;
/** \brief Enumeration for Selecting type of A/D conversion
*/
typedef enum
{
/** For Measuring keypad voltage */
CSL_KEYPAD_MEAS = 0,
/** For Measuring battery voltage */
CSL_BATTRY_MEAS = 1,
/** For Measuring Internal Voltage */
CSL_INT_VOLT_MEAS = 2,
/** For Volume control Measurement */
CSL_VOLUME_CTRL = 3,
/** For Measuring X-Position of LCD */
CSL_TOUCH_SCREEN_XAXIS = 4,
/** For Measuring Y-Postion of LCD */
CSL_TOUCH_SCREEN_YAXIS = 5,
/** For Measuring pen press down */
CSL_PEN_PRESS_DOWN = 6
}CSL_SARMeasParam;
/**
@} */
/**
\addtogroup CSL_SAR_DATASTRUCT
@{ */
/**
* \brief Input parameters for setup API
*/
typedef struct {
/** \brief system clock divisor for SAR */
Uint16 SysClkDiv;
/** \brief Interrupt Mode - Polling or Interrupt mode -
to configure status bit in SAR A/D Reference and Pin Register */
CSL_SarOpMode OpMode;
/** \brief MultiCh type - MultiChannel operation -
to configure MultiCh bit in SAR A/D Control Register */
CSL_SarMultiCh MultiCh;
/** \brief Refvoltage Selection - To select Analog Ref voltage */
CSL_RefVoltage RefVoltage;
} CSL_SarChSetup;
/**
* \brief structure parameters for SAR handler
*/
typedef struct{
/** \brief BaseAddress of SAR Registers */
CSL_SarRegsOvly baseAddr;
/** \brief Channel Number */
Uint16 chanNo;
/** \brief SAR Status */
Uint16 status;
}CSL_SarHandleObj;
/** \brief Pointer to SAR object handler */
typedef CSL_SarHandleObj* SAR_Handle;
/**
* \brief structure parameters for SAR Register Configuration API
*/
typedef struct{
/** SAR A/D Control Register */
volatile Uint16 SARCTRL;
/** SAR A/D Clock Control Register */
volatile Uint16 SARCLKCTRL;
/** SAR A/D Reference and Pin Register */
volatile Uint16 SARPINCTRL;
/** SAR A/D GPO Control Register */
volatile Uint16 SARGPOCTRL;
}CSL_SarChConfig;
/**
@} */
/*******************************************************************************
* SAR function declarations
******************************************************************************/
/** @addtogroup CSL_SAR_FUNCTION
@{ */
/** ============================================================================
* @n@b SAR_init
*
* @b Description
* @n This is the initialization function for the SAR CSL. The function
* must be called before calling any other API from this CSL.
*
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - Always returns
*
* <b> Pre Condition </b>
* @n None
*
* <b> Post Condition </b>
* @n It enables SAR module and resets the SAR registers to
* their default values
*
* @b Modifies
* @n SAR A/D Registers
*
* @b Example
* @verbatim
SAR_init(NULL);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_init(
void
);
/** ============================================================================
* @n@b SAR_deInit
*
* @b Description
* @n This is the de-initialization function for the SAR CSL.
*
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_deInit is successful
*
* <b> Pre Condition </b>
* @n SAR_init should be called before calling this API
*
* <b> Post Condition </b>
* @n It disable the SAR module
*
* @b Modifies
* @n status variable
*
* @b Example
* @verbatim
SAR_deInit(NULL);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_deInit (
void
);
/** ============================================================================
* @n@b SAR_chanOpen
*
* @b Description
* @n This function populates the SAR object structure information ,
*
* @b Arguments
* @verbatim
* SarObj - Pointer to SAR Object structure
* chanNo - Channel Number to be selected
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* @n CSL_SOK - SAR_chanOpen is successful
* @n CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @n CSL_ESYS_INVPARAMS - Invalid channel number requested
*
* <b> Pre Condition </b>
* @n SAR_init should be called before this API call
*
* <b> Post Condition </b>
* @n SAR object structure is populated
*
*
* @b Modifies
* @n SAR object structure
*
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_SarChanSel chanSel;
SAR_Handle hSar;
CSL_Status status;
...
SAR_init(NULL);
....
status = CSL_sarOpen(&Sarobj,chanSel);
hSar = &SarObj;
...
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanOpen (
CSL_SarHandleObj* Sarobj,
CSL_SarChanSel chanSel
);
/** ============================================================================
* @n@b SAR_chanClose
*
* @b Description
* @n This function closes the allocated channel .
*
* @b Arguments
* @verbatim
hSar Pointer to SAR object structure
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_chanClose is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
*
* <b> Pre Condition </b>
* @n SAR_chanOpen API should be called before this API call
*
* <b> Post Condition </b>
* @n The particular channel will be free
*
* @b Modifies
* @n 1. The status variable
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_SarHandle hSar;
CSL_status status;
CSL_SarChanSel chanSel;
SAR_init(NULL);
....
status = CSL_sarOpen(&Sarobj,chanSel);
hSar = &SarObj;
...
status = SAR_chanClose(hSar);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanClose (
CSL_SarHandleObj *hsar
);
/** ============================================================================
* @n@b SAR_chanInit
*
* @b Description
* @n Dummy function .
*
* @b Arguments
* @verbatim
hSar pointer to Sar object handler
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_chanInit call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @li CSL_ESYS_INVPARAMS - Invalid parameter
* <b> Pre Condition </b>
* @n SAR_chanOpen API should be called before this API call
*
*
* <b> Post Condition </b>
*
*
*
* @b Modifies
* @n 1. The status variable
*
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_SarChanSel chanNo;
SAR_Handle hSar;
CSL_Status status
...
status = SAR_chanOpen(&Sarobj,chanNo);
hSar = &SarObj;
status = SAR_chanInit(hSar);
...
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanInit(
SAR_Handle hSar
);
/** ============================================================================
* @n@b SAR_chanConfig
*
* @b Description
* @n It provides Registers fields to configure SAR A/D Hardware Registers
* It configures the SAR registers as per the values passed
* in the corresponding SAR A/D Registers
*
* @b Arguments
* @verbatim
SarHandle Pointer to SAR object structure
ConfigParam Pointer to Config structure
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - Config call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @li CSL_ESYS_INVPARAMS - Invalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanOpen API should be called before this API call
*
* <b> Post Condition </b>
* @n SAR Registers will be configured according to Hardware config structure
* parameters
*
* @b Modifies
* @n 1. The status variable
* 2. SAR A/D Registers
*
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_Status status;
CSL_SarHandle hSar ;
CSL_SarChConfig ConfigParam;
...
status = SAR_chanOpen(&Sarobj,chanNo);
hSar = &SarObj;
status = SAR_chanConfig(hSar,&ConfigParam);
...
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanConfig (
CSL_SarHandleObj *pSarHandle,
CSL_SarChConfig *pConfigParam
);
/** ============================================================================
* @n@b SAR_getConfig
*
* @b Description
* @n It populates the values of the SAR registers in config structure
* @b Arguments
* @verbatim
SarHandle Pointer to SAR Object structure
ConfigParam Register specific parameters
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_getConfig call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @li CSL_ESYS_INVPARAMS - Invalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanOpen API should be called before this API call
*
* <b> Post Condition </b>
* @n It populates the SAR register values in config structure
* @b Modifies
* @n 1. The status variable
*
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_Status status;
CSL_SarHandle SarHandle ;
CSL_SarChConfig ConfigParam;
...
status = SAR_chanOpen(&Sarobj,chanNo);
hSar = &SarObj;
status = SAR_getConfig(SarHandle,&ConfigParam);
...
@endverbatim
* ============================================================================
*/
CSL_Status SAR_getConfig (
CSL_SarHandleObj *pSarHandle,
CSL_SarChConfig *pConfigParam
);
/** ============================================================================
* @n@b SAR_chanSetup
*
* @b Description
* @n It provides the setup parameters to the user to setup SAR A/D Registers
* accordingly .It setup the values in SAR registers as per
* the values passed in the hardware setup structure accordingly.
* @b Arguments
* @verbatim
SarHandle Pointer to SAR Object structure
SarParam Module specific setup parameters
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_chanSetup API call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @li CSL_ESYS_INVPARAMS - Invalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanOpen API should be called before this API call
*
* <b> Post Condition </b>
* @n SAR Registers will be configured according to Hardware setup parameters
* @b Modifies
* @n 1. The status variable
* @n 2. SAR A/D Registers
* @b Example
* @verbatim
CSL_SarHandleObj SarObj;
CSL_Status status;
CSL_SarHandle SarHandle;
CSL_SarChSetup SarParam;
...
status = SAR_chanOpen(&Sarobj,chanNo);
SarHandle = &SarObj;
status = SAR_chanSetup(SarHandle,&SarParam);
...
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanSetup(
CSL_SarHandleObj *pSarHandle,
CSL_SarChSetup *pSarParam
);
/** ============================================================================
* @n@b SAR_chanCycSet
*
* @b Description
* @n It configures the SAR module in single conversion or
* continuous conversion mode as per the values passed
* in the CSL_SarChanCyc enum variables.
*
* @b Arguments
* @verbatim
hSar Pointer to SAR Object structure
cycSelect variable for selecting conversion type
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_chanCycSet API call is successful
* @li CSL_ESYS_BADHANDLE - Sar Object handle is NULL
* @li CSL_ESYS_INVPARAMS - Ivalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanSetup API should be called before this API
*
* <b> Post Condition </b>
* @n SAR conversion type are configured according
* to the parameter
*
* @b Modifies
* @n SAR A/D Registers
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
CSL_SarChanCyc cycSelect;
CSL_status status;
CSL_SarChSetup SarParam;
...
status = SAR_chanOpen(&Sarobj,chanNo);
SarHandle = &SarObj;
status = SAR_chanSetup(SarHandle,&SarParam);
status = SAR_chanCycSet(hSar, cycSelect);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_chanCycSet (
CSL_SarHandleObj *hSar,
CSL_SarChanCyc cycSelect
);
/** ============================================================================
* @n@b SAR_startConversion
*
* @b Description
* @n It sets ADC start bit in SAR control Register and start SAR A/D
* conversion.
*
* @b Arguments
* @verbatim
hSar Pointer to SAR Object structure
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_startConversion API call is successful.
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
*
* <b> Pre Condition </b>
* @n Any of SAR-chanSetup, SAR_chanConfig and SAR_A2DMeasParamSet
* must be called before calling this API
*
* <b> Post Condition </b>
* @n SAR module will start A/D Conversion
*
* @b Modifies
* @n The hardware registers of SAR.
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
...
status = SAR_startConversion (hSar);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_startConversion (
CSL_SarHandleObj *hSar
);
/** ============================================================================
* @n@b SAR_stopConversion
*
* @b Description
* @n Stops SAR Module A/D conversion
*
* @b Arguments
* @verbatim
hSar Pointer to SAR Object structure
* @endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_stopConversion API call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
*
* <b> Pre Condition </b>
* @n SAR_startConversion API must be called before calling this API
*
* <b> Post Condition </b>
* @n SAR module stops conversion
*
* @b Modifies
* @n SAR hardware registers
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
CSL_Status status
...
status = SAR_stopConversion (hSar);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_stopConversion (
CSL_SarHandleObj *hSar
);
/** ============================================================================
* @n@b SAR_A2DMeasParamSet();
*
* @b Description
* @n This function initializes the device registers according to the type
* of A/D conversion
*
* @b Arguments
* @verbatim
hSar Pointer to SAR Object structure
param Enum variable for type of A/D conversion
chanNo Pointer to the channel number
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_A2DMeasParamSet API call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
* @li CSL_ESYS_INVPARAMS - Invalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanSetup API must be called before calling this API
*
* <b> Post Condition </b>
* @n The registers will be configured according to input A/D type.
*
* @b Modifies
* @n Hardware registers of the specified SAR instance.
*
* @b Example
* @verbatim
SAR_Handle hSar;
CSL_SarChSetup SetupParam;
CSL_SARMeasParam param;
CSL_SarChanSel chanNo
CSL_Status status;
...
status = SAR_chanSetup(hSar,&setupParam);
...
status = SAR_A2DMeasParamSet (hSar, param , &chanNo);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_A2DMeasParamSet (
CSL_SarHandleObj *hSar,
CSL_SARMeasParam param,
CSL_SarChanSel* chanNo
);
/** ============================================================================
* @n@b SAR_readData
*
* @b Description
* @n It retrives the analog value converted in digital format (A/D output )
*
* @b Arguments
* @verbatim
hSar Pointer to SAR Object structure
readData Pointer to the output of A/D converted result
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_readData API call is successful
* @li CSL_ESYS_BADHANDLE - SAR obj structure is NULL
*
* <b> Pre Condition </b>
* @n SAR_A2DMeasParamSet or (SAR_chanCoonfig API ) and SAR_startConversion
* , SAR_readData must be called before this API
*
* <b> Post Condition </b>
* @n The output of A/D conversion will be populated in the output buffer
* passed in the API
*
* @b Modifies
* @n readData variable
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
Uint32 readData;
CSL_SarChSetup SetupParam;
...
status = SAR_chanSetup(hSar,&setupParam);
status = SAR_A2DMeasParamSet (hSar, param , &chanNo);
Or
status = SAR_chanConfig(hSar,&configParam);
status = SAR_startConversion(hSar);
while(CSL_SAR_DATA_AVAILABLE != SAR_getStatus(hSar));
status = SAR_readData(hSar, &readData);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_readData (
CSL_SarHandleObj *hSar,
Uint16 *buffer
);
/** ============================================================================
* @n@b SAR_GPODirSet
*
* @b Description
* @n This function is useful for configuring GPAIN pin
* as i/p or o/p
*
* @b Arguments
* @verbatim
hSar Pointer to SAR object structure
Index GPAIN Pin Index
dir Pin Direction i/p or o/p
@endverbatim
*
* <b> Return Value </b> CSL_Status
* @li CSL_SOK - SAR_GPODataSet
* @li CSL_ESYS_BADHANDLE - Invalid handler
* @li CSL_ESYS_INVPARAMS - Invalid parameter
*
* <b> Pre Condition </b>
* @n SAR_chanOpen must be called before calling this API
*
* <b> Post Condition </b>
* @n Sets the direction for the given GPAIN pin
*
* @b Modifies
* @n SAR A/D GPO Register
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
CSL_SarGPOPinSel Index;
CSL_SarGPODir dir;
...
status = SAR_chanOpen(SarObj,chanSel);
status = SAR_GPODirSet(hSar,Index,dir);
@endverbatim
* ============================================================================
*/
CSL_Status SAR_GPODirSet (
CSL_SarHandleObj *hSar,
CSL_SarGPOPinSel Index,
CSL_SarGPODir dir
);
/** ============================================================================
* @n@b SAR_getStatus
*
* @b Description
* @n This function is useful for checking busy bit in SAR A/D Data Register
* It should be called in while loop till return value becomes zero
* before calling SAR_readData
* @b Arguments
* @verbatim
hSar Pointer to SAR object structure
status status variable
* @endverbatim
*
* <b> Return Value </b> Bool busyBit status
* CSL_SAR_DATA_AVAILABLE(0) - ADC data is available
* CSL_SAR_ADC_BUSY(1) - ADC conversion is going on
*
* <b> Pre Condition </b>
* @n SAR_A2DMeasParamSet or (SAR_chanCoonfig API ) and SAR_startConversion
* must be called before calling this API
*
* <b> Post Condition </b>
* @n Reads the busy bit- check whether ADC data is available or not
* and when return value is CSL_SAR_DATA_AVAILABLE ,SAR_readData should
* be called
*
* @b Modifies
* @n return value
* status variable
*
* @b Example
* @verbatim
CSL_SarHandle hSar;
Uint32 readData;
CSL_SarChSetup SetupParam;
...
status = SAR_chanSetup(hSar,&setupParam);
status = SAR_A2DMeasParamSet (hSar, param , &chanNo);
Or
status = SAR_chanConfig(hSar,&configParam);
status = SAR_startConversion(hSar);
while(CSL_SAR_DATA_AVAILABLE != SAR_getStatus(hSar,&status));
status = SAR_readData(hSar, &readData);
@endverbatim
* ============================================================================
*/
Bool SAR_getStatus(
CSL_SarHandleObj *hSar,
CSL_Status *status
);
/**
@} */
#ifdef __cplusplus
}
#endif
#endif /* _CSL_SAR_H_ */