nRF51 SDK - S120 SoftDevice
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Hardware abstraction layer for accessing the timer peripheral. More...

Macros

#define TIMER_INSTANCE_NUMBER   3
 
#define TIMER_CHANNEL_NUMBER   4
 
#define TIMER_IS_BIT_WIDTH_VALID(instance_id, mode)   (((instance_id>0) && (mode>NRF_TIMER_BIT_WIDTH_16)) ? false : true)
 Macro for validating correctness of BIT_WIDTH setting.
 
#define TIMER_CC_SHORT(ch)
 

Enumerations

enum  nrf_timer_task_t {
  NRF_TIMER_TASK_START = offsetof(NRF_TIMER_Type, TASKS_START),
  NRF_TIMER_TASK_STOP = offsetof(NRF_TIMER_Type, TASKS_STOP),
  NRF_TIMER_TASK_COUNT = offsetof(NRF_TIMER_Type, TASKS_COUNT),
  NRF_TIMER_TASK_CLEAR = offsetof(NRF_TIMER_Type, TASKS_CLEAR),
  NRF_TIMER_TASK_SHUTDOWN = offsetof(NRF_TIMER_Type, TASKS_SHUTDOWN),
  NRF_TIMER_TASK_CAPTURE0 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[0]),
  NRF_TIMER_TASK_CAPTURE1 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[1]),
  NRF_TIMER_TASK_CAPTURE2 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[2]),
  NRF_TIMER_TASK_CAPTURE3 = offsetof(NRF_TIMER_Type, TASKS_CAPTURE[3])
}
 Timer tasks. More...
 
enum  nrf_timer_event_t {
  NRF_TIMER_EVENT_COMPARE0 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[0]),
  NRF_TIMER_EVENT_COMPARE1 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[1]),
  NRF_TIMER_EVENT_COMPARE2 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[2]),
  NRF_TIMER_EVENT_COMPARE3 = offsetof(NRF_TIMER_Type, EVENTS_COMPARE[3])
}
 Timer events. More...
 
enum  nrf_timer_short_mask_t {
  NRF_TIMER_SHORT_COMPARE0_STOP_MASK = TIMER_SHORTS_COMPARE0_STOP_Msk,
  NRF_TIMER_SHORT_COMPARE1_STOP_MASK = TIMER_SHORTS_COMPARE1_STOP_Msk,
  NRF_TIMER_SHORT_COMPARE2_STOP_MASK = TIMER_SHORTS_COMPARE2_STOP_Msk,
  NRF_TIMER_SHORT_COMPARE3_STOP_MASK = TIMER_SHORTS_COMPARE3_STOP_Msk,
  NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK = TIMER_SHORTS_COMPARE0_CLEAR_Msk,
  NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK = TIMER_SHORTS_COMPARE1_CLEAR_Msk,
  NRF_TIMER_SHORT_COMPARE2_CLEAR_MASK = TIMER_SHORTS_COMPARE2_CLEAR_Msk,
  NRF_TIMER_SHORT_COMPARE3_CLEAR_MASK = TIMER_SHORTS_COMPARE3_CLEAR_Msk
}
 Types of timer shortcuts. More...
 
enum  nrf_timer_mode_t {
  NRF_TIMER_MODE_TIMER = TIMER_MODE_MODE_Timer,
  NRF_TIMER_MODE_COUNTER = TIMER_MODE_MODE_Counter
}
 Timer modes. More...
 
enum  nrf_timer_bit_width_t {
  NRF_TIMER_BIT_WIDTH_8 = TIMER_BITMODE_BITMODE_08Bit,
  NRF_TIMER_BIT_WIDTH_16 = TIMER_BITMODE_BITMODE_16Bit,
  NRF_TIMER_BIT_WIDTH_24 = TIMER_BITMODE_BITMODE_24Bit,
  NRF_TIMER_BIT_WIDTH_32 = TIMER_BITMODE_BITMODE_32Bit
}
 Timer bit width. More...
 
enum  nrf_timer_frequency_t {
  NRF_TIMER_FREQ_16MHz = 0,
  NRF_TIMER_FREQ_8MHz,
  NRF_TIMER_FREQ_4MHz,
  NRF_TIMER_FREQ_2MHz,
  NRF_TIMER_FREQ_1MHz,
  NRF_TIMER_FREQ_500kHz,
  NRF_TIMER_FREQ_250kHz,
  NRF_TIMER_FREQ_125kHz,
  NRF_TIMER_FREQ_62500Hz,
  NRF_TIMER_FREQ_31250Hz
}
 Timer prescalers. More...
 
enum  nrf_timer_cc_channel_t {
  NRF_TIMER_CC_CHANNEL0 = 0,
  NRF_TIMER_CC_CHANNEL1,
  NRF_TIMER_CC_CHANNEL2,
  NRF_TIMER_CC_CHANNEL3
}
 Timer compare/capture channels. More...
 
enum  nrf_timer_int_mask_t {
  NRF_TIMER_INT_COMPARE0_MASK = TIMER_INTENSET_COMPARE0_Msk,
  NRF_TIMER_INT_COMPARE1_MASK = TIMER_INTENSET_COMPARE1_Msk,
  NRF_TIMER_INT_COMPARE2_MASK = TIMER_INTENSET_COMPARE2_Msk,
  NRF_TIMER_INT_COMPARE3_MASK = TIMER_INTENSET_COMPARE3_Msk
}
 Timer interrupts. More...
 

Functions

__STATIC_INLINE void nrf_timer_task_trigger (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_task_t timer_task)
 Function for activating a specific timer task. More...
 
__STATIC_INLINE uint32_t * nrf_timer_task_address_get (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_task_t timer_task)
 Function for returning the address of a specific timer task register. More...
 
__STATIC_INLINE void nrf_timer_event_clear (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_event_t timer_event)
 Function for clearing a specific timer event. More...
 
__STATIC_INLINE bool nrf_timer_event_check (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_event_t timer_event)
 Function for returning the state of a specific event. More...
 
__STATIC_INLINE uint32_t * nrf_timer_event_address_get (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_event_t timer_event)
 Function for returning the address of a specific timer event register. More...
 
__STATIC_INLINE void nrf_timer_shorts_enable (NRF_TIMER_Type *NRF_TIMERx, uint32_t timer_short_mask)
 Function for seting a shortcut for a specific compare channel. More...
 
__STATIC_INLINE void nrf_timer_shorts_disable (NRF_TIMER_Type *NRF_TIMERx, uint32_t timer_short_mask)
 Function for clearing a shortcut for a specific compare channel. More...
 
__STATIC_INLINE void nrf_timer_mode_set (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_mode_t timer_mode)
 Function for setting the timer mode. More...
 
__STATIC_INLINE nrf_timer_mode_t nrf_timer_mode_get (NRF_TIMER_Type *NRF_TIMERx)
 Function for retrieving the timer mode. More...
 
__STATIC_INLINE void nrf_timer_bit_width_set (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_bit_width_t timer_bit_width)
 Function for setting the timer bit width. More...
 
__STATIC_INLINE
nrf_timer_bit_width_t 
nrf_timer_bit_width_get (NRF_TIMER_Type *NRF_TIMERx)
 Function for retrieving the timer bit width. More...
 
__STATIC_INLINE void nrf_timer_frequency_set (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_frequency_t timer_frequency)
 Function for setting the timer frequency. More...
 
__STATIC_INLINE
nrf_timer_frequency_t 
nrf_timer_frequency_get (NRF_TIMER_Type *NRF_TIMERx)
 Function for retrieving the timer frequency. More...
 
__STATIC_INLINE uint32_t nrf_timer_cc_read (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_cc_channel_t cc_channel)
 Function for retrieving the value of a given CC channel. More...
 
__STATIC_INLINE void nrf_timer_cc_write (NRF_TIMER_Type *NRF_TIMERx, nrf_timer_cc_channel_t cc_channel, uint32_t cc_value)
 Function for writing to a specific CC channel. More...
 
__STATIC_INLINE void nrf_timer_int_enable (NRF_TIMER_Type *NRF_TIMERx, uint32_t timer_int)
 Function for enableing a specific interrupt. More...
 
__STATIC_INLINE bool nrf_timer_int_enable_check (NRF_TIMER_Type *NRF_TIMERx, uint32_t timer_int)
 Function for retrieving the state of a given interrupt. More...
 
__STATIC_INLINE void nrf_timer_int_disable (NRF_TIMER_Type *NRF_TIMERx, uint32_t timer_int)
 Function for disabling a specific interrupt. More...
 

Detailed Description

Hardware abstraction layer for accessing the timer peripheral.

Macro Definition Documentation

#define TIMER_CC_SHORT (   ch)
Value:
((TIMER_SHORTS_COMPARE0_STOP_Msk << ch) | \
(TIMER_SHORTS_COMPARE0_CLEAR_Msk << ch))

Enumeration Type Documentation

Timer bit width.

Enumerator
NRF_TIMER_BIT_WIDTH_8 

Timer bit width 8 bit.

NRF_TIMER_BIT_WIDTH_16 

Timer bit width 16 bit.

NRF_TIMER_BIT_WIDTH_24 

Timer bit width 24 bit.

NRF_TIMER_BIT_WIDTH_32 

Timer bit width 32 bit.

Timer compare/capture channels.

Enumerator
NRF_TIMER_CC_CHANNEL0 

Timer compare/capture channel 0.

NRF_TIMER_CC_CHANNEL1 

Timer compare/capture channel 1.

NRF_TIMER_CC_CHANNEL2 

Timer compare/capture channel 2.

NRF_TIMER_CC_CHANNEL3 

Timer compare/capture channel 3.

Timer events.

Enumerator
NRF_TIMER_EVENT_COMPARE0 

Event from compare channel 0.

NRF_TIMER_EVENT_COMPARE1 

Event from compare channel 1.

NRF_TIMER_EVENT_COMPARE2 

Event from compare channel 2.

NRF_TIMER_EVENT_COMPARE3 

Event from compare channel 3.

Timer prescalers.

Enumerator
NRF_TIMER_FREQ_16MHz 

Timer frequency 16 MHz.

NRF_TIMER_FREQ_8MHz 

Timer frequency 8 MHz.

NRF_TIMER_FREQ_4MHz 

Timer frequency 4 MHz.

NRF_TIMER_FREQ_2MHz 

Timer frequency 2 MHz.

NRF_TIMER_FREQ_1MHz 

Timer frequency 1 MHz.

NRF_TIMER_FREQ_500kHz 

Timer frequency 500 kHz.

NRF_TIMER_FREQ_250kHz 

Timer frequency 250 kHz.

NRF_TIMER_FREQ_125kHz 

Timer frequency 125 kHz.

NRF_TIMER_FREQ_62500Hz 

Timer frequency 62500 Hz.

NRF_TIMER_FREQ_31250Hz 

Timer frequency 31250 Hz.

Timer interrupts.

Enumerator
NRF_TIMER_INT_COMPARE0_MASK 

Timer interrupt from compare event on channel 0.

NRF_TIMER_INT_COMPARE1_MASK 

Timer interrupt from compare event on channel 1.

NRF_TIMER_INT_COMPARE2_MASK 

Timer interrupt from compare event on channel 2.

NRF_TIMER_INT_COMPARE3_MASK 

Timer interrupt from compare event on channel 3.

Timer modes.

Enumerator
NRF_TIMER_MODE_TIMER 

Timer mode: timer.

NRF_TIMER_MODE_COUNTER 

Timer mode: counter.

Types of timer shortcuts.

Enumerator
NRF_TIMER_SHORT_COMPARE0_STOP_MASK 

Shortcut for stopping the timer based on compare 0.

NRF_TIMER_SHORT_COMPARE1_STOP_MASK 

Shortcut for stopping the timer based on compare 1.

NRF_TIMER_SHORT_COMPARE2_STOP_MASK 

Shortcut for stopping the timer based on compare 2.

NRF_TIMER_SHORT_COMPARE3_STOP_MASK 

Shortcut for stopping the timer based on compare 3.

NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK 

Shortcut for clearing the timer based on compare 0.

NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK 

Shortcut for clearing the timer based on compare 1.

NRF_TIMER_SHORT_COMPARE2_CLEAR_MASK 

Shortcut for clearing the timer based on compare 2.

NRF_TIMER_SHORT_COMPARE3_CLEAR_MASK 

Shortcut for clearing the timer based on compare 3.

Timer tasks.

Enumerator
NRF_TIMER_TASK_START 

Task for starting the timer.

NRF_TIMER_TASK_STOP 

Task for stoping the timer.

NRF_TIMER_TASK_COUNT 

Task for incrementing the timer (in counter mode).

NRF_TIMER_TASK_CLEAR 

Task for resetting the timer value.

NRF_TIMER_TASK_SHUTDOWN 

Task for powering off the timer.

NRF_TIMER_TASK_CAPTURE0 

Task for capturing the timer value on channel 0.

NRF_TIMER_TASK_CAPTURE1 

Task for capturing the timer value on channel 1.

NRF_TIMER_TASK_CAPTURE2 

Task for capturing the timer value on channel 2.

NRF_TIMER_TASK_CAPTURE3 

Task for capturing the timer value on channel 3.

Function Documentation

__STATIC_INLINE nrf_timer_bit_width_t nrf_timer_bit_width_get ( NRF_TIMER_Type *  NRF_TIMERx)

Function for retrieving the timer bit width.

Parameters
NRF_TIMERxTimer instance.
__STATIC_INLINE void nrf_timer_bit_width_set ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_bit_width_t  timer_bit_width 
)

Function for setting the timer bit width.

Parameters
NRF_TIMERxTimer instance.
timer_bit_widthTimer bit width.
__STATIC_INLINE uint32_t nrf_timer_cc_read ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_cc_channel_t  cc_channel 
)

Function for retrieving the value of a given CC channel.

Parameters
NRF_TIMERxTimer instance.
cc_channelCC channel to read.
__STATIC_INLINE void nrf_timer_cc_write ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_cc_channel_t  cc_channel,
uint32_t  cc_value 
)

Function for writing to a specific CC channel.

Parameters
NRF_TIMERxTimer instance.
cc_channelCC channel to write to.
cc_valueValue to write to the CC channel.
__STATIC_INLINE uint32_t* nrf_timer_event_address_get ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_event_t  timer_event 
)

Function for returning the address of a specific timer event register.

Parameters
NRF_TIMERxTimer instance.
timer_eventTimer event.
__STATIC_INLINE bool nrf_timer_event_check ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_event_t  timer_event 
)

Function for returning the state of a specific event.

Parameters
NRF_TIMERxTimer instance.
timer_eventTimer event to check.
__STATIC_INLINE void nrf_timer_event_clear ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_event_t  timer_event 
)

Function for clearing a specific timer event.

Parameters
NRF_TIMERxTimer instance.
timer_eventTimer event to clear.
__STATIC_INLINE nrf_timer_frequency_t nrf_timer_frequency_get ( NRF_TIMER_Type *  NRF_TIMERx)

Function for retrieving the timer frequency.

Parameters
NRF_TIMERxTimer instance.
__STATIC_INLINE void nrf_timer_frequency_set ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_frequency_t  timer_frequency 
)

Function for setting the timer frequency.

Parameters
NRF_TIMERxTimer instance.
timer_frequencyTimer frequency value.
__STATIC_INLINE void nrf_timer_int_disable ( NRF_TIMER_Type *  NRF_TIMERx,
uint32_t  timer_int 
)

Function for disabling a specific interrupt.

Parameters
NRF_TIMERxTimer instance.
timer_intInterrupt to disable.
__STATIC_INLINE void nrf_timer_int_enable ( NRF_TIMER_Type *  NRF_TIMERx,
uint32_t  timer_int 
)

Function for enableing a specific interrupt.

Parameters
NRF_TIMERxTimer instance.
timer_intInterrupt to enable.
__STATIC_INLINE bool nrf_timer_int_enable_check ( NRF_TIMER_Type *  NRF_TIMERx,
uint32_t  timer_int 
)

Function for retrieving the state of a given interrupt.

Parameters
NRF_TIMERxTimer instance.
timer_intInterrupt to check.
Return values
trueIf the interrupt is enabled.
falseIf the interrupt is not enabled.
__STATIC_INLINE nrf_timer_mode_t nrf_timer_mode_get ( NRF_TIMER_Type *  NRF_TIMERx)

Function for retrieving the timer mode.

Parameters
NRF_TIMERxTimer instance.
__STATIC_INLINE void nrf_timer_mode_set ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_mode_t  timer_mode 
)

Function for setting the timer mode.

Parameters
NRF_TIMERxTimer instance.
timer_modeTimer mode.
__STATIC_INLINE void nrf_timer_shorts_disable ( NRF_TIMER_Type *  NRF_TIMERx,
uint32_t  timer_short_mask 
)

Function for clearing a shortcut for a specific compare channel.

Parameters
NRF_TIMERxTimer instance.
timer_short_maskType of timer shortcut.
__STATIC_INLINE void nrf_timer_shorts_enable ( NRF_TIMER_Type *  NRF_TIMERx,
uint32_t  timer_short_mask 
)

Function for seting a shortcut for a specific compare channel.

Parameters
NRF_TIMERxTimer instance.
timer_short_maskType of timer shortcut.
__STATIC_INLINE uint32_t* nrf_timer_task_address_get ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_task_t  timer_task 
)

Function for returning the address of a specific timer task register.

Parameters
NRF_TIMERxTimer instance.
timer_taskTimer task.
__STATIC_INLINE void nrf_timer_task_trigger ( NRF_TIMER_Type *  NRF_TIMERx,
nrf_timer_task_t  timer_task 
)

Function for activating a specific timer task.

Parameters
NRF_TIMERxTimer instance.
timer_taskTimer task.