QDEC driver

group nrfx_qdec

Quadrature Decoder (QDEC) peripheral driver.

Defines

NRFX_QDEC_DEFAULT_CONFIG(_pin_a, _pin_b, _pin_led)

QDEC driver default configuration.

This configuration sets up QDEC with the following options:

  • report period: 10 samples

  • sampling period: 16384 us

  • LED enabled for 500 us before sampling

  • LED polarity: active high

  • debouncing filter disabled

  • sample ready interrupt disabled

Parameters
  • _pin_a[in] Pin for A encoder channel input.

  • _pin_b[in] Pin for B encoder channel input.

  • _pin_led[in] Pin for LED output.

Typedefs

typedef void (*nrfx_qdec_event_handler_t)(nrfx_qdec_event_t event)

QDEC event handler.

Parameters
  • event[in] QDEC event structure.

Functions

nrfx_err_t nrfx_qdec_init(nrfx_qdec_config_t const *p_config, nrfx_qdec_event_handler_t event_handler)

Function for initializing QDEC.

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

  • event_handler[in] Event handler provided by the user. Must not be NULL.

Returns

  • NRFX_SUCCESS – Initialization was successful.

  • NRFX_ERROR_INVALID_STATE – The QDEC was already initialized.

void nrfx_qdec_uninit(void)

Function for uninitializing QDEC.

Note

Function asserts if module is uninitialized.

void nrfx_qdec_enable(void)

Function for enabling QDEC.

Note

Function asserts if module is uninitialized or enabled.

void nrfx_qdec_disable(void)

Function for disabling QDEC.

Note

Function asserts if module is uninitialized or disabled.

void nrfx_qdec_accumulators_read(int16_t *p_acc, int16_t *p_accdbl)

Function for reading accumulated transitions from the QDEC peripheral.

Note

Function asserts if module is not enabled.

Note

Accumulators are cleared after reading.

Parameters
  • p_acc[out] Pointer to store the accumulated transitions.

  • p_accdbl[out] Pointer to store the accumulated double transitions.

NRFX_STATIC_INLINE uint32_t nrfx_qdec_task_address_get(nrf_qdec_task_t task)

Function for returning the address of the specified QDEC task.

Parameters
  • task – QDEC task.

Returns

Task address.

NRFX_STATIC_INLINE uint32_t nrfx_qdec_event_address_get(nrf_qdec_event_t event)

Function for returning the address of the specified QDEC event.

Parameters
  • event – QDEC event.

Returns

Event address.

struct nrfx_qdec_config_t
#include <nrfx_qdec.h>

QDEC configuration structure.

Public Members

nrf_qdec_reportper_t reportper

Report period in samples.

nrf_qdec_sampleper_t sampleper

Sampling period in microseconds.

uint32_t psela

Pin number for A input.

uint32_t pselb

Pin number for B input.

uint32_t pselled

Pin number for LED output.

uint32_t ledpre

Time (in microseconds) how long LED is switched on before sampling.

nrf_qdec_ledpol_t ledpol

Active LED polarity.

bool dbfen

State of debouncing filter.

bool sample_inten

Enabling sample ready interrupt.

uint8_t interrupt_priority

QDEC interrupt priority.

struct nrfx_qdec_sample_data_evt_t
#include <nrfx_qdec.h>

QDEC sample event data.

Public Members

int8_t value

Sample value.

struct nrfx_qdec_report_data_evt_t
#include <nrfx_qdec.h>

QDEC report event data.

Public Members

int16_t acc

Accumulated transitions.

uint16_t accdbl

Accumulated double transitions.

struct nrfx_qdec_event_t
#include <nrfx_qdec.h>

QDEC event handler structure.

Public Members

nrf_qdec_event_t type

Event type.

nrfx_qdec_sample_data_evt_t sample

Sample event data.

nrfx_qdec_report_data_evt_t report

Report event data.

union nrfx_qdec_event_t.[anonymous] data

Union to store event data.