CC3200 Peripheral Driver Library User's Guide  1.2.0
GPT_General_Purpose_Timer_api

Functions

void TimerEnable (unsigned long ulBase, unsigned long ulTimer)
 
void TimerDisable (unsigned long ulBase, unsigned long ulTimer)
 
void TimerConfigure (unsigned long ulBase, unsigned long ulConfig)
 
void TimerControlLevel (unsigned long ulBase, unsigned long ulTimer, tBoolean bInvert)
 
void TimerControlEvent (unsigned long ulBase, unsigned long ulTimer, unsigned long ulEvent)
 
void TimerControlStall (unsigned long ulBase, unsigned long ulTimer, tBoolean bStall)
 
void TimerPrescaleSet (unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue)
 
unsigned long TimerPrescaleGet (unsigned long ulBase, unsigned long ulTimer)
 
void TimerPrescaleMatchSet (unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue)
 
unsigned long TimerPrescaleMatchGet (unsigned long ulBase, unsigned long ulTimer)
 
void TimerLoadSet (unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue)
 
unsigned long TimerLoadGet (unsigned long ulBase, unsigned long ulTimer)
 
unsigned long TimerValueGet (unsigned long ulBase, unsigned long ulTimer)
 
void TimerValueSet (unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue)
 
void TimerMatchSet (unsigned long ulBase, unsigned long ulTimer, unsigned long ulValue)
 
unsigned long TimerMatchGet (unsigned long ulBase, unsigned long ulTimer)
 
void TimerIntRegister (unsigned long ulBase, unsigned long ulTimer, void(*pfnHandler)(void))
 
void TimerIntUnregister (unsigned long ulBase, unsigned long ulTimer)
 
void TimerIntEnable (unsigned long ulBase, unsigned long ulIntFlags)
 
void TimerIntDisable (unsigned long ulBase, unsigned long ulIntFlags)
 
unsigned long TimerIntStatus (unsigned long ulBase, tBoolean bMasked)
 
void TimerIntClear (unsigned long ulBase, unsigned long ulIntFlags)
 
void TimerDMAEventSet (unsigned long ulBase, unsigned long ulDMAEvent)
 
unsigned long TimerDMAEventGet (unsigned long ulBase)
 

Detailed Description

Function Documentation

void TimerConfigure ( unsigned long  ulBase,
unsigned long  ulConfig 
)

Configures the timer(s).

Parameters
ulBaseis the base address of the timer module.
ulConfigis the configuration for the timer.

This function configures the operating mode of the timer(s). The timer module is disabled before being configured, and is left in the disabled state. The 16/32-bit timer is comprised of two 16-bit timers that can operate independently or be concatenated to form a 32-bit timer.

The configuration is specified in ulConfig as one of the following values:

  • TIMER_CFG_ONE_SHOT - Full-width one-shot timer
  • TIMER_CFG_ONE_SHOT_UP - Full-width one-shot timer that counts up instead of down (not available on all parts)
  • TIMER_CFG_PERIODIC - Full-width periodic timer
  • TIMER_CFG_PERIODIC_UP - Full-width periodic timer that counts up instead of down (not available on all parts)
  • TIMER_CFG_SPLIT_PAIR - Two half-width timers

When configured for a pair of half-width timers, each timer is separately configured. The first timer is configured by setting ulConfig to the result of a logical OR operation between one of the following values and ulConfig:

  • TIMER_CFG_A_ONE_SHOT - Half-width one-shot timer
  • TIMER_CFG_A_ONE_SHOT_UP - Half-width one-shot timer that counts up instead of down (not available on all parts)
  • TIMER_CFG_A_PERIODIC - Half-width periodic timer
  • TIMER_CFG_A_PERIODIC_UP - Half-width periodic timer that counts up instead of down (not available on all parts)
  • TIMER_CFG_A_CAP_COUNT - Half-width edge count capture
  • TIMER_CFG_A_CAP_TIME - Half-width edge time capture
  • TIMER_CFG_A_PWM - Half-width PWM output

Similarly, the second timer is configured by setting ulConfig to the result of a logical OR operation between one of the corresponding TIMER_CFG_B_* values and ulConfig.

Returns
None.
void TimerControlEvent ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulEvent 
)

Controls the event type.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to be adjusted; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
ulEventspecifies the type of event; must be one of TIMER_EVENT_POS_EDGE, TIMER_EVENT_NEG_EDGE, or TIMER_EVENT_BOTH_EDGES.

This function sets the signal edge(s) that triggers the timer when in capture mode.

Returns
None.
void TimerControlLevel ( unsigned long  ulBase,
unsigned long  ulTimer,
tBoolean  bInvert 
)

Controls the output level.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to adjust; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
bInvertspecifies the output level.

This function sets the PWM output level for the specified timer. If the bInvert parameter is true, then the timer's output is made active low; otherwise, it is made active high.

Returns
None.
void TimerControlStall ( unsigned long  ulBase,
unsigned long  ulTimer,
tBoolean  bStall 
)

Controls the stall handling.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to be adjusted; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
bStallspecifies the response to a stall signal.

This function controls the stall response for the specified timer. If the bStall parameter is true, then the timer stops counting if the processor enters debug mode; otherwise the timer keeps running while in debug mode.

Returns
None.
void TimerDisable ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Disables the timer(s).

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to disable; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.

This function disables operation of the timer module.

Returns
None.
unsigned long TimerDMAEventGet ( unsigned long  ulBase)

Returns the events that can trigger a DMA request.

Parameters
ulBaseis the base address of the timer module.

This function returns the timer events that can trigger the start of a DMA sequence. The DMA trigger events are the logical OR of the following values:

  • TIMER_DMA_MODEMATCH_B - Enables the mode match DMA trigger for timer B.
  • TIMER_DMA_CAPEVENT_B - Enables the capture event DMA trigger for timer B.
  • TIMER_DMA_CAPMATCH_B - Enables the capture match DMA trigger for timer B.
  • TIMER_DMA_TIMEOUT_B - Enables the timeout DMA trigger for timer B.
  • TIMER_DMA_MODEMATCH_A - Enables the mode match DMA trigger for timer A.
  • TIMER_DMA_CAPEVENT_A - Enables the capture event DMA trigger for timer A.
  • TIMER_DMA_CAPMATCH_A - Enables the capture match DMA trigger for timer A.
  • TIMER_DMA_TIMEOUT_A - Enables the timeout DMA trigger for timer A.
Returns
The timer events that trigger the uDMA.
void TimerDMAEventSet ( unsigned long  ulBase,
unsigned long  ulDMAEvent 
)

Enables the events that can trigger a DMA request.

Parameters
ulBaseis the base address of the timer module.
ulDMAEventis a bit mask of the events that can trigger DMA.

This function enables the timer events that can trigger the start of a DMA sequence. The DMA trigger events are specified in the ui32DMAEvent parameter by passing in the logical OR of the following values:

  • TIMER_DMA_MODEMATCH_B - The mode match DMA trigger for timer B is enabled.
  • TIMER_DMA_CAPEVENT_B - The capture event DMA trigger for timer B is enabled.
  • TIMER_DMA_CAPMATCH_B - The capture match DMA trigger for timer B is enabled.
  • TIMER_DMA_TIMEOUT_B - The timeout DMA trigger for timer B is enabled.
  • TIMER_DMA_MODEMATCH_A - The mode match DMA trigger for timer A is enabled.
  • TIMER_DMA_CAPEVENT_A - The capture event DMA trigger for timer A is enabled.
  • TIMER_DMA_CAPMATCH_A - The capture match DMA trigger for timer A is enabled.
  • TIMER_DMA_TIMEOUT_A - The timeout DMA trigger for timer A is enabled.
Returns
None.
void TimerEnable ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Enables the timer(s).

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to enable; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.

This function enables operation of the timer module. The timer must be configured before it is enabled.

Returns
None.
void TimerIntClear ( unsigned long  ulBase,
unsigned long  ulIntFlags 
)

Clears timer interrupt sources.

Parameters
ulBaseis the base address of the timer module.
ulIntFlagsis a bit mask of the interrupt sources to be cleared.

The specified timer interrupt sources are cleared, so that they no longer assert. This function must be called in the interrupt handler to keep the interrupt from being triggered again immediately upon exit.

The ulIntFlags parameter has the same definition as the ulIntFlags parameter to TimerIntEnable().

Note
Because there is a write buffer in the Cortex-M3 processor, it may take several clock cycles before the interrupt source is actually cleared. Therefore, it is recommended that the interrupt source be cleared early in the interrupt handler (as opposed to the very last action) to avoid returning from the interrupt handler before the interrupt source is actually cleared. Failure to do so may result in the interrupt handler being immediately reentered (because the interrupt controller still sees the interrupt source asserted).
Returns
None.
void TimerIntDisable ( unsigned long  ulBase,
unsigned long  ulIntFlags 
)

Disables individual timer interrupt sources.

Parameters
ulBaseis the base address of the timer module.
ulIntFlagsis the bit mask of the interrupt sources to be disabled.

Disables the indicated timer interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

The ulIntFlags parameter has the same definition as the ulIntFlags parameter to TimerIntEnable().

Returns
None.
void TimerIntEnable ( unsigned long  ulBase,
unsigned long  ulIntFlags 
)

Enables individual timer interrupt sources.

Parameters
ulBaseis the base address of the timer module.
ulIntFlagsis the bit mask of the interrupt sources to be enabled.

Enables the indicated timer interrupt sources. Only the sources that are enabled can be reflected to the processor interrupt; disabled sources have no effect on the processor.

The ulIntFlags parameter must be the logical OR of any combination of the following:

  • TIMER_CAPB_EVENT - Capture B event interrupt
  • TIMER_CAPB_MATCH - Capture B match interrupt
  • TIMER_TIMB_TIMEOUT - Timer B timeout interrupt
  • TIMER_CAPA_EVENT - Capture A event interrupt
  • TIMER_CAPA_MATCH - Capture A match interrupt
  • TIMER_TIMA_TIMEOUT - Timer A timeout interrupt
Returns
None.
void TimerIntRegister ( unsigned long  ulBase,
unsigned long  ulTimer,
void(*)(void)  pfnHandler 
)

Registers an interrupt handler for the timer interrupt.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s); must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
pfnHandleris a pointer to the function to be called when the timer interrupt occurs.

This function sets the handler to be called when a timer interrupt occurs. In addition, this function enables the global interrupt in the interrupt controller; specific timer interrupts must be enabled via TimerIntEnable(). It is the interrupt handler's responsibility to clear the interrupt source via TimerIntClear().

See also
IntRegister() for important information about registering interrupt handlers.
Returns
None.
unsigned long TimerIntStatus ( unsigned long  ulBase,
tBoolean  bMasked 
)

Gets the current interrupt status.

Parameters
ulBaseis the base address of the timer module.
bMaskedis false if the raw interrupt status is required and true if the masked interrupt status is required.

This function returns the interrupt status for the timer module. Either the raw interrupt status or the status of interrupts that are allowed to reflect to the processor can be returned.

Returns
The current interrupt status, enumerated as a bit field of values described in TimerIntEnable().
void TimerIntUnregister ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Unregisters an interrupt handler for the timer interrupt.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s); must be one of TIMER_A, TIMER_B, or TIMER_BOTH.

This function clears the handler to be called when a timer interrupt occurs. This function also masks off the interrupt in the interrupt controller so that the interrupt handler no longer is called.

See also
IntRegister() for important information about registering interrupt handlers.
Returns
None.
unsigned long TimerLoadGet ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Gets the timer load value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B. Only TIMER_A should be used when the timer is configured for full-width operation.

This function gets the currently programmed interval load value for the specified timer.

Note
This function can be used for both full- and half-width modes of 16/32-bit timers.
Returns
Returns the load value for the timer.
void TimerLoadSet ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulValue 
)

Sets the timer load value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to adjust; must be one of TIMER_A, TIMER_B, or TIMER_BOTH. Only TIMER_A should be used when the timer is configured for full-width operation.
ulValueis the load value.

This function sets the timer load value; if the timer is running then the value is immediately loaded into the timer.

Note
This function can be used for both full- and half-width modes of 16/32-bit timers.
Returns
None.
unsigned long TimerMatchGet ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Gets the timer match value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B. Only TIMER_A should be used when the timer is configured for 32-bit operation.

This function gets the match value for the specified timer.

Returns
Returns the match value for the timer.
void TimerMatchSet ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulValue 
)

Sets the timer match value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to adjust; must be one of TIMER_A, TIMER_B, or TIMER_BOTH. Only TIMER_A should be used when the timer is configured for 32-bit operation.
ulValueis the match value.

This function sets the match value for a timer. This is used in capture count mode to determine when to interrupt the processor and in PWM mode to determine the duty cycle of the output signal.

Returns
None.
unsigned long TimerPrescaleGet ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Get the timer prescale value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B.

This function gets the value of the input clock prescaler. The prescaler is only operational when in half-width mode and is used to extend the range of the half-width timer modes.

Returns
The value of the timer prescaler.
unsigned long TimerPrescaleMatchGet ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Get the timer prescale match value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B.

This function gets the value of the input clock prescaler match value. When in a half-width mode that uses the counter match and prescaler, the prescale match effectively extends the range of the match.

Note
The availability of the prescaler match varies with the part and timer mode in use. Please consult the datasheet for the part you are using to determine whether this support is available.
Returns
The value of the timer prescale match.
void TimerPrescaleMatchSet ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulValue 
)

Set the timer prescale match value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to adjust; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
ulValueis the timer prescale match value which must be between 0 and 255 (inclusive) for 16/32-bit timers.

This function sets the value of the input clock prescaler match value. When in a half-width mode that uses the counter match and the prescaler, the prescale match effectively extends the range of the match.

Note
The availability of the prescaler match varies with the part and timer mode in use. Please consult the datasheet for the part you are using to determine whether this support is available.
Returns
None.
void TimerPrescaleSet ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulValue 
)

Set the timer prescale value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer(s) to adjust; must be one of TIMER_A, TIMER_B, or TIMER_BOTH.
ulValueis the timer prescale value which must be between 0 and 255 (inclusive) for 16/32-bit timers.

This function sets the value of the input clock prescaler. The prescaler is only operational when in half-width mode and is used to extend the range of the half-width timer modes.

Returns
None.
unsigned long TimerValueGet ( unsigned long  ulBase,
unsigned long  ulTimer 
)

Gets the current timer value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B. Only TIMER_A should be used when the timer is configured for 32-bit operation.

This function reads the current value of the specified timer.

Returns
Returns the current value of the timer.
void TimerValueSet ( unsigned long  ulBase,
unsigned long  ulTimer,
unsigned long  ulValue 
)

Sets the current timer value.

Parameters
ulBaseis the base address of the timer module.
ulTimerspecifies the timer; must be one of TIMER_A or TIMER_B. Only TIMER_A should be used when the timer is configured for 32-bit operation.
ulValueis the new value of the timer to be set.

This function sets the current value of the specified timer.

Returns
None.