| nRF5 SDK v12.0.0 |

Choose documentation: | nRF5 SDK | S130 SoftDevice API | S132 SoftDevice API | S212 SoftDevice API | S332 SoftDevice API

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Macros | Enumerations | Functions
Clock HAL
Clock HAL and driver

Hardware access layer for managing the low-frequency clock (LFCLK) and the high-frequency clock (HFCLK). More...

## Macros
#define | NRF_CLOCK_TASK_TRIGGER (1UL)
#define | NRF_CLOCK_EVENT_CLEAR (0UL)

## Enumerations
enum | nrf_clock_lfclk_t { NRF_CLOCK_LFCLK_RC = CLOCK_LFCLKSRC_SRC_RC, NRF_CLOCK_LFCLK_Xtal = CLOCK_LFCLKSRC_SRC_Xtal, NRF_CLOCK_LFCLK_Synth = CLOCK_LFCLKSRC_SRC_Synth }
| Low-frequency clock sources. More...
enum | nrf_clock_hfclk_t { NRF_CLOCK_HFCLK_LOW_ACCURACY = CLOCK_HFCLKSTAT_SRC_RC, NRF_CLOCK_HFCLK_HIGH_ACCURACY = CLOCK_HFCLKSTAT_SRC_Xtal }
| High-frequency clock sources. More...
enum | nrf_clock_start_task_status_t { NRF_CLOCK_START_TASK_NOT_TRIGGERED = CLOCK_LFCLKRUN_STATUS_NotTriggered, NRF_CLOCK_START_TASK_TRIGGERED = CLOCK_LFCLKRUN_STATUS_Triggered }
| Trigger status of task LFCLKSTART/HFCLKSTART. More...
enum | nrf_clock_int_mask_t { NRF_CLOCK_INT_HF_STARTED_MASK = CLOCK_INTENSET_HFCLKSTARTED_Msk, NRF_CLOCK_INT_LF_STARTED_MASK = CLOCK_INTENSET_LFCLKSTARTED_Msk, NRF_CLOCK_INT_DONE_MASK = CLOCK_INTENSET_DONE_Msk, NRF_CLOCK_INT_CTTO_MASK = CLOCK_INTENSET_CTTO_Msk }
| Interrupts. More...
enum | nrf_clock_task_t { NRF_CLOCK_TASK_HFCLKSTART = offsetof(NRF_CLOCK_Type, TASKS_HFCLKSTART), NRF_CLOCK_TASK_HFCLKSTOP = offsetof(NRF_CLOCK_Type, TASKS_HFCLKSTOP), NRF_CLOCK_TASK_LFCLKSTART = offsetof(NRF_CLOCK_Type, TASKS_LFCLKSTART), NRF_CLOCK_TASK_LFCLKSTOP = offsetof(NRF_CLOCK_Type, TASKS_LFCLKSTOP), NRF_CLOCK_TASK_CAL = offsetof(NRF_CLOCK_Type, TASKS_CAL), NRF_CLOCK_TASK_CTSTART = offsetof(NRF_CLOCK_Type, TASKS_CTSTART), NRF_CLOCK_TASK_CTSTOP = offsetof(NRF_CLOCK_Type, TASKS_CTSTOP) }
| Tasks. More...
enum | nrf_clock_event_t { NRF_CLOCK_EVENT_HFCLKSTARTED = offsetof(NRF_CLOCK_Type, EVENTS_HFCLKSTARTED), NRF_CLOCK_EVENT_LFCLKSTARTED = offsetof(NRF_CLOCK_Type, EVENTS_LFCLKSTARTED), NRF_CLOCK_EVENT_DONE = offsetof(NRF_CLOCK_Type, EVENTS_DONE), NRF_CLOCK_EVENT_CTTO = offsetof(NRF_CLOCK_Type, EVENTS_CTTO) }
| Events. More...

## Functions
__STATIC_INLINE void | nrf_clock_int_enable (uint32_t int_mask)
| Function for enabling a specific interrupt. More...
__STATIC_INLINE void | nrf_clock_int_disable (uint32_t int_mask)
| Function for disabling a specific interrupt. More...
__STATIC_INLINE bool | nrf_clock_int_enable_check (nrf_clock_int_mask_t int_mask)
| Function for retrieving the state of a specific interrupt. More...
__STATIC_INLINE uint32_t | nrf_clock_task_address_get (nrf_clock_task_t task)
| Function for retrieving the address of a specific task. More...
__STATIC_INLINE void | nrf_clock_task_trigger (nrf_clock_task_t task)
| Function for setting a specific task. More...
__STATIC_INLINE uint32_t | nrf_clock_event_address_get (nrf_clock_event_t event)
| Function for retrieving the address of a specific event. More...
__STATIC_INLINE void | nrf_clock_event_clear (nrf_clock_event_t event)
| Function for clearing a specific event. More...
__STATIC_INLINE bool | nrf_clock_event_check (nrf_clock_event_t event)
| Function for retrieving the state of a specific event. More...
__STATIC_INLINE void | nrf_clock_lf_src_set (nrf_clock_lfclk_t source)
| Function for changing the low-frequency clock source. More...
__STATIC_INLINE nrf_clock_lfclk_t | nrf_clock_lf_src_get (void)
| Function for retrieving the selected source for the low-frequency clock. More...
__STATIC_INLINE nrf_clock_lfclk_t | nrf_clock_lf_actv_src_get (void)
| Function for retrieving the active source of the low-frequency clock. More...
__STATIC_INLINE nrf_clock_lfclk_t | nrf_clock_lf_srccopy_get (void)
| Function for retrieving the clock source for the LFCLK clock when the task LKCLKSTART is triggered. More...
__STATIC_INLINE bool | nrf_clock_lf_is_running (void)
| Function for retrieving the state of the LFCLK clock. More...
__STATIC_INLINE nrf_clock_start_task_status_t | nrf_clock_lf_start_task_status_get (void)
| Function for retrieving the trigger status of the task LFCLKSTART. More...
__STATIC_INLINE nrf_clock_hfclk_t | nrf_clock_hf_src_get (void)
| Function for retrieving the active source of the high-frequency clock. More...
__STATIC_INLINE bool | nrf_clock_hf_is_running (nrf_clock_hfclk_t clk_src)
| Function for retrieving the state of the HFCLK clock. More...
__STATIC_INLINE nrf_clock_start_task_status_t | nrf_clock_hf_start_task_status_get (void)
| Function for retrieving the trigger status of the task HFCLKSTART. More...
__STATIC_INLINE void | nrf_clock_cal_timer_timeout_set (uint32_t interval)
| Function for changing the calibration timer interval. More...

## Detailed Description

Hardware access layer for managing the low-frequency clock (LFCLK) and the high-frequency clock (HFCLK).

## Enumeration Type Documentation

enum nrf_clock_event_t

Events.

Enumerator
NRF_CLOCK_EVENT_HFCLKSTARTED | HFCLK oscillator started.
NRF_CLOCK_EVENT_LFCLKSTARTED | LFCLK oscillator started.
NRF_CLOCK_EVENT_DONE | Calibration of LFCLK RC oscillator completed.
NRF_CLOCK_EVENT_CTTO | Calibration timer time-out.

enum nrf_clock_hfclk_t

High-frequency clock sources.

Enumerator
NRF_CLOCK_HFCLK_LOW_ACCURACY | Internal 16 MHz RC oscillator.
NRF_CLOCK_HFCLK_HIGH_ACCURACY | External 16 MHz/32 MHz crystal oscillator.

enum nrf_clock_int_mask_t

Interrupts.

Enumerator
NRF_CLOCK_INT_HF_STARTED_MASK | Interrupt on HFCLKSTARTED event.
NRF_CLOCK_INT_LF_STARTED_MASK | Interrupt on LFCLKSTARTED event.
NRF_CLOCK_INT_DONE_MASK | Interrupt on DONE event.
NRF_CLOCK_INT_CTTO_MASK | Interrupt on CTTO event.

enum nrf_clock_lfclk_t

Low-frequency clock sources.

Used by LFCLKSRC, LFCLKSTAT, and LFCLKSRCCOPY registers.

Enumerator
NRF_CLOCK_LFCLK_RC | Internal 32 kHz RC oscillator.
NRF_CLOCK_LFCLK_Xtal | External 32 kHz crystal.
NRF_CLOCK_LFCLK_Synth | Internal 32 kHz synthesizer from HFCLK system clock.

enum nrf_clock_start_task_status_t

Trigger status of task LFCLKSTART/HFCLKSTART.

Used by LFCLKRUN and HFCLKRUN registers.

Enumerator
NRF_CLOCK_START_TASK_NOT_TRIGGERED | Task LFCLKSTART/HFCLKSTART has not been triggered.
NRF_CLOCK_START_TASK_TRIGGERED | Task LFCLKSTART/HFCLKSTART has been triggered.

enum nrf_clock_task_t

Tasks.

The NRF_CLOCK_TASK_LFCLKSTOP task cannot be set when the low-frequency clock is not running. The NRF_CLOCK_TASK_HFCLKSTOP task cannot be set when the high-frequency clock is not running.

Enumerator
NRF_CLOCK_TASK_HFCLKSTART | Start HFCLK clock source.
NRF_CLOCK_TASK_HFCLKSTOP | Stop HFCLK clock source.
NRF_CLOCK_TASK_LFCLKSTART | Start LFCLK clock source.
NRF_CLOCK_TASK_LFCLKSTOP | Stop LFCLK clock source.
NRF_CLOCK_TASK_CAL | Start calibration of LFCLK RC oscillator.
NRF_CLOCK_TASK_CTSTART | Start calibration timer.
NRF_CLOCK_TASK_CTSTOP | Stop calibration timer.

## Function Documentation

__STATIC_INLINE void nrf_clock_cal_timer_timeout_set | ( | uint32_t | interval | ) |

Function for changing the calibration timer interval.

Parameters

  [in] | interval | New calibration timer interval in 0.25 s resolution (range: 0.25 seconds to 31.75 seconds).

__STATIC_INLINE uint32_t nrf_clock_event_address_get | ( | nrf_clock_event_t | event | ) |

Function for retrieving the address of a specific event.

This function can be used by the PPI module.

Parameters

  [in] | event | Event.

Returns
  Address of the requested event register.

__STATIC_INLINE bool nrf_clock_event_check | ( | nrf_clock_event_t | event | ) |

Function for retrieving the state of a specific event.

Parameters

  [in] | event | Event.

Return values

  true | If the event is set.
  false | If the event is not set.

__STATIC_INLINE void nrf_clock_event_clear | ( | nrf_clock_event_t | event | ) |

Function for clearing a specific event.

Parameters

  [in] | event | Event.

__STATIC_INLINE bool nrf_clock_hf_is_running | ( | nrf_clock_hfclk_t | clk_src | ) |

Function for retrieving the state of the HFCLK clock.

Parameters

  [in] | clk_src | Clock source to be checked.

Return values

  false | If the HFCLK clock is not running.
  true | If the HFCLK clock is running.

__STATIC_INLINE nrf_clock_hfclk_t nrf_clock_hf_src_get | ( | void |  | ) |

Function for retrieving the active source of the high-frequency clock.

Return values

  NRF_CLOCK_HFCLK_LOW_ACCURACY | If the internal 16 MHz RC oscillator is the active source of the high-frequency clock.
  NRF_CLOCK_HFCLK_HIGH_ACCURACY | If an external 16 MHz/32 MHz crystal oscillator is the active source of the high-frequency clock.

__STATIC_INLINE nrf_clock_start_task_status_t nrf_clock_hf_start_task_status_get | ( | void |  | ) |

Function for retrieving the trigger status of the task HFCLKSTART.

Return values

  NRF_CLOCK_START_TASK_NOT_TRIGGERED | If the task HFCLKSTART has not been triggered.
  NRF_CLOCK_START_TASK_TRIGGERED | If the task HFCLKSTART has been triggered.

__STATIC_INLINE void nrf_clock_int_disable | ( | uint32_t | int_mask | ) |

Function for disabling a specific interrupt.

Parameters

  [in] | int_mask | Interrupt.

__STATIC_INLINE void nrf_clock_int_enable | ( | uint32_t | int_mask | ) |

Function for enabling a specific interrupt.

Parameters

  [in] | int_mask | Interrupt.

__STATIC_INLINE bool nrf_clock_int_enable_check | ( | nrf_clock_int_mask_t | int_mask | ) |

Function for retrieving the state of a specific interrupt.

Parameters

  [in] | int_mask | Interrupt.

Return values

  true | If the interrupt is enabled.
  false | If the interrupt is not enabled.

__STATIC_INLINE nrf_clock_lfclk_t nrf_clock_lf_actv_src_get | ( | void |  | ) |

Function for retrieving the active source of the low-frequency clock.

Return values

  NRF_CLOCK_LFCLK_RC | If the internal 32 kHz RC oscillator is the active source of the low-frequency clock.
  NRF_CLOCK_LFCLK_Xtal | If an external 32 kHz crystal oscillator is the active source of the low-frequency clock.
  NRF_CLOCK_LFCLK_Synth | If the internal 32 kHz synthesizer from the HFCLK is the active source of the low-frequency clock.

__STATIC_INLINE bool nrf_clock_lf_is_running | ( | void |  | ) |

Function for retrieving the state of the LFCLK clock.

Return values

  false | If the LFCLK clock is not running.
  true | If the LFCLK clock is running.

__STATIC_INLINE nrf_clock_lfclk_t nrf_clock_lf_src_get | ( | void |  | ) |

Function for retrieving the selected source for the low-frequency clock.

Return values

  NRF_CLOCK_LFCLK_RC | If the internal 32 kHz RC oscillator is the selected source for the low-frequency clock.
  NRF_CLOCK_LFCLK_Xtal | If an external 32 kHz crystal oscillator is the selected source for the low-frequency clock.
  NRF_CLOCK_LFCLK_Synth | If the internal 32 kHz synthesizer from the HFCLK is the selected source for the low-frequency clock.

__STATIC_INLINE void nrf_clock_lf_src_set | ( | nrf_clock_lfclk_t | source | ) |

Function for changing the low-frequency clock source.

This function cannot be called when the low-frequency clock is running.

Parameters

  [in] | source | New low-frequency clock source.

__STATIC_INLINE nrf_clock_lfclk_t nrf_clock_lf_srccopy_get | ( | void |  | ) |

Function for retrieving the clock source for the LFCLK clock when the task LKCLKSTART is triggered.

Return values

  NRF_CLOCK_LFCLK_RC | If the internal 32 kHz RC oscillator is running and generating the LFCLK clock.
  NRF_CLOCK_LFCLK_Xtal | If an external 32 kHz crystal oscillator is running and generating the LFCLK clock.
  NRF_CLOCK_LFCLK_Synth | If the internal 32 kHz synthesizer from the HFCLK is running and generating the LFCLK clock.

__STATIC_INLINE nrf_clock_start_task_status_t nrf_clock_lf_start_task_status_get | ( | void |  | ) |

Function for retrieving the trigger status of the task LFCLKSTART.

Return values

  NRF_CLOCK_START_TASK_NOT_TRIGGERED | If the task LFCLKSTART has not been triggered.
  NRF_CLOCK_START_TASK_TRIGGERED | If the task LFCLKSTART has been triggered.

__STATIC_INLINE uint32_t nrf_clock_task_address_get | ( | nrf_clock_task_t | task | ) |

Function for retrieving the address of a specific task.

This function can be used by the PPI module.

Parameters

  [in] | task | Task.

Returns
  Address of the requested task register.

__STATIC_INLINE void nrf_clock_task_trigger | ( | nrf_clock_task_t | task | ) |

Function for setting a specific task.

Parameters

  [in] | task | Task.