EFM32 Pearl Gecko Software Documentation  efm32pg1-doc-4.2.1

Current Digital to Analog Conversion (IDAC) Peripheral API

. More...

Data Structures

struct  IDAC_Init_TypeDef
 

Macros

#define IDAC_INIT_DEFAULT
 

Enumerations

enum  IDAC_OutMode_TypeDef {
  idacOutputAPORT1XCH0 = IDAC_CTRL_APORTOUTSEL_APORT1XCH0,
  idacOutputAPORT1YCH1 = IDAC_CTRL_APORTOUTSEL_APORT1YCH1,
  idacOutputAPORT1XCH2 = IDAC_CTRL_APORTOUTSEL_APORT1XCH2,
  idacOutputAPORT1YCH3 = IDAC_CTRL_APORTOUTSEL_APORT1YCH3,
  idacOutputAPORT1XCH4 = IDAC_CTRL_APORTOUTSEL_APORT1XCH4,
  idacOutputAPORT1YCH5 = IDAC_CTRL_APORTOUTSEL_APORT1YCH5,
  idacOutputAPORT1XCH6 = IDAC_CTRL_APORTOUTSEL_APORT1XCH6,
  idacOutputAPORT1YCH7 = IDAC_CTRL_APORTOUTSEL_APORT1YCH7,
  idacOutputAPORT1XCH8 = IDAC_CTRL_APORTOUTSEL_APORT1XCH8,
  idacOutputAPORT1YCH9 = IDAC_CTRL_APORTOUTSEL_APORT1YCH9,
  idacOutputAPORT1XCH10 = IDAC_CTRL_APORTOUTSEL_APORT1XCH10,
  idacOutputAPORT1YCH11 = IDAC_CTRL_APORTOUTSEL_APORT1YCH11,
  idacOutputAPORT1XCH12 = IDAC_CTRL_APORTOUTSEL_APORT1XCH12,
  idacOutputAPORT1YCH13 = IDAC_CTRL_APORTOUTSEL_APORT1YCH13,
  idacOutputAPORT1XCH14 = IDAC_CTRL_APORTOUTSEL_APORT1XCH14,
  idacOutputAPORT1YCH15 = IDAC_CTRL_APORTOUTSEL_APORT1YCH15,
  idacOutputAPORT1XCH16 = IDAC_CTRL_APORTOUTSEL_APORT1XCH16,
  idacOutputAPORT1YCH17 = IDAC_CTRL_APORTOUTSEL_APORT1YCH17,
  idacOutputAPORT1XCH18 = IDAC_CTRL_APORTOUTSEL_APORT1XCH18,
  idacOutputAPORT1YCH19 = IDAC_CTRL_APORTOUTSEL_APORT1YCH19,
  idacOutputAPORT1XCH20 = IDAC_CTRL_APORTOUTSEL_APORT1XCH20,
  idacOutputAPORT1YCH21 = IDAC_CTRL_APORTOUTSEL_APORT1YCH21,
  idacOutputAPORT1XCH22 = IDAC_CTRL_APORTOUTSEL_APORT1XCH22,
  idacOutputAPORT1YCH23 = IDAC_CTRL_APORTOUTSEL_APORT1YCH23,
  idacOutputAPORT1XCH24 = IDAC_CTRL_APORTOUTSEL_APORT1XCH24,
  idacOutputAPORT1YCH25 = IDAC_CTRL_APORTOUTSEL_APORT1YCH25,
  idacOutputAPORT1XCH26 = IDAC_CTRL_APORTOUTSEL_APORT1XCH26,
  idacOutputAPORT1YCH27 = IDAC_CTRL_APORTOUTSEL_APORT1YCH27,
  idacOutputAPORT1XCH28 = IDAC_CTRL_APORTOUTSEL_APORT1XCH28,
  idacOutputAPORT1YCH29 = IDAC_CTRL_APORTOUTSEL_APORT1YCH29,
  idacOutputAPORT1XCH30 = IDAC_CTRL_APORTOUTSEL_APORT1XCH30,
  idacOutputAPORT1YCH31 = IDAC_CTRL_APORTOUTSEL_APORT1YCH31
}
 
enum  IDAC_PRSSEL_TypeDef {
  idacPRSSELCh0 = IDAC_CTRL_PRSSEL_PRSCH0,
  idacPRSSELCh1 = IDAC_CTRL_PRSSEL_PRSCH1,
  idacPRSSELCh2 = IDAC_CTRL_PRSSEL_PRSCH2,
  idacPRSSELCh3 = IDAC_CTRL_PRSSEL_PRSCH3,
  idacPRSSELCh4 = IDAC_CTRL_PRSSEL_PRSCH4,
  idacPRSSELCh5 = IDAC_CTRL_PRSSEL_PRSCH5,
  idacPRSSELCh6 = IDAC_CTRL_PRSSEL_PRSCH6,
  idacPRSSELCh7 = IDAC_CTRL_PRSSEL_PRSCH7,
  idacPRSSELCh8 = IDAC_CTRL_PRSSEL_PRSCH8,
  idacPRSSELCh9 = IDAC_CTRL_PRSSEL_PRSCH9,
  idacPRSSELCh10 = IDAC_CTRL_PRSSEL_PRSCH10,
  idacPRSSELCh11 = IDAC_CTRL_PRSSEL_PRSCH11
}
 
enum  IDAC_Range_TypeDef {
  idacCurrentRange0 = IDAC_CURPROG_RANGESEL_RANGE0,
  idacCurrentRange1 = IDAC_CURPROG_RANGESEL_RANGE1,
  idacCurrentRange2 = IDAC_CURPROG_RANGESEL_RANGE2,
  idacCurrentRange3 = IDAC_CURPROG_RANGESEL_RANGE3
}
 

Functions

void IDAC_Init (IDAC_TypeDef *idac, const IDAC_Init_TypeDef *init)
 Initialize IDAC. More...
 
void IDAC_Enable (IDAC_TypeDef *idac, bool enable)
 Enable/disable IDAC. More...
 
void IDAC_Reset (IDAC_TypeDef *idac)
 Reset IDAC to same state as after a HW reset. More...
 
void IDAC_MinimalOutputTransitionMode (IDAC_TypeDef *idac, bool enable)
 Enable/disable Minimal Output Transition mode. More...
 
void IDAC_RangeSet (IDAC_TypeDef *idac, const IDAC_Range_TypeDef range)
 Set the current range of the IDAC output. More...
 
void IDAC_StepSet (IDAC_TypeDef *idac, const uint32_t step)
 Set the current step of the IDAC output. More...
 
void IDAC_OutEnable (IDAC_TypeDef *idac, bool enable)
 Enable/disable the IDAC OUT pin. More...
 
__STATIC_INLINE void IDAC_IntClear (IDAC_TypeDef *idac, uint32_t flags)
 Clear one or more pending IDAC interrupts. More...
 
__STATIC_INLINE void IDAC_IntDisable (IDAC_TypeDef *idac, uint32_t flags)
 Disable one or more IDAC interrupts. More...
 
__STATIC_INLINE void IDAC_IntEnable (IDAC_TypeDef *idac, uint32_t flags)
 Enable one or more IDAC interrupts. More...
 
__STATIC_INLINE uint32_t IDAC_IntGet (IDAC_TypeDef *idac)
 Get pending IDAC interrupt flags. More...
 
__STATIC_INLINE uint32_t IDAC_IntGetEnabled (IDAC_TypeDef *idac)
 Get enabled and pending IDAC interrupt flags. Useful for handling more interrupt sources in the same interrupt handler. More...
 
__STATIC_INLINE void IDAC_IntSet (IDAC_TypeDef *idac, uint32_t flags)
 Set one or more pending IDAC interrupts from SW. More...
 

Detailed Description

Macro Definition Documentation

#define IDAC_INIT_DEFAULT
Value:

Default config for IDAC init structure.

Definition at line 183 of file em_idac.h.

Enumeration Type Documentation

Output mode.

Enumerator
idacOutputAPORT1XCH0 

Output to APORT 1X CH0

idacOutputAPORT1YCH1 

Output to APORT 1Y CH1

idacOutputAPORT1XCH2 

Output to APORT 1X CH2

idacOutputAPORT1YCH3 

Output to APORT 1Y CH3

idacOutputAPORT1XCH4 

Output to APORT 1X CH4

idacOutputAPORT1YCH5 

Output to APORT 1Y CH5

idacOutputAPORT1XCH6 

Output to APORT 1X CH6

idacOutputAPORT1YCH7 

Output to APORT 1Y CH7

idacOutputAPORT1XCH8 

Output to APORT 1X CH8

idacOutputAPORT1YCH9 

Output to APORT 1Y CH9

idacOutputAPORT1XCH10 

Output to APORT 1X CH10

idacOutputAPORT1YCH11 

Output to APORT 1Y CH11

idacOutputAPORT1XCH12 

Output to APORT 1X CH12

idacOutputAPORT1YCH13 

Output to APORT 1Y CH13

idacOutputAPORT1XCH14 

Output to APORT 1X CH14

idacOutputAPORT1YCH15 

Output to APORT 1Y CH15

idacOutputAPORT1XCH16 

Output to APORT 1X CH16

idacOutputAPORT1YCH17 

Output to APORT 1Y CH17

idacOutputAPORT1XCH18 

Output to APORT 1X CH18

idacOutputAPORT1YCH19 

Output to APORT 1Y CH19

idacOutputAPORT1XCH20 

Output to APORT 1X CH20

idacOutputAPORT1YCH21 

Output to APORT 1Y CH21

idacOutputAPORT1XCH22 

Output to APORT 1X CH22

idacOutputAPORT1YCH23 

Output to APORT 1Y CH23

idacOutputAPORT1XCH24 

Output to APORT 1X CH24

idacOutputAPORT1YCH25 

Output to APORT 1Y CH25

idacOutputAPORT1XCH26 

Output to APORT 1X CH26

idacOutputAPORT1YCH27 

Output to APORT 1Y CH27

idacOutputAPORT1XCH28 

Output to APORT 1X CH28

idacOutputAPORT1YCH29 

Output to APORT 1Y CH29

idacOutputAPORT1XCH30 

Output to APORT 1X CH30

idacOutputAPORT1YCH31 

Output to APORT 1Y CH31

Definition at line 67 of file em_idac.h.

Selects which Peripheral Reflex System (PRS) signal to use when PRS is set to control the IDAC output.

Enumerator
idacPRSSELCh0 

PRS channel 0.

idacPRSSELCh1 

PRS channel 1.

idacPRSSELCh2 

PRS channel 2.

idacPRSSELCh3 

PRS channel 3.

idacPRSSELCh4 

PRS channel 4.

idacPRSSELCh5 

PRS channel 5.

idacPRSSELCh6 

PRS channel 6.

idacPRSSELCh7 

PRS channel 7.

idacPRSSELCh8 

PRS channel 8.

idacPRSSELCh9 

PRS channel 9.

idacPRSSELCh10 

PRS channel 10

idacPRSSELCh11 

PRS channel 11

Definition at line 111 of file em_idac.h.

Selects which current range to use.

Enumerator
idacCurrentRange0 

current range 0.

idacCurrentRange1 

current range 1.

idacCurrentRange2 

current range 2.

idacCurrentRange3 

current range 3.

Definition at line 133 of file em_idac.h.

Function Documentation

void IDAC_Init ( IDAC_TypeDef idac,
const IDAC_Init_TypeDef init 
)

Initializes IDAC according to the initialization structure parameter, and sets the default calibration value stored in the DEVINFO structure.

Note
This function will disable the IDAC prior to configuration.
Parameters
[in]idacPointer to IDAC peripheral register block.
[in]initPointer to IDAC initialization structure.

Definition at line 77 of file em_idac.c.

References IDAC_TypeDef::CTRL, IDAC_Init_TypeDef::enable, IDAC_CTRL_CURSINK, IDAC_CTRL_EN, IDAC_CTRL_OUTENPRS, IDAC_Init_TypeDef::outMode, IDAC_Init_TypeDef::prsEnable, IDAC_Init_TypeDef::prsSel, and IDAC_Init_TypeDef::sinkEnable.

void IDAC_Enable ( IDAC_TypeDef idac,
bool  enable 
)
Parameters
[in]idacPointer to IDAC peripheral register block.
[in]enabletrue to enable IDAC, false to disable.

Definition at line 114 of file em_idac.c.

References _IDAC_CTRL_EN_SHIFT, BUS_RegBitWrite(), and IDAC_TypeDef::CTRL.

void IDAC_Reset ( IDAC_TypeDef idac)
void IDAC_MinimalOutputTransitionMode ( IDAC_TypeDef idac,
bool  enable 
)
Parameters
[in]idacPointer to IDAC peripheral register block.
[in]enabletrue to enable Minimal Output Transition mode, false to disable.

Definition at line 172 of file em_idac.c.

References _IDAC_CTRL_MINOUTTRANS_SHIFT, BUS_RegBitWrite(), and IDAC_TypeDef::CTRL.

void IDAC_StepSet ( IDAC_TypeDef idac,
const uint32_t  step 
)
Parameters
[in]idacPointer to IDAC peripheral register block.
[in]stepStep value for IDAC output. Valid range is 0-31.

Definition at line 333 of file em_idac.c.

References _IDAC_CURPROG_STEPSEL_MASK, _IDAC_CURPROG_STEPSEL_SHIFT, and IDAC_TypeDef::CURPROG.

void IDAC_OutEnable ( IDAC_TypeDef idac,
bool  enable 
)
Parameters
[in]idacPointer to IDAC peripheral register block.
[in]enabletrue to enable the IDAC OUT pin, false to disable.

Definition at line 357 of file em_idac.c.

References _IDAC_CTRL_OUTEN_SHIFT, BUS_RegBitWrite(), and IDAC_TypeDef::CTRL.

__STATIC_INLINE void IDAC_IntClear ( IDAC_TypeDef idac,
uint32_t  flags 
)
Parameters
[in]IDACPointer to IDAC peripheral register block.
[in]flagsPending IDAC interrupt source(s) to clear. Use one or more valid interrupt flags for the IDAC module (IDAC_IF_nnn) OR'ed together.

Definition at line 311 of file em_idac.h.

References IDAC_TypeDef::IFC.

__STATIC_INLINE void IDAC_IntDisable ( IDAC_TypeDef idac,
uint32_t  flags 
)
Parameters
[in]IDACPointer to IDAC peripheral register block.
[in]flagsIDAC interrupt source(s) to disable. Use one or more valid interrupt flags for the IDAC module (IDAC_IF_nnn) OR'ed together.

Definition at line 328 of file em_idac.h.

References IDAC_TypeDef::IEN.

__STATIC_INLINE void IDAC_IntEnable ( IDAC_TypeDef idac,
uint32_t  flags 
)
Note
Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. Consider using IDAC_IntClear() prior to enabling if such a pending interrupt should be ignored.
Parameters
[in]IDACPointer to IDAC peripheral register block.
[in]flagsIDAC interrupt source(s) to enable. Use one or more valid interrupt flags for the IDAC module (IDAC_IF_nnn) OR'ed together.

Definition at line 350 of file em_idac.h.

References IDAC_TypeDef::IEN.

__STATIC_INLINE uint32_t IDAC_IntGet ( IDAC_TypeDef idac)
Note
The event bits are not cleared by the use of this function.
Parameters
[in]IDACPointer to IDAC peripheral register block.
Returns
IDAC interrupt source(s) pending. Returns one or more valid interrupt flags for the IDAC module (IDAC_IF_nnn) OR'ed together.

Definition at line 370 of file em_idac.h.

References IDAC_TypeDef::IF.

__STATIC_INLINE uint32_t IDAC_IntGetEnabled ( IDAC_TypeDef idac)
Parameters
[in]IDACPointer to IDAC peripheral register block.
Note
Interrupt flags are not cleared by the use of this function.
Returns
Pending and enabled IDAC interrupt sources. The return value is the bitwise AND combination of
  • the OR combination of enabled interrupt sources in IDACx_IEN_nnn register (IDACx_IEN_nnn) and
  • the OR combination of valid interrupt flags of the IDAC module (IDACx_IF_nnn).

Definition at line 395 of file em_idac.h.

References IDAC_TypeDef::IEN, and IDAC_TypeDef::IF.

__STATIC_INLINE void IDAC_IntSet ( IDAC_TypeDef idac,
uint32_t  flags 
)
Parameters
[in]IDACPointer to IDAC peripheral register block.
[in]flagsIDAC interrupt source(s) to set to pending. Use one or more valid interrupt flags for the IDAC module (IDAC_IF_nnn) OR'ed together.

Definition at line 419 of file em_idac.h.

References IDAC_TypeDef::IFS.