WDT driver

group nrfx_wdt

Watchdog Timer (WDT) peripheral driver.

Defines

NRFX_WDT_IRQ_CONFIG

WDT instance interrupt priority configuration.

NRFX_WDT_INSTANCE(id)

Macro for creating an instance of the WDT driver.

NRFX_WDT_DEFAULT_CONFIG

WDT driver default configuration.

This configuration sets up WDT with the following options:

  • run when CPU is in SLEEP mode, pause when in HALT mode

  • reload value: 2000 ms

Typedefs

typedef void (*nrfx_wdt_event_handler_t)(void)

WDT event handler function type.

typedef nrf_wdt_rr_register_t nrfx_wdt_channel_id

WDT channel ID type.

Functions

nrfx_err_t nrfx_wdt_init(nrfx_wdt_t const *p_instance, nrfx_wdt_config_t const *p_config, nrfx_wdt_event_handler_t wdt_event_handler)

Function for initializing the WDT driver instance.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

  • p_config[in] Pointer to the structure with the initial configuration.

  • wdt_event_handler[in] Event handler provided by the user. Ignored when NRFX_WDT_CONFIG_NO_IRQ option is enabled.

Return values
  • NRFX_SUCCESS – Initialization was successful.

  • NRFX_ERROR_INVALID_STATE – The driver was already initialized.

nrfx_err_t nrfx_wdt_channel_alloc(nrfx_wdt_t const *p_instance, nrfx_wdt_channel_id *p_channel_id)

Function for allocating a watchdog channel.

Note

This function can not be called after nrfx_wdt_start().

Parameters
  • p_instance[in] Pointer to the driver instance structure.

  • p_channel_id[out] ID of granted channel.

Return values
  • NRFX_SUCCESS – The channel was successfully allocated.

  • NRFX_ERROR_NO_MEM – There is no available channel to be used.

void nrfx_wdt_enable(nrfx_wdt_t const *p_instance)

Function for starting the watchdog.

Note

After calling this function the watchdog is started, so the user needs to feed all allocated watchdog channels to avoid reset. At least one watchdog channel must be allocated.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

void nrfx_wdt_feed(nrfx_wdt_t const *p_instance)

Function for feeding the watchdog.

Function feeds all allocated watchdog channels.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

void nrfx_wdt_channel_feed(nrfx_wdt_t const *p_instance, nrfx_wdt_channel_id channel_id)

Function for feeding an invidual watchdog channel.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

  • channel_id[in] ID of watchdog channel.

NRFX_STATIC_INLINE uint32_t nrfx_wdt_task_address_get(nrfx_wdt_t const *p_instance, nrf_wdt_task_t task)

Function for returning a requested task address for the WDT driver module.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

  • task[in] One of the WDT tasks.

Returns

Task address.

NRFX_STATIC_INLINE uint32_t nrfx_wdt_event_address_get(nrfx_wdt_t const *p_instance, nrf_wdt_event_t event)

Function for returning a requested event address for the WDT driver module.

Parameters
  • p_instance[in] Pointer to the driver instance structure.

  • event[in] One of the WDT events.

Returns

Event address.

struct nrfx_wdt_t
#include <nrfx_wdt.h>

Data structure of the Watchdog (WDT) driver instance.

Public Members

NRF_WDT_Type *p_reg

Pointer to a structure with WDT registers.

uint8_t drv_inst_idx

Index of the driver instance. For internal use only.

struct nrfx_wdt_config_t
#include <nrfx_wdt.h>

Struct for WDT initialization.

Public Members

nrf_wdt_behaviour_t behaviour

WDT behaviour when CPU in sleep/halt mode.

uint32_t reload_value

WDT reload value in ms.

uint8_t interrupt_priority

WDT interrupt priority