CC13xx Driver Library
[timer.h] Timer

Functions

static void TimerEnable (uint32_t ui32Base, uint32_t ui32Timer)
 Enables the timer(s). More...
 
static void TimerDisable (uint32_t ui32Base, uint32_t ui32Timer)
 Disables the timer(s). More...
 
void TimerConfigure (uint32_t ui32Base, uint32_t ui32Config)
 Configures the timer(s). More...
 
void TimerLevelControl (uint32_t ui32Base, uint32_t ui32Timer, bool bInvert)
 Controls the output level. More...
 
static void TimerEventControl (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Event)
 Controls the event type. More...
 
void TimerStallControl (uint32_t ui32Base, uint32_t ui32Timer, bool bStall)
 Controls the stall handling. More...
 
void TimerWaitOnTriggerControl (uint32_t ui32Base, uint32_t ui32Timer, bool bWait)
 Controls the wait on trigger handling. More...
 
static void TimerPrescaleSet (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Value)
 Set the timer prescale value. More...
 
static uint32_t TimerPrescaleGet (uint32_t ui32Base, uint32_t ui32Timer)
 Get the timer prescale value. More...
 
static void TimerPrescaleMatchSet (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Value)
 Set the timer prescale match value. More...
 
static uint32_t TimerPrescaleMatchGet (uint32_t ui32Base, uint32_t ui32Timer)
 Get the timer prescale match value. More...
 
static void TimerLoadSet (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Value)
 Sets the timer load value. More...
 
static uint32_t TimerLoadGet (uint32_t ui32Base, uint32_t ui32Timer)
 Gets the timer load value. More...
 
static uint32_t TimerValueGet (uint32_t ui32Base, uint32_t ui32Timer)
 Gets the current timer value. More...
 
static void TimerMatchSet (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Value)
 Sets the timer match value. More...
 
static uint32_t TimerMatchGet (uint32_t ui32Base, uint32_t ui32Timer)
 Gets the timer match value. More...
 
void TimerIntRegister (uint32_t ui32Base, uint32_t ui32Timer, void(*pfnHandler)(void))
 Registers an interrupt handler for the timer interrupt in the dynamic interrupt table. More...
 
void TimerIntUnregister (uint32_t ui32Base, uint32_t ui32Timer)
 Unregisters an interrupt handler for the timer interrupt in the dynamic interrupt table. More...
 
static void TimerIntEnable (uint32_t ui32Base, uint32_t ui32IntFlags)
 Enables individual timer interrupt sources. More...
 
static void TimerIntDisable (uint32_t ui32Base, uint32_t ui32IntFlags)
 Disables individual timer interrupt sources. More...
 
static uint32_t TimerIntStatus (uint32_t ui32Base, bool bMasked)
 Gets the current interrupt status. More...
 
static void TimerIntClear (uint32_t ui32Base, uint32_t ui32IntFlags)
 Clears timer interrupt sources. More...
 
static void TimerSynchronize (uint32_t ui32Base, uint32_t ui32Timers)
 Synchronizes the counters in a set of timers. More...
 
static void TimerCcpCombineEnable (uint32_t ui32Base)
 Enables AND'ing of the CCP outputs from Timer A and Timer B. More...
 
static void TimerCcpCombineDisable (uint32_t ui32Base)
 Disables AND'ing of the CCP outputs from Timer A and Timer B. More...
 
void TimerMatchUpdateMode (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)
 Sets the Match Register Update mode. More...
 
void TimerIntervalLoadMode (uint32_t ui32Base, uint32_t ui32Timer, uint32_t ui32Mode)
 Sets the Interval Load mode. More...
 

Detailed Description

Introduction

The timer API provides a set of functions for using the general-purpose timer module.

The timer module contains four timer blocks with the following functional options:

Each timer block provides two half-width timers/counters that can be configured to operate independently as timers or event counters or to operate as a combined full-width timer. The timers provide 16-bit half-width timers and a 32-bit full-width timer. For the purposes of this API, the two half-width timers provided by a timer block are referred to as TimerA and TimerB, and the full-width timer is referred to as TimerA.

When in half-width mode, the timer can also be configured for event capture or as a pulse width modulation (PWM) generator. When configured for event capture, the timer acts as a counter. It can be configured to count either the time between events or the events themselves. The type of event being counted can be configured as a positive edge, a negative edge, or both edges. When a timer is configured as a PWM generator, the input signal used to capture events becomes an output signal, and the timer drives an edge-aligned pulse onto that signal.

Control is also provided over interrupt sources and events. Interrupts can be generated to indicate that an event has been captured, or that a certain number of events have been captured. Interrupts can also be generated when the timer has counted down to 0 or when the timer matches a certain value.

Timer configuration is handled by TimerConfigure(), which performs the high level setup of the timer module; that is, it is used to set up full- or half-width modes, and to select between PWM, capture, and timer operations.

API

The API functions can be grouped like this:

Functions to perform timer control:

Functions to manage timer content:

Functions to manage the interrupt handler for the timer interrupt:

The individual interrupt sources within the timer module are managed with:

Function Documentation

static void TimerCcpCombineDisable ( uint32_t  ui32Base)
inlinestatic

Disables AND'ing of the CCP outputs from Timer A and Timer B.

Parameters
ui32Baseis the base address of the timer module.
Returns
None
1056 {
1057  // Check the arguments
1058  ASSERT(TimerBaseValid(ui32Base));
1059 
1060  // Clear the bit
1061  HWREG(ui32Base + GPT_O_ANDCCP) &= ~(GPT_ANDCCP_CCP_AND_EN);
1062 }
#define ASSERT(expr)
Definition: debug.h:73
static void TimerCcpCombineEnable ( uint32_t  ui32Base)
inlinestatic

Enables AND'ing of the CCP outputs from Timer A and Timer B.

Parameters
ui32Baseis the base address of the timer module.
Returns
None
1037 {
1038  // Check the arguments
1039  ASSERT(TimerBaseValid(ui32Base));
1040 
1041  // Set the bit
1042  HWREG(ui32Base + GPT_O_ANDCCP) |= GPT_ANDCCP_CCP_AND_EN;
1043 }
#define ASSERT(expr)
Definition: debug.h:73
void TimerConfigure ( uint32_t  ui32Base,
uint32_t  ui32Config 
)

Configures the timer(s).

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 timers are comprised of two 16-bit timers that can operate independently or be concatenated to form a 32-bit timer.

Note
If the timers are used independently the length of timer can be extended to 24 bit by use of an 8 bit prescale register set using TimerPrescaleSet().

When configuring for full-width timer ui32Config is set as one of the following values:

When configuring for a pair of half-width timers, each timer is separately configured. The timers are configured by setting ui32Config to the bitwise OR of one of each of the following three:

Parameters
ui32Baseis the base address of the timer module.
ui32Configis the configuration for the timer.
Returns
None
114 {
115  // Check the arguments.
116  ASSERT(TimerBaseValid(ui32Base));
117  ASSERT((ui32Config == TIMER_CFG_ONE_SHOT) ||
118  (ui32Config == TIMER_CFG_ONE_SHOT_UP) ||
119  (ui32Config == TIMER_CFG_PERIODIC) ||
120  (ui32Config == TIMER_CFG_PERIODIC_UP) ||
121  ((ui32Config & 0xFF000000) == TIMER_CFG_SPLIT_PAIR));
122  ASSERT(((ui32Config & 0xFF000000) != TIMER_CFG_SPLIT_PAIR) ||
123  ((((ui32Config & 0x000000FF) == TIMER_CFG_A_ONE_SHOT) ||
124  ((ui32Config & 0x000000FF) == TIMER_CFG_A_ONE_SHOT_UP) ||
125  ((ui32Config & 0x000000FF) == TIMER_CFG_A_PERIODIC) ||
126  ((ui32Config & 0x000000FF) == TIMER_CFG_A_PERIODIC_UP) ||
127  ((ui32Config & 0x000000FF) == TIMER_CFG_A_CAP_COUNT) ||
128  ((ui32Config & 0x000000FF) == TIMER_CFG_A_CAP_COUNT_UP) ||
129  ((ui32Config & 0x000000FF) == TIMER_CFG_A_CAP_TIME) ||
130  ((ui32Config & 0x000000FF) == TIMER_CFG_A_CAP_TIME_UP) ||
131  ((ui32Config & 0x000000FF) == TIMER_CFG_A_PWM)) &&
132  (((ui32Config & 0x0000FF00) == TIMER_CFG_B_ONE_SHOT) ||
133  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_ONE_SHOT_UP) ||
134  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_PERIODIC) ||
135  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_PERIODIC_UP) ||
136  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_CAP_COUNT) ||
137  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_CAP_COUNT_UP) ||
138  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_CAP_TIME) ||
139  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_CAP_TIME_UP) ||
140  ((ui32Config & 0x0000FF00) == TIMER_CFG_B_PWM))));
141 
142  // Disable the timers.
143  HWREG(ui32Base + GPT_O_CTL) &= ~(GPT_CTL_TAEN | GPT_CTL_TBEN);
144 
145  // Set the global timer configuration.
146  HWREG(ui32Base + GPT_O_CFG) = ui32Config >> 24;
147 
148  // Set the configuration of the A and B timers. Note that the B timer
149  // configuration is ignored by the hardware in 32-bit modes.
150  HWREG(ui32Base + GPT_O_TAMR) = (ui32Config & 0xFF) | GPT_TAMR_TAPWMIE;
151  HWREG(ui32Base + GPT_O_TBMR) =
152  ((ui32Config >> 8) & 0xFF) | GPT_TBMR_TBPWMIE;
153 }
#define TIMER_CFG_SPLIT_PAIR
Definition: timer.h:102
#define TIMER_CFG_A_PWM
Definition: timer.h:111
#define TIMER_CFG_B_ONE_SHOT
Definition: timer.h:112
#define TIMER_CFG_A_ONE_SHOT_UP
Definition: timer.h:104
#define TIMER_CFG_A_CAP_TIME_UP
Definition: timer.h:110
#define TIMER_CFG_PERIODIC_UP
Definition: timer.h:101
#define TIMER_CFG_ONE_SHOT
Definition: timer.h:98
#define TIMER_CFG_A_CAP_COUNT_UP
Definition: timer.h:108
#define TIMER_CFG_B_ONE_SHOT_UP
Definition: timer.h:113
#define TIMER_CFG_B_PWM
Definition: timer.h:120
#define TIMER_CFG_B_CAP_TIME
Definition: timer.h:118
#define TIMER_CFG_ONE_SHOT_UP
Definition: timer.h:99
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_CFG_A_PERIODIC
Definition: timer.h:105
#define TIMER_CFG_B_CAP_TIME_UP
Definition: timer.h:119
#define TIMER_CFG_B_PERIODIC
Definition: timer.h:114
#define TIMER_CFG_B_CAP_COUNT
Definition: timer.h:116
#define TIMER_CFG_B_CAP_COUNT_UP
Definition: timer.h:117
#define TIMER_CFG_PERIODIC
Definition: timer.h:100
#define TIMER_CFG_A_ONE_SHOT
Definition: timer.h:103
#define TIMER_CFG_A_CAP_COUNT
Definition: timer.h:107
#define TIMER_CFG_A_CAP_TIME
Definition: timer.h:109
#define TIMER_CFG_A_PERIODIC_UP
Definition: timer.h:106
#define TIMER_CFG_B_PERIODIC_UP
Definition: timer.h:115
static void TimerDisable ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Disables the timer(s).

This function disables operation of the timer module.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to disable. Must be one of:
Returns
None
263 {
264  // Check the arguments.
265  ASSERT(TimerBaseValid(ui32Base));
266  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
267  (ui32Timer == TIMER_BOTH));
268 
269  // Disable the timer module.
270  HWREG(ui32Base + GPT_O_CTL) &= ~(ui32Timer &
272 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static void TimerEnable ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Enables the timer(s).

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

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to enable. Must be one of:
Returns
None
236 {
237  // Check the arguments.
238  ASSERT(TimerBaseValid(ui32Base));
239  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
240  (ui32Timer == TIMER_BOTH));
241 
242  // Enable the timer(s) module.
243  HWREG(ui32Base + GPT_O_CTL) |= ui32Timer & (GPT_CTL_TAEN | GPT_CTL_TBEN);
244 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static void TimerEventControl ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Event 
)
inlinestatic

Controls the event type.

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

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to be adjusted; must be one of:
ui32Eventspecifies the type of event; must be one of:
Returns
None
371 {
372  // Check the arguments.
373  ASSERT(TimerBaseValid(ui32Base));
374  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
375  (ui32Timer == TIMER_BOTH));
376 
377  // Set the event type.
378  ui32Timer &= GPT_CTL_TAEVENT_M | GPT_CTL_TBEVENT_M;
379  HWREG(ui32Base + GPT_O_CTL) = ((HWREG(ui32Base + GPT_O_CTL) & ~ui32Timer) |
380  (ui32Event & ui32Timer));
381 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static void TimerIntClear ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Clears timer interrupt sources.

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.

Note
Due to write buffers and synchronizers in the system it may take several clock cycles from a register write clearing an event in a module and until the event is actually cleared in the NVIC of the system CPU. It is recommended to clear the event source early in the interrupt service routine (ISR) to allow the event clear to propagate to the NVIC before returning from the ISR. At the same time, an early event clear allows new events of the same type to be pended instead of ignored if the event is cleared later in the ISR. It is the responsibility of the programmer to make sure that enough time has passed before returning from the ISR to avoid false re-triggering of the cleared event. A simple, although not necessarily optimal, way of clearing an event before returning from the ISR is:
  1. Write to clear event (interrupt source). (buffered write)
  2. Dummy read from the event source module. (making sure the write has propagated)
  3. Wait two system CPU clock cycles (user code or two NOPs). (allowing cleared event to propagate through any synchronizers)
Parameters
ui32Baseis the base address of the timer module.
ui32IntFlagsis a bit mask of the interrupt sources to be cleared. The parameter must be the bitwise OR of any combination of the following:
Returns
None
982 {
983  // Check the arguments.
984  ASSERT(TimerBaseValid(ui32Base));
985 
986  // Clear the requested interrupt sources.
987  HWREG(ui32Base + GPT_O_ICLR) = ui32IntFlags;
988 }
#define ASSERT(expr)
Definition: debug.h:73
static void TimerIntDisable ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Disables individual timer interrupt sources.

This function 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.

Parameters
ui32Baseis the base address of the timer module.
ui32IntFlagsis the bit mask of the interrupt sources to be disabled. The parameter must be the bitwise OR of any combination of the following:
Returns
None
901 {
902  // Check the arguments.
903  ASSERT(TimerBaseValid(ui32Base));
904 
905  // Disable the specified interrupts.
906  HWREG(ui32Base + GPT_O_IMR) &= ~(ui32IntFlags);
907 }
#define ASSERT(expr)
Definition: debug.h:73
static void TimerIntEnable ( uint32_t  ui32Base,
uint32_t  ui32IntFlags 
)
inlinestatic

Enables individual timer interrupt sources.

This function 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.

Parameters
ui32Baseis the base address of the timer module.
ui32IntFlagsis the bit mask of the interrupt sources to be enabled. The parameter must be the bitwise OR of any combination of the following:
Returns
None
869 {
870  // Check the arguments.
871  ASSERT(TimerBaseValid(ui32Base));
872 
873  // Enable the specified interrupts.
874  HWREG(ui32Base + GPT_O_IMR) |= ui32IntFlags;
875 }
#define ASSERT(expr)
Definition: debug.h:73
void TimerIntervalLoadMode ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Mode 
)

Sets the Interval Load mode.

This function controls when the Timer Register and Prescale Snap-shot (if used) are updated.

Timer Register (TAR/TBR) is updated when Interval Load Register (TAILR/TBILR) is written and the Prescale Snap-shot (TAPS/TBPS) is updated when Prescale Register (TAPR/TBPR) is written depending on the mode of operation.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to configure; must be one of:
ui32Modesets the mode:
  • TIMER_INTERVALLOAD_NEXTCYCLE : Update Timer Register and Prescale Snap-shot on next clock cycle after writing Interval Load Register or Prescale Register, respectively.
  • TIMER_INTERVALLOAD_TIMEOUT : Update Timer Register and Prescale Snap-shot on next timeout after writing Interval Load Register or Prescale Register, respectively.
Returns
None
361 {
362  // Check the arguments
363  ASSERT(TimerBaseValid(ui32Base));
364  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) || (ui32Timer == TIMER_BOTH));
365  ASSERT((ui32Mode == TIMER_INTERVALLOAD_NEXTCYCLE) || (ui32Mode == TIMER_INTERVALLOAD_TIMEOUT));
366 
367  // Set mode for timer A
368  if(ui32Timer & TIMER_A)
369  {
370  if(ui32Mode == TIMER_INTERVALLOAD_NEXTCYCLE)
371  {
372  HWREG(ui32Base + GPT_O_TAMR) &= ~(GPT_TAMR_TAILD);
373  }
374  else
375  {
376  HWREG(ui32Base + GPT_O_TAMR) |= GPT_TAMR_TAILD;
377  }
378  }
379 
380  // Set mode for timer B
381  if(ui32Timer & TIMER_B)
382  {
383  if(ui32Mode == TIMER_INTERVALLOAD_NEXTCYCLE)
384  {
385  HWREG(ui32Base + GPT_O_TBMR) &= ~(GPT_TBMR_TBILD);
386  }
387  else
388  {
389  HWREG(ui32Base + GPT_O_TBMR) |= GPT_TBMR_TBILD;
390  }
391  }
392 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_INTERVALLOAD_TIMEOUT
Definition: timer.h:187
#define TIMER_INTERVALLOAD_NEXTCYCLE
Definition: timer.h:186
#define TIMER_BOTH
Definition: timer.h:157
void TimerIntRegister ( uint32_t  ui32Base,
uint32_t  ui32Timer,
void(*)(void)  pfnHandler 
)

Registers an interrupt handler for the timer interrupt in the dynamic interrupt table.

Note
Only use this function if you want to use the dynamic vector table (in SRAM)!

This function registers a function as the interrupt handler for a specific interrupt and enables the corresponding 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().

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s); must be one of:
pfnHandleris a pointer to the function to be called when the timer interrupt occurs.
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
243 {
244  uint32_t ui32Int;
245 
246  // Check the arguments.
247  ASSERT(TimerBaseValid(ui32Base));
248  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
249  (ui32Timer == TIMER_BOTH));
250 
251  // Get the interrupt number for this timer module.
252  ui32Int = TimerIntNumberGet(ui32Base);
253 
254  // Register an interrupt handler for timer A if requested.
255  if(ui32Timer & TIMER_A)
256  {
257  // Register the interrupt handler.
258  IntRegister(ui32Int, pfnHandler);
259 
260  // Enable the interrupt.
261  IntEnable(ui32Int);
262  }
263 
264  // Register an interrupt handler for timer B if requested.
265  if(ui32Timer & TIMER_B)
266  {
267  // Register the interrupt handler.
268  IntRegister(ui32Int + 1, pfnHandler);
269 
270  // Enable the interrupt.
271  IntEnable(ui32Int + 1);
272  }
273 }
static uint32_t TimerIntNumberGet(uint32_t ui32Base)
Gets the timer interrupt number.
Definition: timer.c:79
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
Registers a function as an interrupt handler in the dynamic vector table.
Definition: interrupt.c:153
void IntEnable(uint32_t ui32Interrupt)
Enables an interrupt or system exception.
Definition: interrupt.c:283

Here is the call graph for this function:

static uint32_t TimerIntStatus ( uint32_t  ui32Base,
bool  bMasked 
)
inlinestatic

Gets the current interrupt status.

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.

Parameters
ui32Baseis the base address of the timer module.
bMaskedselects either raw or masked interrupt status:
  • true : Masked interrupt.
  • false : Raw interrupt.
Returns
The current interrupt status, enumerated as a bit field of values:
933 {
934  // Check the arguments.
935  ASSERT(TimerBaseValid(ui32Base));
936 
937  // Return either the interrupt status or the raw interrupt status as
938  // requested.
939  return(bMasked ? HWREG(ui32Base + GPT_O_MIS) :
940  HWREG(ui32Base + GPT_O_RIS));
941 }
#define ASSERT(expr)
Definition: debug.h:73
void TimerIntUnregister ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)

Unregisters an interrupt handler for the timer interrupt in the dynamic interrupt table.

This function unregisters 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 is no longer called.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s); must be one of:
Returns
None
See also
IntRegister() for important information about registering interrupt handlers.
282 {
283  uint32_t ui32Int;
284 
285  // Check the arguments.
286  ASSERT(TimerBaseValid(ui32Base));
287  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
288  (ui32Timer == TIMER_BOTH));
289 
290  // Get the interrupt number for this timer module.
291  ui32Int = TimerIntNumberGet(ui32Base);
292 
293  // Unregister the interrupt handler for timer A if requested.
294  if(ui32Timer & TIMER_A)
295  {
296  // Disable the interrupt.
297  IntDisable(ui32Int);
298 
299  // Unregister the interrupt handler.
300  IntUnregister(ui32Int);
301  }
302 
303  // Unregister the interrupt handler for timer B if requested.
304  if(ui32Timer & TIMER_B)
305  {
306  // Disable the interrupt.
307  IntDisable(ui32Int + 1);
308 
309  // Unregister the interrupt handler.
310  IntUnregister(ui32Int + 1);
311  }
312 }
static uint32_t TimerIntNumberGet(uint32_t ui32Base)
Gets the timer interrupt number.
Definition: timer.c:79
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
void IntUnregister(uint32_t ui32Interrupt)
Unregisters an interrupt handler in the dynamic vector table.
Definition: interrupt.c:189
#define TIMER_BOTH
Definition: timer.h:157
void IntDisable(uint32_t ui32Interrupt)
Disables an interrupt or system exception.
Definition: interrupt.c:327

Here is the call graph for this function:

void TimerLevelControl ( uint32_t  ui32Base,
uint32_t  ui32Timer,
bool  bInvert 
)

Controls the output level.

This function configures the PWM output level for the specified timer.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to adjust. Must be one of:
bInvertspecifies the output level.
  • true : Timer's output is active low.
  • false : Timer's output is active high.
Returns
None
162 {
163  // Check the arguments.
164  ASSERT(TimerBaseValid(ui32Base));
165  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
166  (ui32Timer == TIMER_BOTH));
167 
168  // Set the output levels as requested.
169  ui32Timer &= GPT_CTL_TAPWML | GPT_CTL_TBPWML;
170  HWREG(ui32Base + GPT_O_CTL) = (bInvert ?
171  (HWREG(ui32Base + GPT_O_CTL) | ui32Timer) :
172  (HWREG(ui32Base + GPT_O_CTL) &
173  ~(ui32Timer)));
174 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static uint32_t TimerLoadGet ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Gets the timer load value.

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.
Only TIMER_A should be used when the timer is configured for full-width operation.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer; must be one of:
Returns
Returns the load value for the timer
671 {
672  // Check the arguments.
673  ASSERT(TimerBaseValid(ui32Base));
674  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B));
675 
676  // Return the appropriate load value.
677  return((ui32Timer == TIMER_A) ? HWREG(ui32Base + GPT_O_TAILR) :
678  HWREG(ui32Base + GPT_O_TBILR));
679 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
static void TimerLoadSet ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Value 
)
inlinestatic

Sets the timer load value.

This function configures 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.
Only TIMER_A should be used when the timer is configured for full-width operation.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to adjust; must be one of:
ui32Valueis the load value.
Returns
None
629 {
630  // Check the arguments.
631  ASSERT(TimerBaseValid(ui32Base));
632  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
633  (ui32Timer == TIMER_BOTH));
634 
635  // Set the timer A load value if requested.
636  if(ui32Timer & TIMER_A)
637  {
638  HWREG(ui32Base + GPT_O_TAILR) = ui32Value;
639  }
640 
641  // Set the timer B load value if requested.
642  if(ui32Timer & TIMER_B)
643  {
644  HWREG(ui32Base + GPT_O_TBILR) = ui32Value;
645  }
646 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static uint32_t TimerMatchGet ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Gets the timer match value.

This function gets the match value for the specified timer.

Note
This function can be used for both full- and half-width modes of 16/32-bit timers.
Only TIMER_A should be used when the timer is configured for full-width operation.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer; must be one of:
Returns
Returns the match value for the timer
783 {
784  // Check the arguments.
785  ASSERT(TimerBaseValid(ui32Base));
786  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B));
787 
788  // Return the appropriate match value.
789  return((ui32Timer == TIMER_A) ? HWREG(ui32Base + GPT_O_TAMATCHR) :
790  HWREG(ui32Base + GPT_O_TBMATCHR));
791 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
static void TimerMatchSet ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Value 
)
inlinestatic

Sets the timer match value.

This function configures the match value for a timer. This value 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. Match interrupts can also be generated in periodic and one-shot modes when the value of the counter matches this register.

Note
This function can be used for both full- and half-width modes of 16/32-bit timers.
Only TIMER_A should be used when the timer is configured for full-width operation.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to adjust; must be one of:
ui32Valueis the match value.
Returns
None
741 {
742  // Check the arguments.
743  ASSERT(TimerBaseValid(ui32Base));
744  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
745  (ui32Timer == TIMER_BOTH));
746 
747  // Set the timer A match value if requested.
748  if(ui32Timer & TIMER_A)
749  {
750  HWREG(ui32Base + GPT_O_TAMATCHR) = ui32Value;
751  }
752 
753  // Set the timer B match value if requested.
754  if(ui32Timer & TIMER_B)
755  {
756  HWREG(ui32Base + GPT_O_TBMATCHR) = ui32Value;
757  }
758 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
void TimerMatchUpdateMode ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Mode 
)

Sets the Match Register Update mode.

This function controls when the Match Register value and Prescale Register value are applied after writing these registers while a timer is enabled.

Note
If the timer is disabled when setting the update mode the Match Register and Prescale Register values are applied immediately when enabling the timer.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to configure; must be one of:
ui32Modesets the mode:
Returns
None
321 {
322  // Check the arguments
323  ASSERT(TimerBaseValid(ui32Base));
324  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) || (ui32Timer == TIMER_BOTH));
325  ASSERT((ui32Mode == TIMER_MATCHUPDATE_NEXTCYCLE) || (ui32Mode == TIMER_MATCHUPDATE_TIMEOUT));
326 
327  // Set mode for timer A
328  if(ui32Timer & TIMER_A)
329  {
330  if(ui32Mode == TIMER_MATCHUPDATE_NEXTCYCLE)
331  {
332  HWREG(ui32Base + GPT_O_TAMR) &= ~(GPT_TAMR_TAMRSU);
333  }
334  else
335  {
336  HWREG(ui32Base + GPT_O_TAMR) |= GPT_TAMR_TAMRSU;
337  }
338  }
339 
340  // Set mode for timer B
341  if(ui32Timer & TIMER_B)
342  {
343  if(ui32Mode == TIMER_MATCHUPDATE_NEXTCYCLE)
344  {
345  HWREG(ui32Base + GPT_O_TBMR) &= ~(GPT_TBMR_TBMRSU);
346  }
347  else
348  {
349  HWREG(ui32Base + GPT_O_TBMR) |= GPT_TBMR_TBMRSU;
350  }
351  }
352 }
#define TIMER_MATCHUPDATE_TIMEOUT
Definition: timer.h:179
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
#define TIMER_MATCHUPDATE_NEXTCYCLE
Definition: timer.h:178
static uint32_t TimerPrescaleGet ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Get the timer prescale value.

This function gets the value of the timer 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.

When in one-shot or periodic down count modes, ui32Value defines the prescaler for the timer counter. When acting as a true prescaler, the prescaler counts down to 0 before the value in timer registers are incremented.

In all other individual/split modes, ui32Value is a linear extension of the upper range of the timer counter, holding bits 23:16 in the 16-bit modes of the 16/32-bit timer.

Note
Because the prescaler counts down to 0 the timer division ratio equals ui32Value + 1. E.g. a prescale value of 15 divides the timer rate by 16.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer; must be one of:
Returns
Returns the value of the timer prescaler.
518 {
519  // Check the arguments.
520  ASSERT(TimerBaseValid(ui32Base));
521  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
522  (ui32Timer == TIMER_BOTH));
523 
524  // Return the appropriate prescale value.
525  return((ui32Timer == TIMER_A) ? HWREG(ui32Base + GPT_O_TAPR) :
526  HWREG(ui32Base + GPT_O_TBPR));
527 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static uint32_t TimerPrescaleMatchGet ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Get the timer prescale match value.

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. The prescaler provides the least significant bits when counting down in periodic and one-shot modes; in all other modes, the prescaler provides the most significant bits.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer; must be one of:
Returns
Returns the value of the timer prescale match.
594 {
595  // Check the arguments.
596  ASSERT(TimerBaseValid(ui32Base));
597  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B));
598 
599  // Return the appropriate prescale match value.
600  return((ui32Timer == TIMER_A) ? HWREG(ui32Base + GPT_O_TAPMR) :
601  HWREG(ui32Base + GPT_O_TBPMR));
602 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
static void TimerPrescaleMatchSet ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Value 
)
inlinestatic

Set the timer prescale match value.

This function configures 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. The prescaler provides the least significant bits when counting down in periodic and one-shot modes; in all other modes, the prescaler provides the most significant bits.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to adjust; must be one of:
ui32Valueis the timer prescale match value which must be between 0 and 255 (both included).
Returns
None
553 {
554  // Check the arguments.
555  ASSERT(TimerBaseValid(ui32Base));
556  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
557  (ui32Timer == TIMER_BOTH));
558  ASSERT(ui32Value < 256);
559 
560  // Set the timer A prescale match if requested.
561  if(ui32Timer & TIMER_A)
562  {
563  HWREG(ui32Base + GPT_O_TAPMR) = ui32Value;
564  }
565 
566  // Set the timer B prescale match if requested.
567  if(ui32Timer & TIMER_B)
568  {
569  HWREG(ui32Base + GPT_O_TBPMR) = ui32Value;
570  }
571 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static void TimerPrescaleSet ( uint32_t  ui32Base,
uint32_t  ui32Timer,
uint32_t  ui32Value 
)
inlinestatic

Set the timer prescale value.

This function configures the value of the timer 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.

When in one-shot or periodic down count modes, ui32Value defines the prescaler for the timer counter. When acting as a true prescaler, the prescaler counts down to 0 before the value in timer registers are incremented.

In all other individual/split modes, ui32Value is a linear extension of the upper range of the timer counter, holding bits 23:16 in the 16-bit modes of the 16/32-bit timer.

Note
Because the prescaler counts down to 0 the timer division ratio equals ui32Value + 1. E.g. a prescale value of 15 divides the timer rate by 16.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to adjust; must be one of:
ui32Valueis the timer prescale value which must be between 0 and 255 (both included).
  • 0 : Timer division ratio = 1 (disable prescaling).
  • 1 : Timer division ratio = 2.
  • ...
  • 255 : Timer division ratio = 256.
Returns
None
469 {
470  // Check the arguments.
471  ASSERT(TimerBaseValid(ui32Base));
472  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
473  (ui32Timer == TIMER_BOTH));
474  ASSERT(ui32Value < 256);
475 
476  // Set the timer A prescaler if requested.
477  if(ui32Timer & TIMER_A)
478  {
479  HWREG(ui32Base + GPT_O_TAPR) = ui32Value;
480  }
481 
482  // Set the timer B prescaler if requested.
483  if(ui32Timer & TIMER_B)
484  {
485  HWREG(ui32Base + GPT_O_TBPR) = ui32Value;
486  }
487 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
void TimerStallControl ( uint32_t  ui32Base,
uint32_t  ui32Timer,
bool  bStall 
)

Controls the stall handling.

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.

Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to be adjusted; must be one of:
bStallspecifies the response to a stall signal.
  • true : Timer stops counting if the processor enters debug mode.
  • false : Timer keeps running if the processor enters debug mode.
Returns
None
183 {
184  // Check the arguments.
185  ASSERT(TimerBaseValid(ui32Base));
186  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
187  (ui32Timer == TIMER_BOTH));
188 
189  // Set the stall mode.
190  ui32Timer &= GPT_CTL_TASTALL | GPT_CTL_TBSTALL;
191  HWREG(ui32Base + GPT_O_CTL) = (bStall ?
192  (HWREG(ui32Base + GPT_O_CTL) | ui32Timer) :
193  (HWREG(ui32Base + GPT_O_CTL) & ~(ui32Timer)));
194 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157
static void TimerSynchronize ( uint32_t  ui32Base,
uint32_t  ui32Timers 
)
inlinestatic

Synchronizes the counters in a set of timers.

This function synchronizes the counters in a specified set of timers. When a timer is running in half-width mode, each half can be included or excluded in the synchronization event. When a timer is running in full-width mode, only the A timer can be synchronized (specifying the B timer has no effect).

Parameters
ui32Baseis the base address of the timer module. This parameter must be the base address of Timer0 (in other words, GPT0_BASE).
ui32Timersis the set of timers to synchronize. The parameter is the bitwise OR of any of the following:
Returns
None
1018 {
1019  // Check the arguments.
1020  ASSERT(ui32Base == GPT0_BASE);
1021 
1022  // Synchronize the specified timers.
1023  HWREG(ui32Base + GPT_O_SYNC) = ui32Timers;
1024 }
#define ASSERT(expr)
Definition: debug.h:73
static uint32_t TimerValueGet ( uint32_t  ui32Base,
uint32_t  ui32Timer 
)
inlinestatic

Gets the current timer value.

This function reads the current value of the specified timer.

Note
This function can be used for both full- and half-width modes of 16/32-bit timers.
Only TIMER_A should be used when the timer is configured for full-width operation.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer; must be one of:
Returns
Returns the current value of the timer.
703 {
704  // Check the arguments.
705  ASSERT(TimerBaseValid(ui32Base));
706  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B));
707 
708  // Return the appropriate timer value.
709  return((ui32Timer == TIMER_A) ? HWREG(ui32Base + GPT_O_TAR) :
710  HWREG(ui32Base + GPT_O_TBR));
711 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
void TimerWaitOnTriggerControl ( uint32_t  ui32Base,
uint32_t  ui32Timer,
bool  bWait 
)

Controls the wait on trigger handling.

This function controls whether or not a timer waits for a trigger input to start counting. When enabled, the previous timer in the trigger chain must count to its timeout in order for this timer to start counting. Refer to the part's data sheet for a description of the trigger chain.

Note
This function should not be used for Timer 0A or Wide Timer 0A.
Parameters
ui32Baseis the base address of the timer module.
ui32Timerspecifies the timer(s) to be adjusted; must be one of:
bWaitspecifies if the timer should wait for a trigger input.
  • true : Wait for trigger.
  • false : Do not wait for trigger.
Returns
None
203 {
204  // Check the arguments.
205  ASSERT(TimerBaseValid(ui32Base));
206  ASSERT((ui32Timer == TIMER_A) || (ui32Timer == TIMER_B) ||
207  (ui32Timer == TIMER_BOTH));
208 
209  // Set the wait on trigger mode for timer A.
210  if(ui32Timer & TIMER_A)
211  {
212  if(bWait)
213  {
214  HWREG(ui32Base + GPT_O_TAMR) |= GPT_TAMR_TAWOT;
215  }
216  else
217  {
218  HWREG(ui32Base + GPT_O_TAMR) &= ~(GPT_TAMR_TAWOT);
219  }
220  }
221 
222  // Set the wait on trigger mode for timer B.
223  if(ui32Timer & TIMER_B)
224  {
225  if(bWait)
226  {
227  HWREG(ui32Base + GPT_O_TBMR) |= GPT_TBMR_TBWOT;
228  }
229  else
230  {
231  HWREG(ui32Base + GPT_O_TBMR) &= ~(GPT_TBMR_TBWOT);
232  }
233  }
234 }
#define ASSERT(expr)
Definition: debug.h:73
#define TIMER_B
Definition: timer.h:156
#define TIMER_A
Definition: timer.h:155
#define TIMER_BOTH
Definition: timer.h:157

Macro Definition Documentation

#define TIMER_0A_SYNC   0x00000001
#define TIMER_0B_SYNC   0x00000002
#define TIMER_1A_SYNC   0x00000004
#define TIMER_1B_SYNC   0x00000008
#define TIMER_2A_SYNC   0x00000010
#define TIMER_2B_SYNC   0x00000020
#define TIMER_3A_SYNC   0x00000040
#define TIMER_3B_SYNC   0x00000080
#define TIMER_CAPA_EVENT   0x00000004
#define TIMER_CAPA_MATCH   0x00000002
#define TIMER_CAPB_EVENT   0x00000400
#define TIMER_CAPB_MATCH   0x00000200
#define TIMER_CFG_A_CAP_COUNT   0x00000003

Referenced by TimerConfigure().

#define TIMER_CFG_A_CAP_COUNT_UP   0x00000013

Referenced by TimerConfigure().

#define TIMER_CFG_A_CAP_TIME   0x00000007

Referenced by TimerConfigure().

#define TIMER_CFG_A_CAP_TIME_UP   0x00000017

Referenced by TimerConfigure().

#define TIMER_CFG_A_ONE_SHOT   0x00000021

Referenced by TimerConfigure().

#define TIMER_CFG_A_ONE_SHOT_UP   0x00000031

Referenced by TimerConfigure().

#define TIMER_CFG_A_PERIODIC   0x00000022

Referenced by TimerConfigure().

#define TIMER_CFG_A_PERIODIC_UP   0x00000032

Referenced by TimerConfigure().

#define TIMER_CFG_A_PWM   0x0000000A

Referenced by TimerConfigure().

#define TIMER_CFG_B_CAP_COUNT   0x00000300

Referenced by TimerConfigure().

#define TIMER_CFG_B_CAP_COUNT_UP   0x00001300

Referenced by TimerConfigure().

#define TIMER_CFG_B_CAP_TIME   0x00000700

Referenced by TimerConfigure().

#define TIMER_CFG_B_CAP_TIME_UP   0x00001700

Referenced by TimerConfigure().

#define TIMER_CFG_B_ONE_SHOT   0x00002100

Referenced by TimerConfigure().

#define TIMER_CFG_B_ONE_SHOT_UP   0x00003100

Referenced by TimerConfigure().

#define TIMER_CFG_B_PERIODIC   0x00002200

Referenced by TimerConfigure().

#define TIMER_CFG_B_PERIODIC_UP   0x00003200

Referenced by TimerConfigure().

#define TIMER_CFG_B_PWM   0x00000A00

Referenced by TimerConfigure().

#define TIMER_CFG_ONE_SHOT   0x00000021

Referenced by TimerConfigure().

#define TIMER_CFG_ONE_SHOT_UP   0x00000031

Referenced by TimerConfigure().

#define TIMER_CFG_PERIODIC   0x00000022

Referenced by TimerConfigure().

#define TIMER_CFG_PERIODIC_UP   0x00000032

Referenced by TimerConfigure().

#define TIMER_CFG_SPLIT_PAIR   0x04000000

Referenced by TimerConfigure().

#define TIMER_EVENT_BOTH_EDGES   0x00000C0C
#define TIMER_EVENT_NEG_EDGE   0x00000404
#define TIMER_EVENT_POS_EDGE   0x00000000
#define TIMER_INTERVALLOAD_NEXTCYCLE   0x00000000

Referenced by TimerIntervalLoadMode().

#define TIMER_INTERVALLOAD_TIMEOUT   0x00000001

Referenced by TimerIntervalLoadMode().

#define TIMER_MATCHUPDATE_NEXTCYCLE   0x00000000

Referenced by TimerMatchUpdateMode().

#define TIMER_MATCHUPDATE_TIMEOUT   0x00000001

Referenced by TimerMatchUpdateMode().

#define TIMER_TIMA_DMA   0x00000020
#define TIMER_TIMA_MATCH   0x00000010
#define TIMER_TIMA_TIMEOUT   0x00000001
#define TIMER_TIMB_DMA   0x00002000
#define TIMER_TIMB_MATCH   0x00000800
#define TIMER_TIMB_TIMEOUT   0x00000100