Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
CHIP: LPC11u6x 16/32-bit Timer driver
IMPORTANT NOTE ABOUT lpc11u6x TIMERS
For timer 0 on both the 16-bit and 32-bit timers, the capture functions use index 0 for capture 0 functions and index 2 for capture 1 functions, while timer 1 for both the 16-bit and 32-bit timers uses index 0 and index 1.
More...
Data Structures | |
| struct | LPC_TIMER_T |
| 32-bit Standard timer register block structure More... | |
Typedefs | |
| typedef enum IP_TIMER_PIN_MATCH_STATE | TIMER_PIN_MATCH_STATE_T |
| Standard timer initial match pin state and change state. | |
| typedef enum IP_TIMER_CAP_SRC_STATE | TIMER_CAP_SRC_STATE_T |
| Standard timer clock and edge for count source. | |
Enumerations | |
| enum | IP_TIMER_PIN_MATCH_STATE { TIMER_EXTMATCH_DO_NOTHING = 0, TIMER_EXTMATCH_CLEAR = 1, TIMER_EXTMATCH_SET = 2, TIMER_EXTMATCH_TOGGLE = 3 } |
Standard timer initial match pin state and change state. More... | |
| enum | IP_TIMER_CAP_SRC_STATE { TIMER_CAPSRC_RISING_PCLK = 0, TIMER_CAPSRC_RISING_CAPN = 1, TIMER_CAPSRC_FALLING_CAPN = 2, TIMER_CAPSRC_BOTH_CAPN = 3 } |
Standard timer clock and edge for count source. More... | |
Functions | |
| void | Chip_TIMER_Init (LPC_TIMER_T *pTMR) |
| Initialize a timer. | |
| void | Chip_TIMER_DeInit (LPC_TIMER_T *pTMR) |
| Shutdown a timer. | |
| STATIC INLINE bool | Chip_TIMER_MatchPending (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Determine if a match interrupt is pending. | |
| STATIC INLINE bool | Chip_TIMER_CapturePending (LPC_TIMER_T *pTMR, int8_t capnum) |
| Determine if a capture interrupt is pending. | |
| STATIC INLINE void | Chip_TIMER_ClearMatch (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Clears a (pending) match interrupt. | |
| STATIC INLINE void | Chip_TIMER_ClearCapture (LPC_TIMER_T *pTMR, int8_t capnum) |
| Clears a (pending) capture interrupt. | |
| STATIC INLINE void | Chip_TIMER_Enable (LPC_TIMER_T *pTMR) |
| Enables the timer (starts count) | |
| STATIC INLINE void | Chip_TIMER_Disable (LPC_TIMER_T *pTMR) |
| Disables the timer (stops count) | |
| STATIC INLINE uint32_t | Chip_TIMER_ReadCount (LPC_TIMER_T *pTMR) |
| Returns the current timer count. | |
| STATIC INLINE uint32_t | Chip_TIMER_ReadPrescale (LPC_TIMER_T *pTMR) |
| Returns the current prescale count. | |
| STATIC INLINE void | Chip_TIMER_PrescaleSet (LPC_TIMER_T *pTMR, uint32_t prescale) |
| Sets the prescaler value. | |
| STATIC INLINE void | Chip_TIMER_SetMatch (LPC_TIMER_T *pTMR, int8_t matchnum, uint32_t matchval) |
| Sets a timer match value. | |
| STATIC INLINE uint32_t | Chip_TIMER_ReadCapture (LPC_TIMER_T *pTMR, int8_t capnum) |
| Reads a capture register. | |
| void | Chip_TIMER_Reset (LPC_TIMER_T *pTMR) |
| Resets the timer terminal and prescale counts to 0. | |
| STATIC INLINE void | Chip_TIMER_MatchEnableInt (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Enables a match interrupt that fires when the terminal count matches the match counter value. | |
| STATIC INLINE void | Chip_TIMER_MatchDisableInt (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Disables a match interrupt for a match counter. | |
| STATIC INLINE void | Chip_TIMER_ResetOnMatchEnable (LPC_TIMER_T *pTMR, int8_t matchnum) |
| For the specific match counter, enables reset of the terminal count register when a match occurs. | |
| STATIC INLINE void | Chip_TIMER_ResetOnMatchDisable (LPC_TIMER_T *pTMR, int8_t matchnum) |
| For the specific match counter, disables reset of the terminal count register when a match occurs. | |
| STATIC INLINE void | Chip_TIMER_StopOnMatchEnable (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Enable a match timer to stop the terminal count when a match count equals the terminal count. | |
| STATIC INLINE void | Chip_TIMER_StopOnMatchDisable (LPC_TIMER_T *pTMR, int8_t matchnum) |
| Disable stop on match for a match timer. | |
| STATIC INLINE void | Chip_TIMER_CaptureRisingEdgeEnable (LPC_TIMER_T *pTMR, int8_t capnum) |
| Enables capture on on rising edge of selected CAP signal for the selected capture register, enables the selected CAPn.capnum signal to load the capture register with the terminal coount on a rising edge. | |
| STATIC INLINE void | Chip_TIMER_CaptureRisingEdgeDisable (LPC_TIMER_T *pTMR, int8_t capnum) |
| Disables capture on on rising edge of selected CAP signal. | |
| STATIC INLINE void | Chip_TIMER_CaptureFallingEdgeEnable (LPC_TIMER_T *pTMR, int8_t capnum) |
| Enables capture on on falling edge of selected CAP signal. | |
| STATIC INLINE void | Chip_TIMER_CaptureFallingEdgeDisable (LPC_TIMER_T *pTMR, int8_t capnum) |
| Disables capture on on falling edge of selected CAP signal. | |
| STATIC INLINE void | Chip_TIMER_CaptureEnableInt (LPC_TIMER_T *pTMR, int8_t capnum) |
| Enables interrupt on capture of selected CAP signal. | |
| STATIC INLINE void | Chip_TIMER_CaptureDisableInt (LPC_TIMER_T *pTMR, int8_t capnum) |
| Disables interrupt on capture of selected CAP signal. | |
| void | Chip_TIMER_ExtMatchControlSet (LPC_TIMER_T *pTMR, int8_t initial_state, TIMER_PIN_MATCH_STATE_T matchState, int8_t matchnum) |
| Sets external match control (MATn.matchnum) pin control. | |
| STATIC INLINE void | Chip_TIMER_TIMER_SetCountClockSrc (LPC_TIMER_T *pTMR, TIMER_CAP_SRC_STATE_T capSrc, int8_t capnum) |
| Sets timer count source and edge with the selected passed from CapSrc. | |
Detailed Description
IMPORTANT NOTE ABOUT lpc11u6x TIMERS
For timer 0 on both the 16-bit and 32-bit timers, the capture functions use index 0 for capture 0 functions and index 2 for capture 1 functions, while timer 1 for both the 16-bit and 32-bit timers uses index 0 and index 1.
Use care when selecting The LPC11U6X User manual is inconsistent in it's designation of capture channels for each timer. See the comments for each function for special handling per timer when dealing with capture channels.
Typedef Documentation
| typedef enum IP_TIMER_CAP_SRC_STATE TIMER_CAP_SRC_STATE_T |
Standard timer clock and edge for count source.
| typedef enum IP_TIMER_PIN_MATCH_STATE TIMER_PIN_MATCH_STATE_T |
Standard timer initial match pin state and change state.
Enumeration Type Documentation
Standard timer clock and edge for count source.
- Enumerator:
Definition at line 472 of file timer_11u6x.h.
Standard timer initial match pin state and change state.
- Enumerator:
Definition at line 447 of file timer_11u6x.h.
Function Documentation
| STATIC INLINE void Chip_TIMER_CaptureDisableInt | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Disables interrupt on capture of selected CAP signal.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 439 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_CaptureEnableInt | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Enables interrupt on capture of selected CAP signal.
For the selected capture register, an interrupt will be generated when the enabled rising or falling edge on CAPn.capnum is detected.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 424 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_CaptureFallingEdgeDisable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Disables capture on on falling edge of selected CAP signal.
For the selected capture register, disables the selected CAPn.capnum signal to load the capture register with the terminal coount on a falling edge.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 407 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_CaptureFallingEdgeEnable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Enables capture on on falling edge of selected CAP signal.
For the selected capture register, enables the selected CAPn.capnum signal to load the capture register with the terminal coount on a falling edge.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 390 of file timer_11u6x.h.
| STATIC INLINE bool Chip_TIMER_CapturePending | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Determine if a capture interrupt is pending.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture interrupt number to check
- Returns:
- false if the interrupt is not pending, otherwise true
- Note:
- Determine if the capture interrupt for the passed capture pin is pending.
Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to check the capture interrupt status for channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2 for timer 0).
Definition at line 148 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_CaptureRisingEdgeDisable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Disables capture on on rising edge of selected CAP signal.
For the selected capture register, disables the selected CAPn.capnum signal to load the capture register with the terminal coount on a rising edge.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 373 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_CaptureRisingEdgeEnable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Enables capture on on rising edge of selected CAP signal for the selected capture register, enables the selected CAPn.capnum signal to load the capture register with the terminal coount on a rising edge.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture signal/register to use
- Returns:
- Nothing
- Note:
- Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to set channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2).
Definition at line 356 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_ClearCapture | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Clears a (pending) capture interrupt.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture interrupt number to clear
- Returns:
- Nothing
- Note:
- Clears a pending timer capture interrupt.
Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to check the capture interrupt status for channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2 for timer 0).
Definition at line 177 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_ClearMatch | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Clears a (pending) match interrupt.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match interrupt number to clear
- Returns:
- Nothing
- Note:
- Clears a pending timer match interrupt.
Definition at line 160 of file timer_11u6x.h.
| void Chip_TIMER_DeInit | ( | LPC_TIMER_T * | pTMR ) |
Shutdown a timer.
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Nothing
Definition at line 93 of file timer_11u6x.c.
| STATIC INLINE void Chip_TIMER_Disable | ( | LPC_TIMER_T * | pTMR ) |
Disables the timer (stops count)
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Nothing
- Note:
- Disables the timer to stop counting.
Definition at line 199 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_Enable | ( | LPC_TIMER_T * | pTMR ) |
Enables the timer (starts count)
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Nothing
- Note:
- Enables the timer to start counting.
Definition at line 188 of file timer_11u6x.h.
| void Chip_TIMER_ExtMatchControlSet | ( | LPC_TIMER_T * | pTMR, |
| int8_t | initial_state, | ||
| TIMER_PIN_MATCH_STATE_T | matchState, | ||
| int8_t | matchnum | ||
| ) |
Sets external match control (MATn.matchnum) pin control.
For the pin selected with matchnum, sets the function of the pin that occurs on a terminal count match for the match count.
- Parameters:
-
pTMR : Pointer to timer IP register address initial_state : Initial state of the pin, high(1) or low(0) matchState : Selects the match state for the pin matchnum : MATn.matchnum signal to use
- Returns:
- Nothing
- Note:
- For the pin selected with matchnum, sets the function of the pin that occurs on a terminal count match for the match count.
Definition at line 119 of file timer_11u6x.c.
| void Chip_TIMER_Init | ( | LPC_TIMER_T * | pTMR ) |
Initialize a timer.
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Nothing
Definition at line 87 of file timer_11u6x.c.
| STATIC INLINE void Chip_TIMER_MatchDisableInt | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Disables a match interrupt for a match counter.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 293 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_MatchEnableInt | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Enables a match interrupt that fires when the terminal count matches the match counter value.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 282 of file timer_11u6x.h.
| STATIC INLINE bool Chip_TIMER_MatchPending | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Determine if a match interrupt is pending.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match interrupt number to check
- Returns:
- false if the interrupt is not pending, otherwise true
- Note:
- Determine if the match interrupt for the passed timer and match counter is pending.
Definition at line 130 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_PrescaleSet | ( | LPC_TIMER_T * | pTMR, |
| uint32_t | prescale | ||
| ) |
Sets the prescaler value.
- Parameters:
-
pTMR : Pointer to timer IP register address prescale : Prescale value to set the prescale register to
- Returns:
- Nothing
- Note:
- Sets the prescale count value.
Definition at line 233 of file timer_11u6x.h.
| STATIC INLINE uint32_t Chip_TIMER_ReadCapture | ( | LPC_TIMER_T * | pTMR, |
| int8_t | capnum | ||
| ) |
Reads a capture register.
- Parameters:
-
pTMR : Pointer to timer IP register address capnum : Capture register to read
- Returns:
- The selected capture register value
- Note:
- Returns the selected capture register value.
Special handling for timer 0
For 16-bit and 32-bit timers 0, select channel 2 to get the capture count for channel 1. For 16-bit and 32-bit timers 1, select channel 1. (User manual designation of channel 1 is capture slot 2 for timer 0).
Definition at line 263 of file timer_11u6x.h.
| STATIC INLINE uint32_t Chip_TIMER_ReadCount | ( | LPC_TIMER_T * | pTMR ) |
Returns the current timer count.
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Current timer terminal count value
- Note:
- Returns the current timer terminal count.
Definition at line 210 of file timer_11u6x.h.
| STATIC INLINE uint32_t Chip_TIMER_ReadPrescale | ( | LPC_TIMER_T * | pTMR ) |
Returns the current prescale count.
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Current timer prescale count value
- Note:
- Returns the current prescale count.
Definition at line 221 of file timer_11u6x.h.
| void Chip_TIMER_Reset | ( | LPC_TIMER_T * | pTMR ) |
Resets the timer terminal and prescale counts to 0.
- Parameters:
-
pTMR : Pointer to timer IP register address
- Returns:
- Nothing
Definition at line 99 of file timer_11u6x.c.
| STATIC INLINE void Chip_TIMER_ResetOnMatchDisable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
For the specific match counter, disables reset of the terminal count register when a match occurs.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 315 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_ResetOnMatchEnable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
For the specific match counter, enables reset of the terminal count register when a match occurs.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 304 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_SetMatch | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum, | ||
| uint32_t | matchval | ||
| ) |
Sets a timer match value.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer to set match count for matchval : Match value for the selected match count
- Returns:
- Nothing
- Note:
- Sets one of the timer match values.
Definition at line 246 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_StopOnMatchDisable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Disable stop on match for a match timer.
Disables a match timer to stop the terminal count when a match count equals the terminal count.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 339 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_StopOnMatchEnable | ( | LPC_TIMER_T * | pTMR, |
| int8_t | matchnum | ||
| ) |
Enable a match timer to stop the terminal count when a match count equals the terminal count.
- Parameters:
-
pTMR : Pointer to timer IP register address matchnum : Match timer, 0 to 3
- Returns:
- Nothing
Definition at line 327 of file timer_11u6x.h.
| STATIC INLINE void Chip_TIMER_TIMER_SetCountClockSrc | ( | LPC_TIMER_T * | pTMR, |
| TIMER_CAP_SRC_STATE_T | capSrc, | ||
| int8_t | capnum | ||
| ) |
Sets timer count source and edge with the selected passed from CapSrc.
If CapSrc selected a CAPn pin, select the specific CAPn pin with the capnum value.
- Parameters:
-
pTMR : Pointer to timer IP register address capSrc : timer clock source and edge capnum : CAPn.capnum pin to use (if used)
- Returns:
- Nothing
- Note:
- If CapSrc selected a CAPn pin, select the specific CAPn pin with the capnum value.
Definition at line 488 of file timer_11u6x.h.
Generated on Tue Jul 12 2022 21:03:52 by
1.7.2