QDEC HAL

nRF5 SDK v17.0.2

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_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
}
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_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.

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_DISABLE The debouncing filter is disabled.
NRF_QDEC_DBFEN_ENABLE The 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] event QDEC 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] event QDEC 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] event QDEC event to be cleared.
__STATIC_INLINE void nrf_qdec_int_disable ( uint32_t mask )

Function for disabling QDEC interrupts by mask.

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

Function for enabling QDEC interrupts by mask.

Parameters
[in] mask Mask 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] mask Mask 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] pol Level 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_us Delay 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] psela Pin number.
[in] pselb Pin number.
[in] pselled Pin 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] reportper The 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] reportper Reportper 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_per The 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] sampleper The 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] mask Mask of QDEC shortcuts to be cleared.
__STATIC_INLINE void nrf_qdec_shorts_enable ( uint32_t mask )

Function for setting QDEC shortcuts.

Parameters
[in] mask Mask 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] task QDEC 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] task QDEC task to be triggered.