nRF5 SDK v17.1.0
Macros | Enumerations | Functions
QDEC HAL

Hardware access layer for managing the Quadrature Decoder (QDEC) peripheral. More...

Macros

#define NRF_QDEC_LED_NOT_CONNECTED   0xFFFFFFFF
 This value can be provided as a parameter for the nrf_qdec_pio_assign function call to specify that a LED signal shall not be use by the QDEC and connected to a physical pin.
 

Enumerations

enum  nrf_qdec_task_t {
  NRF_QDEC_TASK_START = offsetof(NRF_QDEC_Type, TASKS_START),
  NRF_QDEC_TASK_STOP = offsetof(NRF_QDEC_Type, TASKS_STOP),
  NRF_QDEC_TASK_READCLRACC = offsetof(NRF_QDEC_Type, TASKS_READCLRACC)
}
 QDEC tasks. More...
 
enum  nrf_qdec_event_t {
  NRF_QDEC_EVENT_SAMPLERDY = offsetof(NRF_QDEC_Type, EVENTS_SAMPLERDY),
  NRF_QDEC_EVENT_REPORTRDY = offsetof(NRF_QDEC_Type, EVENTS_REPORTRDY),
  NRF_QDEC_EVENT_ACCOF = offsetof(NRF_QDEC_Type, EVENTS_ACCOF)
}
 QDEC events. More...
 
enum  nrf_qdec_short_mask_t {
  NRF_QDEC_SHORT_REPORTRDY_READCLRACC_MASK = QDEC_SHORTS_REPORTRDY_READCLRACC_Msk,
  NRF_QDEC_SHORT_SAMPLERDY_STOP_MASK = QDEC_SHORTS_SAMPLERDY_STOP_Msk
}
 QDEC shortcuts. More...
 
enum  nrf_qdec_int_mask_t {
  NRF_QDEC_INT_SAMPLERDY_MASK = QDEC_INTENSET_SAMPLERDY_Msk,
  NRF_QDEC_INT_REPORTRDY_MASK = QDEC_INTENSET_REPORTRDY_Msk,
  NRF_QDEC_INT_ACCOF_MASK = QDEC_INTENSET_ACCOF_Msk
}
 QDEC interrupts. More...
 
enum  nrf_qdec_enable_t {
  NRF_QDEC_DISABLE = QDEC_ENABLE_ENABLE_Disabled,
  NRF_QDEC_ENABLE = QDEC_ENABLE_ENABLE_Enabled
}
 States of the enable bit. More...
 
enum  nrf_qdec_dbfen_t {
  NRF_QDEC_DBFEN_DISABLE = QDEC_DBFEN_DBFEN_Disabled,
  NRF_QDEC_DBFEN_ENABLE = QDEC_DBFEN_DBFEN_Enabled
}
 States of the debounce filter enable bit. More...
 
enum  nrf_qdec_ledpol_t {
  NRF_QDEC_LEPOL_ACTIVE_LOW = QDEC_LEDPOL_LEDPOL_ActiveLow,
  NRF_QDEC_LEPOL_ACTIVE_HIGH = QDEC_LEDPOL_LEDPOL_ActiveHigh
}
 Active LED polarity. More...
 
enum  nrf_qdec_sampleper_t {
  NRF_QDEC_SAMPLEPER_128us = QDEC_SAMPLEPER_SAMPLEPER_128us,
  NRF_QDEC_SAMPLEPER_256us = QDEC_SAMPLEPER_SAMPLEPER_256us,
  NRF_QDEC_SAMPLEPER_512us = QDEC_SAMPLEPER_SAMPLEPER_512us,
  NRF_QDEC_SAMPLEPER_1024us = QDEC_SAMPLEPER_SAMPLEPER_1024us,
  NRF_QDEC_SAMPLEPER_2048us = QDEC_SAMPLEPER_SAMPLEPER_2048us,
  NRF_QDEC_SAMPLEPER_4096us = QDEC_SAMPLEPER_SAMPLEPER_4096us,
  NRF_QDEC_SAMPLEPER_8192us = QDEC_SAMPLEPER_SAMPLEPER_8192us,
  NRF_QDEC_SAMPLEPER_16384us = QDEC_SAMPLEPER_SAMPLEPER_16384us
}
 Available sampling periods. More...
 
enum  nrf_qdec_reportper_t {
  NRF_QDEC_REPORTPER_1 = QDEC_REPORTPER_REPORTPER_1Smpl,
  NRF_QDEC_REPORTPER_10 = QDEC_REPORTPER_REPORTPER_10Smpl,
  NRF_QDEC_REPORTPER_40 = QDEC_REPORTPER_REPORTPER_40Smpl,
  NRF_QDEC_REPORTPER_80 = QDEC_REPORTPER_REPORTPER_80Smpl,
  NRF_QDEC_REPORTPER_120 = QDEC_REPORTPER_REPORTPER_120Smpl,
  NRF_QDEC_REPORTPER_160 = QDEC_REPORTPER_REPORTPER_160Smpl,
  NRF_QDEC_REPORTPER_200 = QDEC_REPORTPER_REPORTPER_200Smpl,
  NRF_QDEC_REPORTPER_240 = QDEC_REPORTPER_REPORTPER_240Smpl,
  NRF_QDEC_REPORTPER_280 = QDEC_REPORTPER_REPORTPER_280Smpl,
  NRF_QDEC_REPORTPER_DISABLED = (QDEC_REPORTPER_REPORTPER_Msk >> QDEC_REPORTPER_REPORTPER_Pos) + 1
}
 Available report periods. More...
 

Functions

__STATIC_INLINE void nrf_qdec_enable (void)
 Function for enabling QDEC.
 
__STATIC_INLINE void nrf_qdec_disable (void)
 Function for disabling QDEC.
 
__STATIC_INLINE uint32_t nrf_qdec_enable_get (void)
 Function for returning the enable state of QDEC. More...
 
__STATIC_INLINE void nrf_qdec_int_enable (uint32_t mask)
 Function for enabling QDEC interrupts by mask. More...
 
__STATIC_INLINE void nrf_qdec_int_disable (uint32_t mask)
 Function for disabling QDEC interrupts by mask. More...
 
__STATIC_INLINE uint32_t nrf_qdec_int_enable_check (nrf_qdec_int_mask_t mask)
 Function for getting the enabled interrupts of the QDEC. More...
 
__STATIC_INLINE void nrf_qdec_dbfen_enable (void)
 Function for enabling the QDEC debouncing filter.
 
__STATIC_INLINE void nrf_qdec_dbfen_disable (void)
 Function for disabling the QDEC debouncing filter.
 
__STATIC_INLINE uint32_t nrf_qdec_dbfen_get (void)
 Function for getting the state of the QDEC debouncing filter. More...
 
__STATIC_INLINE void nrf_qdec_pio_assign (uint32_t psela, uint32_t pselb, uint32_t pselled)
 Function for assigning QDEC pins. More...
 
__STATIC_INLINE void nrf_qdec_task_trigger (nrf_qdec_task_t task)
 Function for setting the specified QDEC task. More...
 
__STATIC_INLINE uint32_t * nrf_qdec_task_address_get (nrf_qdec_task_t task)
 Function for retrieving the address of a QDEC task register. More...
 
__STATIC_INLINE void nrf_qdec_event_clear (nrf_qdec_event_t event)
 Function for clearing the specified QDEC event. More...
 
__STATIC_INLINE uint32_t nrf_qdec_event_check (nrf_qdec_event_t event)
 Function for getting the state of the specified QDEC event. More...
 
__STATIC_INLINE uint32_t * nrf_qdec_event_address_get (nrf_qdec_event_t event)
 Function for retrieving the address of the specified QDEC event register. More...
 
__STATIC_INLINE void nrf_qdec_shorts_enable (uint32_t mask)
 Function for setting QDEC shortcuts. More...
 
__STATIC_INLINE void nrf_qdec_shorts_disable (uint32_t mask)
 Function for clearing shortcuts of the QDEC by mask. More...
 
__STATIC_INLINE int32_t nrf_qdec_sampleper_reg_get (void)
 Function for retrieving value of the sampling period. More...
 
__STATIC_INLINE uint32_t nrf_qdec_sampleper_to_value (uint32_t sampleper)
 Function for converting return value of the nrf_qdec_sampleper_reg_get() function to microseconds. More...
 
__STATIC_INLINE void nrf_qdec_sampleper_set (nrf_qdec_sampleper_t sample_per)
 Function for setting value of the QDEC sampling period. More...
 
__STATIC_INLINE int32_t nrf_qdec_sample_get (void)
 Function for retrieving value of the QDEC SAMPLE register. More...
 
__STATIC_INLINE int32_t nrf_qdec_acc_get (void)
 Function for retrieving value of the QDEC ACC register. More...
 
__STATIC_INLINE int32_t nrf_qdec_accread_get (void)
 Function for retrieving value of the QDEC ACCREAD register. More...
 
__STATIC_INLINE uint32_t nrf_qdec_accdbl_get (void)
 Function for retrieving value of the QDEC ACCDBL register. More...
 
__STATIC_INLINE uint32_t nrf_qdec_accdblread_get (void)
 Function for retrieving value of the QDEC ACCDBLREAD register. More...
 
__STATIC_INLINE void nrf_qdec_ledpre_set (uint32_t time_us)
 Function for setting delay time between setting LED active state and start sampling. More...
 
__STATIC_INLINE uint32_t nrf_qdec_ledpre_get (void)
 Function for retrieving how long the LED is switched on before sampling. More...
 
__STATIC_INLINE void nrf_qdec_reportper_set (nrf_qdec_reportper_t reportper)
 Function for setting the report period (in samples). More...
 
__STATIC_INLINE uint32_t nrf_qdec_reportper_reg_get (void)
 Function for retrieving the report period. More...
 
__STATIC_INLINE uint32_t nrf_qdec_reportper_to_value (uint32_t reportper)
 Function for retrieving the value of QDEC SAMPLEPER register. More...
 
__STATIC_INLINE void nrf_qdec_ledpol_set (nrf_qdec_ledpol_t pol)
 Function for setting the active level for the LED. More...
 
__STATIC_INLINE uint32_t nrf_qdec_ledpol_get (void)
 Function for retrieving the active level for the LED. More...
 

Detailed Description

Hardware access layer for managing the Quadrature Decoder (QDEC) peripheral.

Enumeration Type Documentation

States of the debounce filter enable bit.

Enumerator
NRF_QDEC_DBFEN_DISABLE 

Mask for disabling the debounce filter.

NRF_QDEC_DBFEN_ENABLE 

Mask for enabling the debounce filter.

States of the enable bit.

Enumerator
NRF_QDEC_DISABLE 

Mask for disabling the QDEC periperal. When disabled, the QDEC decoder pins are not active.

NRF_QDEC_ENABLE 

Mask for enabling the QDEC periperal. When enabled, the QDEC pins are active.

QDEC events.

Enumerator
NRF_QDEC_EVENT_SAMPLERDY 

Event generated for every new sample.

NRF_QDEC_EVENT_REPORTRDY 

Event generated for every new report.

NRF_QDEC_EVENT_ACCOF 

Event generated for every accumulator overflow.

QDEC interrupts.

Enumerator
NRF_QDEC_INT_SAMPLERDY_MASK 

Mask for enabling or disabling an interrupt on SAMPLERDY event.

NRF_QDEC_INT_REPORTRDY_MASK 

Mask for enabling or disabling an interrupt on REPORTRDY event.

NRF_QDEC_INT_ACCOF_MASK 

Mask for enabling or disabling an interrupt on ACCOF event.

Active LED polarity.

Enumerator
NRF_QDEC_LEPOL_ACTIVE_LOW 

QDEC LED active on output pin low.

NRF_QDEC_LEPOL_ACTIVE_HIGH 

QDEC LED active on output pin high.

Available report periods.

Enumerator
NRF_QDEC_REPORTPER_1 

QDEC report period 1 sample.

NRF_QDEC_REPORTPER_10 

QDEC report period 10 samples.

NRF_QDEC_REPORTPER_40 

QDEC report period 40 samples.

NRF_QDEC_REPORTPER_80 

QDEC report period 80 samples.

NRF_QDEC_REPORTPER_120 

QDEC report period 120 samples.

NRF_QDEC_REPORTPER_160 

QDEC report period 160 samples.

NRF_QDEC_REPORTPER_200 

QDEC report period 200 samples.

NRF_QDEC_REPORTPER_240 

QDEC report period 240 samples.

NRF_QDEC_REPORTPER_280 

QDEC report period 280 samples.

NRF_QDEC_REPORTPER_DISABLED 

QDEC reporting disabled. Deprecated.

Available sampling periods.

Enumerator
NRF_QDEC_SAMPLEPER_128us 

QDEC sampling period 128 microseconds.

NRF_QDEC_SAMPLEPER_256us 

QDEC sampling period 256 microseconds.

NRF_QDEC_SAMPLEPER_512us 

QDEC sampling period 512 microseconds.

NRF_QDEC_SAMPLEPER_1024us 

QDEC sampling period 1024 microseconds.

NRF_QDEC_SAMPLEPER_2048us 

QDEC sampling period 2048 microseconds.

NRF_QDEC_SAMPLEPER_4096us 

QDEC sampling period 4096 microseconds.

NRF_QDEC_SAMPLEPER_8192us 

QDEC sampling period 8192 microseconds.

NRF_QDEC_SAMPLEPER_16384us 

QDEC sampling period 16384 microseconds.

QDEC shortcuts.

Enumerator
NRF_QDEC_SHORT_REPORTRDY_READCLRACC_MASK 

Shortcut between REPORTRDY event and READCLRACC task.

NRF_QDEC_SHORT_SAMPLERDY_STOP_MASK 

Shortcut between SAMPLERDY event and STOP task.

QDEC tasks.

Enumerator
NRF_QDEC_TASK_START 

Starting the quadrature decoder.

NRF_QDEC_TASK_STOP 

Stopping the quadrature decoder.

NRF_QDEC_TASK_READCLRACC 

Reading and clearing ACC and ACCDBL registers.

Function Documentation

__STATIC_INLINE int32_t nrf_qdec_acc_get ( void  )

Function for retrieving value of the QDEC ACC register.

Returns
Value of the ACC register.
__STATIC_INLINE uint32_t nrf_qdec_accdbl_get ( void  )

Function for retrieving value of the QDEC ACCDBL register.

Returns
Value of the ACCDBL register.
__STATIC_INLINE uint32_t nrf_qdec_accdblread_get ( void  )

Function for retrieving value of the QDEC ACCDBLREAD register.

Returns
Value of the ACCDBLREAD register.
__STATIC_INLINE int32_t nrf_qdec_accread_get ( void  )

Function for retrieving value of the QDEC ACCREAD register.

Returns
Value of the ACCREAD register.
__STATIC_INLINE uint32_t nrf_qdec_dbfen_get ( void  )

Function for getting the state of the QDEC debouncing filter.

Return values
NRF_QDEC_DBFEN_DISABLEThe debouncing filter is disabled.
NRF_QDEC_DBFEN_ENABLEThe debouncing filter is enabled.
__STATIC_INLINE uint32_t nrf_qdec_enable_get ( void  )

Function for returning the enable state of QDEC.

Returns
State of the register.
__STATIC_INLINE uint32_t* nrf_qdec_event_address_get ( nrf_qdec_event_t  event)

Function for retrieving the address of the specified QDEC event register.

Parameters
[in]eventQDEC event to get its address.
Returns
Address of the specified QDEC event.
__STATIC_INLINE uint32_t nrf_qdec_event_check ( nrf_qdec_event_t  event)

Function for getting the state of the specified QDEC event.

Parameters
[in]eventQDEC event to be checked.
Returns
State of the specified QDEC event.
__STATIC_INLINE void nrf_qdec_event_clear ( nrf_qdec_event_t  event)

Function for clearing the specified QDEC event.

Parameters
[in]eventQDEC event to be cleared.
__STATIC_INLINE void nrf_qdec_int_disable ( uint32_t  mask)

Function for disabling QDEC interrupts by mask.

Parameters
[in]maskMask of interrupts to be disabled.
__STATIC_INLINE void nrf_qdec_int_enable ( uint32_t  mask)

Function for enabling QDEC interrupts by mask.

Parameters
[in]maskMask of interrupts to be enabled.
__STATIC_INLINE uint32_t nrf_qdec_int_enable_check ( nrf_qdec_int_mask_t  mask)

Function for getting the enabled interrupts of the QDEC.

Parameters
[in]maskMask of interrupts to be checked.
Returns
Bitfield with enabled interrupts.
__STATIC_INLINE uint32_t nrf_qdec_ledpol_get ( void  )

Function for retrieving the active level for the LED.

Returns
Level of the active signal of the LED.
__STATIC_INLINE void nrf_qdec_ledpol_set ( nrf_qdec_ledpol_t  pol)

Function for setting the active level for the LED.

Parameters
[in]polLevel of the active signal of the LED.
__STATIC_INLINE uint32_t nrf_qdec_ledpre_get ( void  )

Function for retrieving how long the LED is switched on before sampling.

Returns
The gap in time in microseconds between switched LED to active state and start sampling.
__STATIC_INLINE void nrf_qdec_ledpre_set ( uint32_t  time_us)

Function for setting delay time between setting LED active state and start sampling.

Parameters
[in]time_usDelay time (in microseconds) between setting LED active state and start sampling.
__STATIC_INLINE void nrf_qdec_pio_assign ( uint32_t  psela,
uint32_t  pselb,
uint32_t  pselled 
)

Function for assigning QDEC pins.

Parameters
[in]pselaPin number.
[in]pselbPin number.
[in]pselledPin number.
__STATIC_INLINE uint32_t nrf_qdec_reportper_reg_get ( void  )

Function for retrieving the report period.

Returns
The report period.
__STATIC_INLINE void nrf_qdec_reportper_set ( nrf_qdec_reportper_t  reportper)

Function for setting the report period (in samples).

Parameters
[in]reportperThe number of samples.
__STATIC_INLINE uint32_t nrf_qdec_reportper_to_value ( uint32_t  reportper)

Function for retrieving the value of QDEC SAMPLEPER register.

Parameters
[in]reportperReportper to be converted to amount of samples per report.
Returns
Number of samples per report.
__STATIC_INLINE int32_t nrf_qdec_sample_get ( void  )

Function for retrieving value of the QDEC SAMPLE register.

Returns
Value of the SAMPLE register.
__STATIC_INLINE int32_t nrf_qdec_sampleper_reg_get ( void  )

Function for retrieving value of the sampling period.

Returns
Sample period nrf_qdec_sampleper_t.
__STATIC_INLINE void nrf_qdec_sampleper_set ( nrf_qdec_sampleper_t  sample_per)

Function for setting value of the QDEC sampling period.

Parameters
[in]sample_perThe sampling period.
__STATIC_INLINE uint32_t nrf_qdec_sampleper_to_value ( uint32_t  sampleper)

Function for converting return value of the nrf_qdec_sampleper_reg_get() function to microseconds.

Parameters
[in]sampleperThe sampling period.
Returns
Period in microseconds.
__STATIC_INLINE void nrf_qdec_shorts_disable ( uint32_t  mask)

Function for clearing shortcuts of the QDEC by mask.

Parameters
[in]maskMask of QDEC shortcuts to be cleared.
__STATIC_INLINE void nrf_qdec_shorts_enable ( uint32_t  mask)

Function for setting QDEC shortcuts.

Parameters
[in]maskMask of QDEC shortcuts to be set.
__STATIC_INLINE uint32_t* nrf_qdec_task_address_get ( nrf_qdec_task_t  task)

Function for retrieving the address of a QDEC task register.

Parameters
[in]taskQDEC task to get its address.
Returns
Address of the specified QDEC task.
__STATIC_INLINE void nrf_qdec_task_trigger ( nrf_qdec_task_t  task)

Function for setting the specified QDEC task.

Parameters
[in]taskQDEC task to be triggered.

Documentation feedback | Developer Zone | Subscribe | Updated