TIMEREMLIB

Detailed Description

Timer/Counter (TIMER) Peripheral API.

The timer module consists of three main parts:

  • General timer configuration and enable control.
  • Compare/capture control.
  • Dead time insertion control (may not be available for all timers).

Data Structures

struct  TIMER_Init_TypeDef
 
struct  TIMER_InitCC_TypeDef
 
struct  TIMER_InitDTI_TypeDef
 

Macros

#define TIMER_INIT_DEFAULT
 
#define TIMER_INITCC_DEFAULT
 
#define TIMER_INITDTI_DEFAULT
 
#define timerPRSSELCh0   0UL
 
#define timerPRSSELCh1   1UL
 
#define timerPRSSELCh10   10UL
 
#define timerPRSSELCh11   11UL
 
#define timerPRSSELCh2   2UL
 
#define timerPRSSELCh3   3UL
 
#define timerPRSSELCh4   4UL
 
#define timerPRSSELCh5   5UL
 
#define timerPRSSELCh6   6UL
 
#define timerPRSSELCh7   7UL
 
#define timerPRSSELCh8   8UL
 
#define timerPRSSELCh9   9UL
 

Typedefs

typedef uint8_t TIMER_PRSSEL_TypeDef
 

Enumerations

enum  TIMER_CCMode_TypeDef {
  timerCCModeOff = _TIMER_CC_CTRL_MODE_OFF,
  timerCCModeCapture = _TIMER_CC_CTRL_MODE_INPUTCAPTURE,
  timerCCModeCompare = _TIMER_CC_CTRL_MODE_OUTPUTCOMPARE,
  timerCCModePWM = _TIMER_CC_CTRL_MODE_PWM
}
 
enum  TIMER_ClkSel_TypeDef {
  timerClkSelHFPerClk = _TIMER_CTRL_CLKSEL_PRESCHFPERCLK,
  timerClkSelCC1 = _TIMER_CTRL_CLKSEL_CC1,
  timerClkSelCascade = _TIMER_CTRL_CLKSEL_TIMEROUF
}
 
enum  TIMER_DtiFaultAction_TypeDef {
  timerDtiFaultActionNone = _TIMER_DTFC_DTFA_NONE,
  timerDtiFaultActionInactive = _TIMER_DTFC_DTFA_INACTIVE,
  timerDtiFaultActionClear = _TIMER_DTFC_DTFA_CLEAR,
  timerDtiFaultActionTristate = _TIMER_DTFC_DTFA_TRISTATE
}
 
enum  TIMER_Edge_TypeDef {
  timerEdgeRising = _TIMER_CC_CTRL_ICEDGE_RISING,
  timerEdgeFalling = _TIMER_CC_CTRL_ICEDGE_FALLING,
  timerEdgeBoth = _TIMER_CC_CTRL_ICEDGE_BOTH,
  timerEdgeNone = _TIMER_CC_CTRL_ICEDGE_NONE
}
 
enum  TIMER_Event_TypeDef {
  timerEventEveryEdge = _TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE,
  timerEventEvery2ndEdge = _TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE,
  timerEventRising = _TIMER_CC_CTRL_ICEVCTRL_RISING,
  timerEventFalling = _TIMER_CC_CTRL_ICEVCTRL_FALLING
}
 
enum  TIMER_InputAction_TypeDef {
  timerInputActionNone = _TIMER_CTRL_FALLA_NONE,
  timerInputActionStart = _TIMER_CTRL_FALLA_START,
  timerInputActionStop = _TIMER_CTRL_FALLA_STOP,
  timerInputActionReloadStart = _TIMER_CTRL_FALLA_RELOADSTART
}
 
enum  TIMER_Mode_TypeDef {
  timerModeUp = _TIMER_CTRL_MODE_UP,
  timerModeDown = _TIMER_CTRL_MODE_DOWN,
  timerModeUpDown = _TIMER_CTRL_MODE_UPDOWN,
  timerModeQDec = _TIMER_CTRL_MODE_QDEC
}
 
enum  TIMER_OutputAction_TypeDef {
  timerOutputActionNone = _TIMER_CC_CTRL_CUFOA_NONE,
  timerOutputActionToggle = _TIMER_CC_CTRL_CUFOA_TOGGLE,
  timerOutputActionClear = _TIMER_CC_CTRL_CUFOA_CLEAR,
  timerOutputActionSet = _TIMER_CC_CTRL_CUFOA_SET
}
 
enum  TIMER_Prescale_TypeDef {
  timerPrescale1 = _TIMER_CTRL_PRESC_DIV1,
  timerPrescale2 = _TIMER_CTRL_PRESC_DIV2,
  timerPrescale4 = _TIMER_CTRL_PRESC_DIV4,
  timerPrescale8 = _TIMER_CTRL_PRESC_DIV8,
  timerPrescale16 = _TIMER_CTRL_PRESC_DIV16,
  timerPrescale32 = _TIMER_CTRL_PRESC_DIV32,
  timerPrescale64 = _TIMER_CTRL_PRESC_DIV64,
  timerPrescale128 = _TIMER_CTRL_PRESC_DIV128,
  timerPrescale256 = _TIMER_CTRL_PRESC_DIV256,
  timerPrescale512 = _TIMER_CTRL_PRESC_DIV512,
  timerPrescale1024 = _TIMER_CTRL_PRESC_DIV1024
}
 
enum  TIMER_PrsOutput_t {
  timerPrsOutputPulse = 0,
  timerPrsOutputLevel = 1,
  timerPrsOutputDefault = timerPrsOutputPulse
}
 

Functions

__STATIC_INLINE uint32_t TIMER_CaptureBufGet (TIMER_TypeDef *timer, unsigned int ch)
 Get buffered compare/capture value for compare/capture channel.
 
__STATIC_INLINE uint32_t TIMER_CaptureGet (TIMER_TypeDef *timer, unsigned int ch)
 Get compare/capture value for compare/capture channel.
 
__STATIC_INLINE void TIMER_ClearDTIFault (TIMER_TypeDef *timer, uint32_t flags)
 Clear DTI fault source flags.
 
__STATIC_INLINE void TIMER_CompareBufSet (TIMER_TypeDef *timer, unsigned int ch, uint32_t val)
 Set compare value buffer for compare/capture channel when operating in compare or PWM mode.
 
__STATIC_INLINE void TIMER_CompareSet (TIMER_TypeDef *timer, unsigned int ch, uint32_t val)
 Set compare value for compare/capture channel when operating in compare or PWM mode.
 
__STATIC_INLINE uint32_t TIMER_CounterGet (TIMER_TypeDef *timer)
 Get TIMER counter value.
 
__STATIC_INLINE void TIMER_CounterSet (TIMER_TypeDef *timer, uint32_t val)
 Set TIMER counter value.
 
__STATIC_INLINE void TIMER_Enable (TIMER_TypeDef *timer, bool enable)
 Start/stop TIMER.
 
__STATIC_INLINE void TIMER_EnableDTI (TIMER_TypeDef *timer, bool enable)
 Enable or disable DTI unit.
 
__STATIC_INLINE uint32_t TIMER_GetDTIFault (TIMER_TypeDef *timer)
 Get DTI fault source flags status.
 
void TIMER_Init (TIMER_TypeDef *timer, const TIMER_Init_TypeDef *init)
 Initialize TIMER.
 
void TIMER_InitCC (TIMER_TypeDef *timer, unsigned int ch, const TIMER_InitCC_TypeDef *init)
 Initialize the TIMER compare/capture channel.
 
void TIMER_InitDTI (TIMER_TypeDef *timer, const TIMER_InitDTI_TypeDef *init)
 Initialize the TIMER DTI unit.
 
__STATIC_INLINE void TIMER_IntClear (TIMER_TypeDef *timer, uint32_t flags)
 Clear one or more pending TIMER interrupts.
 
__STATIC_INLINE void TIMER_IntDisable (TIMER_TypeDef *timer, uint32_t flags)
 Disable one or more TIMER interrupts.
 
__STATIC_INLINE void TIMER_IntEnable (TIMER_TypeDef *timer, uint32_t flags)
 Enable one or more TIMER interrupts.
 
__STATIC_INLINE uint32_t TIMER_IntGet (TIMER_TypeDef *timer)
 Get pending TIMER interrupt flags.
 
__STATIC_INLINE uint32_t TIMER_IntGetEnabled (TIMER_TypeDef *timer)
 Get enabled and pending TIMER interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.
 
__STATIC_INLINE void TIMER_IntSet (TIMER_TypeDef *timer, uint32_t flags)
 Set one or more pending TIMER interrupts from SW.
 
__STATIC_INLINE void TIMER_Lock (TIMER_TypeDef *timer)
 Lock some of the TIMER registers in order to protect them from being modified.
 
__STATIC_INLINE uint32_t TIMER_MaxCount (const TIMER_TypeDef *ref)
 Get the Max count of the timer.
 
void TIMER_Reset (TIMER_TypeDef *timer)
 Reset the TIMER to the same state that it was in after a hardware reset.
 
__STATIC_INLINE void TIMER_TopBufSet (TIMER_TypeDef *timer, uint32_t val)
 Set top value buffer for timer.
 
__STATIC_INLINE uint32_t TIMER_TopGet (TIMER_TypeDef *timer)
 Get top value setting for timer.
 
__STATIC_INLINE void TIMER_TopSet (TIMER_TypeDef *timer, uint32_t val)
 Set top value for timer.
 
__STATIC_INLINE void TIMER_Unlock (TIMER_TypeDef *timer)
 Unlock TIMER to enable writing to locked registers again.
 
__STATIC_INLINE bool TIMER_Valid (const TIMER_TypeDef *ref)
 Validate TIMER register block pointer.
 

Macro Definition Documentation

#define TIMER_INIT_DEFAULT
Value:
{ \
true, /* Enable timer when initialization completes. */ \
false, /* Stop counter during debug halt. */ \
timerPrescale1, /* No prescaling. */ \
timerClkSelHFPerClk, /* Select HFPER clock. */ \
false, /* Not 2x count mode. */ \
false, /* No ATI. */ \
timerInputActionNone, /* No action on falling input edge. */ \
timerInputActionNone, /* No action on rising input edge. */ \
timerModeUp, /* Up-counting. */ \
false, /* Do not clear DMA requests when DMA channel is active. */ \
false, /* Select X2 quadrature decode mode (if used). */ \
false, /* Disable one shot. */ \
false /* Not started/stopped/reloaded by other timers. */ \
}

Default configuration for TIMER initialization structure.

Definition at line 317 of file em_timer.h.

Referenced by BOARD_init(), and USTIMER_Init().

#define TIMER_INITCC_DEFAULT
Value:
{ \
timerEventEveryEdge, /* Event on every capture. */ \
timerEdgeRising, /* Input capture edge on rising edge. */ \
0, /* Not used by default, select PRS channel 0. */ \
timerOutputActionNone, /* No action on underflow. */ \
timerOutputActionNone, /* No action on overflow. */ \
timerOutputActionNone, /* No action on match. */ \
timerCCModeOff, /* Disable compare/capture channel. */ \
false, /* Disable filter. */ \
false, /* No PRS input. */ \
false, /* Clear output when counter disabled. */ \
false, /* Do not invert output. */ \
timerPrsOutputDefault, /* Use default PRS output configuration. */ \
}

Default configuration for TIMER compare/capture initialization structure.

Definition at line 433 of file em_timer.h.

Referenced by BOARD_init(), and USTIMER_Init().

#define TIMER_INITDTI_DEFAULT
Value:
{ \
true, /* Enable the DTI. */ \
false, /* CC[0|1|2] outputs are active high. */ \
false, /* CDTI[0|1|2] outputs are not inverted. */ \
false, /* No auto restart when debugger exits. */ \
false, /* No PRS source selected. */ \
0, /* Not used by default, select PRS channel 0. */ \
timerPrescale1, /* No prescaling. */ \
0, /* No rise time. */ \
0, /* No fall time. */ \
TIMER_DTOGEN_DTOGCC0EN | TIMER_DTOGEN_DTOGCDTI0EN, /* Enable CC0 and CDTI0. */ \
true, /* Enable core lockup as fault source. */ \
true, /* Enable debugger as fault source. */ \
false, /* Disable PRS fault source 0. */ \
0, /* Not used by default, select PRS channel 0. */ \
false, /* Disable PRS fault source 1. */ \
0, /* Not used by default, select PRS channel 0. */ \
timerDtiFaultActionInactive, /* No fault action. */ \
}
#define TIMER_DTOGEN_DTOGCDTI0EN
Definition: efm32pg1b_timer.h:1502

Default configuration for TIMER DTI initialization structure.

Definition at line 510 of file em_timer.h.

#define timerPRSSELCh0   0UL

Deprecated PRS channel selector. New code should use an integer instead of using these deprecated enum values.

Definition at line 226 of file em_timer.h.

Typedef Documentation

typedef uint8_t TIMER_PRSSEL_TypeDef

Peripheral Reflex System signal.

Definition at line 222 of file em_timer.h.

Enumeration Type Documentation

Timer compare/capture mode.

Enumerator
timerCCModeOff 

Channel turned off.

timerCCModeCapture 

Input capture.

timerCCModeCompare 

Output compare.

timerCCModePWM 

Pulse-Width modulation.

Definition at line 83 of file em_timer.h.

Clock select.

Enumerator
timerClkSelHFPerClk 

Prescaled HFPER clock.

timerClkSelCC1 

Compare/Capture Channel 1 Input.

timerClkSelCascade 

Cascaded clocked by underflow or overflow by lower numbered timer.

Definition at line 99 of file em_timer.h.

DT (Dead Time) Fault Actions.

Enumerator
timerDtiFaultActionNone 

No action on fault.

timerDtiFaultActionInactive 

Set outputs inactive.

timerDtiFaultActionClear 

Clear outputs.

timerDtiFaultActionTristate 

Tristate outputs.

Definition at line 250 of file em_timer.h.

Input capture edge select.

Enumerator
timerEdgeRising 

Rising edges detected.

timerEdgeFalling 

Falling edges detected.

timerEdgeBoth 

Both edges detected.

timerEdgeNone 

No edge detection, leave signal as is.

Definition at line 113 of file em_timer.h.

Input capture event control.

Enumerator
timerEventEveryEdge 

PRS output pulse, interrupt flag, and DMA request set on every capture.

timerEventEvery2ndEdge 

PRS output pulse, interrupt flag, and DMA request set on every second capture.

timerEventRising 

PRS output pulse, interrupt flag, and DMA request set on rising edge (if input capture edge = BOTH).

timerEventFalling 

PRS output pulse, interrupt flag, and DMA request set on falling edge (if input capture edge = BOTH).

Definition at line 128 of file em_timer.h.

Input edge action.

Enumerator
timerInputActionNone 

No action taken.

timerInputActionStart 

Start counter without reload.

timerInputActionStop 

Stop counter without reload.

timerInputActionReloadStart 

Reload and start counter.

Definition at line 146 of file em_timer.h.

Timer mode.

Enumerator
timerModeUp 

Up-counting.

timerModeDown 

Down-counting.

timerModeUpDown 

Up/down-counting.

timerModeQDec 

Quadrature decoder.

Definition at line 161 of file em_timer.h.

Compare/capture output action.

Enumerator
timerOutputActionNone 

No action.

timerOutputActionToggle 

Toggle on event.

timerOutputActionClear 

Clear on event.

timerOutputActionSet 

Set on event.

Definition at line 177 of file em_timer.h.

Prescaler.

Enumerator
timerPrescale1 

Divide by 1.

timerPrescale2 

Divide by 2.

timerPrescale4 

Divide by 4.

timerPrescale8 

Divide by 8.

timerPrescale16 

Divide by 16.

timerPrescale32 

Divide by 32.

timerPrescale64 

Divide by 64.

timerPrescale128 

Divide by 128.

timerPrescale256 

Divide by 256.

timerPrescale512 

Divide by 512.

timerPrescale1024 

Divide by 1024.

Definition at line 192 of file em_timer.h.

PRS Output configuration.

Enumerator
timerPrsOutputPulse 

Pulse PRS output from a channel.

timerPrsOutputLevel 

PRS output follows CC out level.

timerPrsOutputDefault 

Default PRS output behavior.

Definition at line 351 of file em_timer.h.

Function Documentation

__STATIC_INLINE uint32_t TIMER_CaptureBufGet ( TIMER_TypeDef timer,
unsigned int  ch 
)

Get buffered compare/capture value for compare/capture channel.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]chCompare/capture channel to access.
Returns
Current buffered capture value.

Definition at line 654 of file em_timer.h.

References TIMER_TypeDef::CC, and TIMER_CC_TypeDef::CCVB.

__STATIC_INLINE uint32_t TIMER_CaptureGet ( TIMER_TypeDef timer,
unsigned int  ch 
)

Get compare/capture value for compare/capture channel.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]chCompare/capture channel to access.
Returns
Current capture value.

Definition at line 628 of file em_timer.h.

References TIMER_TypeDef::CC, and TIMER_CC_TypeDef::CCV.

__STATIC_INLINE void TIMER_ClearDTIFault ( TIMER_TypeDef timer,
uint32_t  flags 
)

Clear DTI fault source flags.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]flagsDTI fault source(s) to clear. Use one or more valid DTI fault source flags (TIMER_DTFAULT_nnn) OR'ed together.

Definition at line 858 of file em_timer.h.

References TIMER_TypeDef::DTFAULTC, and TIMER0.

Referenced by TIMER_InitDTI().

__STATIC_INLINE void TIMER_CompareBufSet ( TIMER_TypeDef timer,
unsigned int  ch,
uint32_t  val 
)

Set compare value buffer for compare/capture channel when operating in compare or PWM mode.

The compare value buffer holds the value which will be written to TIMERn_CCx_CCV on an update event if the buffer has been updated since the last event.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]chCompare/capture channel to access.
[in]valValue to set in compare value buffer register.

Definition at line 686 of file em_timer.h.

References TIMER_TypeDef::CC, TIMER_CC_TypeDef::CCVB, and TIMER_MaxCount().

Referenced by BOARD_rgbledSetRawColor().

__STATIC_INLINE void TIMER_CompareSet ( TIMER_TypeDef timer,
unsigned int  ch,
uint32_t  val 
)

Set compare value for compare/capture channel when operating in compare or PWM mode.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]chCompare/capture channel to access.
[in]valValue to set in compare value register.

Definition at line 713 of file em_timer.h.

References TIMER_TypeDef::CC, TIMER_CC_TypeDef::CCV, and TIMER_MaxCount().

__STATIC_INLINE uint32_t TIMER_CounterGet ( TIMER_TypeDef timer)

Get TIMER counter value.

Parameters
[in]timerPointer to TIMER peripheral register block.
Returns
Current TIMER counter value.

Definition at line 736 of file em_timer.h.

References TIMER_TypeDef::CNT.

__STATIC_INLINE void TIMER_CounterSet ( TIMER_TypeDef timer,
uint32_t  val 
)

Set TIMER counter value.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]valValue to set counter to.

Definition at line 751 of file em_timer.h.

References TIMER_TypeDef::CNT, and TIMER_MaxCount().

__STATIC_INLINE void TIMER_Enable ( TIMER_TypeDef timer,
bool  enable 
)

Start/stop TIMER.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]enableSet to true to enable counting; set to false otherwise.

Definition at line 776 of file em_timer.h.

References TIMER_TypeDef::CMD, TIMER_CMD_START, and TIMER_CMD_STOP.

Referenced by BOARD_rgbledSetRawColor(), and USTIMER_DeInit().

__STATIC_INLINE void TIMER_EnableDTI ( TIMER_TypeDef timer,
bool  enable 
)

Enable or disable DTI unit.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]enableSet to true to enable DTI unit; set to false otherwise.

Definition at line 805 of file em_timer.h.

References TIMER_TypeDef::DTCTRL, TIMER0, and TIMER_DTCTRL_DTEN.

Referenced by TIMER_InitDTI().

__STATIC_INLINE uint32_t TIMER_GetDTIFault ( TIMER_TypeDef timer)

Get DTI fault source flags status.

Note
Event bits are not cleared by this function.
Parameters
[in]timerPointer to TIMER peripheral register block.
Returns
Status of the DTI fault source flags. Returns one or more valid DTI fault source flags (TIMER_DTFAULT_nnn) OR'ed together.

Definition at line 841 of file em_timer.h.

References TIMER_TypeDef::DTFAULT, and TIMER0.

Referenced by TIMER_InitDTI().

void TIMER_Init ( TIMER_TypeDef timer,
const TIMER_Init_TypeDef init 
)

Initialize TIMER.

Notice that the counter top must be configured separately with, for instance TIMER_TopSet(). In addition, compare/capture and dead-time insertion initialization must be initialized separately if used, which should probably be done prior to using this function if configuring the TIMER to start when initialization is completed.

Parameters
[in]timerA pointer to the TIMER peripheral register block.
[in]initA pointer to the TIMER initialization structure.

Definition at line 148 of file em_timer.c.

References _TIMER_CNT_RESETVALUE, _TIMER_CTRL_CLKSEL_SHIFT, _TIMER_CTRL_FALLA_SHIFT, _TIMER_CTRL_MODE_SHIFT, _TIMER_CTRL_PRESC_SHIFT, _TIMER_CTRL_RISEA_SHIFT, TIMER_Init_TypeDef::ati, TIMER_Init_TypeDef::clkSel, TIMER_TypeDef::CMD, TIMER_TypeDef::CNT, TIMER_Init_TypeDef::count2x, TIMER_TypeDef::CTRL, TIMER_Init_TypeDef::debugRun, TIMER_Init_TypeDef::dmaClrAct, TIMER_Init_TypeDef::enable, TIMER_Init_TypeDef::fallAction, TIMER_Init_TypeDef::mode, TIMER_Init_TypeDef::oneShot, TIMER_Init_TypeDef::prescale, TIMER_Init_TypeDef::quadModeX4, TIMER_Init_TypeDef::riseAction, TIMER_Init_TypeDef::sync, TIMER_CMD_START, TIMER_CMD_STOP, TIMER_CTRL_ATI, TIMER_CTRL_DEBUGRUN, TIMER_CTRL_DMACLRACT, TIMER_CTRL_OSMEN, TIMER_CTRL_QDM_X4, TIMER_CTRL_SYNC, and TIMER_CTRL_X2CNT.

Referenced by BOARD_init(), and USTIMER_Init().

void TIMER_InitCC ( TIMER_TypeDef timer,
unsigned int  ch,
const TIMER_InitCC_TypeDef init 
)

Initialize the TIMER compare/capture channel.

Notice that if operating the channel in compare mode, the CCV and CCVB register must be set separately, as required.

Parameters
[in]timerA pointer to the TIMER peripheral register block.
[in]chA compare/capture channel to initialize for.
[in]initA pointer to the TIMER initialization structure.

Definition at line 221 of file em_timer.c.

References _TIMER_CC_CTRL_CMOA_SHIFT, _TIMER_CC_CTRL_COFOA_SHIFT, _TIMER_CC_CTRL_CUFOA_SHIFT, _TIMER_CC_CTRL_ICEDGE_SHIFT, _TIMER_CC_CTRL_ICEVCTRL_SHIFT, _TIMER_CC_CTRL_MODE_SHIFT, _TIMER_CC_CTRL_PRSCONF_SHIFT, _TIMER_CC_CTRL_PRSSEL_SHIFT, TIMER_TypeDef::CC, TIMER_InitCC_TypeDef::cmoa, TIMER_InitCC_TypeDef::cofoa, TIMER_InitCC_TypeDef::coist, TIMER_CC_TypeDef::CTRL, TIMER_InitCC_TypeDef::cufoa, TIMER_InitCC_TypeDef::edge, TIMER_InitCC_TypeDef::eventCtrl, TIMER_InitCC_TypeDef::filter, TIMER_InitCC_TypeDef::mode, TIMER_InitCC_TypeDef::outInvert, TIMER_InitCC_TypeDef::prsInput, TIMER_InitCC_TypeDef::prsOutput, TIMER_InitCC_TypeDef::prsSel, TIMER_CC_CTRL_COIST, TIMER_CC_CTRL_FILT_ENABLE, TIMER_CC_CTRL_INSEL_PRS, and TIMER_CC_CTRL_OUTINV.

Referenced by BOARD_init(), and USTIMER_Init().

void TIMER_InitDTI ( TIMER_TypeDef timer,
const TIMER_InitDTI_TypeDef init 
)
__STATIC_INLINE void TIMER_IntClear ( TIMER_TypeDef timer,
uint32_t  flags 
)

Clear one or more pending TIMER interrupts.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]flagsPending TIMER interrupt source(s) to clear. Use one or more valid interrupt flags for the TIMER module (TIMER_IF_nnn) OR'ed together.

Definition at line 881 of file em_timer.h.

References TIMER_TypeDef::IFC.

Referenced by USTIMER_DeInit().

__STATIC_INLINE void TIMER_IntDisable ( TIMER_TypeDef timer,
uint32_t  flags 
)

Disable one or more TIMER interrupts.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]flagsTIMER interrupt source(s) to disable. Use one or more valid interrupt flags for the TIMER module (TIMER_IF_nnn) OR'ed together.

Definition at line 901 of file em_timer.h.

References TIMER_TypeDef::IEN.

Referenced by USTIMER_DeInit(), and USTIMER_Init().

__STATIC_INLINE void TIMER_IntEnable ( TIMER_TypeDef timer,
uint32_t  flags 
)

Enable one or more TIMER interrupts.

Note
Depending on the use, a pending interrupt may already be set prior to enabling the interrupt. To ignore a pending interrupt, consider using TIMER_IntClear() prior to enabling the interrupt.
Parameters
[in]timerPointer to TIMER peripheral register block.
[in]flagsTIMER interrupt source(s) to enable. Use one or more valid interrupt flags for the TIMER module (TIMER_IF_nnn) OR'ed together.

Definition at line 923 of file em_timer.h.

References TIMER_TypeDef::IEN.

__STATIC_INLINE uint32_t TIMER_IntGet ( TIMER_TypeDef timer)

Get pending TIMER interrupt flags.

Note
Event bits are not cleared by this function.
Parameters
[in]timerPointer to TIMER peripheral register block.
Returns
TIMER interrupt source(s) pending. Returns one or more valid interrupt flags for the TIMER module (TIMER_IF_nnn) OR'ed together.

Definition at line 942 of file em_timer.h.

References TIMER_TypeDef::IF.

__STATIC_INLINE uint32_t TIMER_IntGetEnabled ( TIMER_TypeDef timer)

Get enabled and pending TIMER interrupt flags. Useful for handling more interrupt sources in the same interrupt handler.

Parameters
[in]timerPointer to TIMER peripheral register block.
Note
Interrupt flags are not cleared by this function.
Returns
Pending and enabled TIMER interrupt sources. The return value is the bitwise AND combination of
  • the OR combination of enabled interrupt sources in TIMERx_IEN_nnn register (TIMERx_IEN_nnn) and
  • the OR combination of valid interrupt flags of the TIMER module (TIMERx_IF_nnn).

Definition at line 966 of file em_timer.h.

References TIMER_TypeDef::IEN, and TIMER_TypeDef::IF.

__STATIC_INLINE void TIMER_IntSet ( TIMER_TypeDef timer,
uint32_t  flags 
)

Set one or more pending TIMER interrupts from SW.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]flagsTIMER interrupt source(s) to set to pending. Use one or more valid interrupt flags for the TIMER module (TIMER_IF_nnn) OR'ed together.

Definition at line 989 of file em_timer.h.

References TIMER_TypeDef::IFS.

__STATIC_INLINE void TIMER_Lock ( TIMER_TypeDef timer)

Lock some of the TIMER registers in order to protect them from being modified.

Refer to the reference manual for TIMER registers that will be locked.

Note
If locking the TIMER registers, they must be unlocked prior to using any TIMER API function that modifies TIMER registers protected by the lock.
Parameters
[in]timerPointer to TIMER peripheral register block.

Definition at line 1014 of file em_timer.h.

References TIMER_TypeDef::DTLOCK, TIMER0, and TIMER_DTLOCK_LOCKKEY_LOCK.

__STATIC_INLINE uint32_t TIMER_MaxCount ( const TIMER_TypeDef ref)

Get the Max count of the timer.

Parameters
[in]timerPointer to TIMER peripheral register block.
Returns
The max count value of the timer. This is 0xFFFF for 16 bit timers and 0xFFFFFFFF for 32 bit timers.

Definition at line 593 of file em_timer.h.

Referenced by TIMER_CompareBufSet(), TIMER_CompareSet(), TIMER_CounterSet(), TIMER_TopBufSet(), and TIMER_TopSet().

__STATIC_INLINE void TIMER_TopBufSet ( TIMER_TypeDef timer,
uint32_t  val 
)

Set top value buffer for timer.

When top value buffer register is updated, value is loaded into top value register at the next wrap around. This feature is useful in order to update top value safely when timer is running.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]valValue to set in top value buffer register.

Definition at line 1042 of file em_timer.h.

References TIMER_MaxCount(), and TIMER_TypeDef::TOPB.

__STATIC_INLINE uint32_t TIMER_TopGet ( TIMER_TypeDef timer)

Get top value setting for timer.

Parameters
[in]timerPointer to TIMER peripheral register block.
Returns
Current top value.

Definition at line 1062 of file em_timer.h.

References TIMER_TypeDef::TOP.

__STATIC_INLINE void TIMER_TopSet ( TIMER_TypeDef timer,
uint32_t  val 
)

Set top value for timer.

Parameters
[in]timerPointer to TIMER peripheral register block.
[in]valValue to set in top value register.

Definition at line 1077 of file em_timer.h.

References TIMER_MaxCount(), and TIMER_TypeDef::TOP.

Referenced by BOARD_init(), and USTIMER_Init().

__STATIC_INLINE void TIMER_Unlock ( TIMER_TypeDef timer)

Unlock TIMER to enable writing to locked registers again.

Parameters
[in]timerPointer to TIMER peripheral register block.

Definition at line 1095 of file em_timer.h.

References TIMER_TypeDef::DTLOCK, TIMER0, and TIMER_DTLOCK_LOCKKEY_UNLOCK.

__STATIC_INLINE bool TIMER_Valid ( const TIMER_TypeDef ref)

Validate TIMER register block pointer.

Parameters
[in]refPointer to TIMER peripheral register block.
Returns
True if ref points to a valid timer, false otherwise.

Definition at line 546 of file em_timer.h.

References TIMER0, and TIMER1.