QDEC HAL¶
-
group
nrf_qdec_hal
Hardware access layer for managing the Quadrature Decoder (QDEC) peripheral.
Defines
-
NRF_QDEC_LED_NOT_CONNECTED
¶ 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.
Enums
-
enum
nrf_qdec_task_t
¶ QDEC tasks.
Values:
-
enumerator
NRF_QDEC_TASK_START
¶ Starting the quadrature decoder.
-
enumerator
NRF_QDEC_TASK_STOP
¶ Stopping the quadrature decoder.
-
enumerator
NRF_QDEC_TASK_READCLRACC
¶ Reading and clearing ACC and ACCDBL registers.
-
enumerator
-
enum
nrf_qdec_event_t
¶ QDEC events.
Values:
-
enumerator
NRF_QDEC_EVENT_SAMPLERDY
¶ Event generated for every new sample.
-
enumerator
NRF_QDEC_EVENT_REPORTRDY
¶ Event generated for every new report.
-
enumerator
NRF_QDEC_EVENT_ACCOF
¶ Event generated for every accumulator overflow.
-
enumerator
-
enum
nrf_qdec_short_mask_t
¶ QDEC shortcuts.
Values:
-
enumerator
NRF_QDEC_SHORT_REPORTRDY_READCLRACC_MASK
¶ Shortcut between REPORTRDY event and READCLRACC task.
-
enumerator
NRF_QDEC_SHORT_SAMPLERDY_STOP_MASK
¶ Shortcut between SAMPLERDY event and STOP task.
-
enumerator
-
enum
nrf_qdec_int_mask_t
¶ QDEC interrupts.
Values:
-
enumerator
NRF_QDEC_INT_SAMPLERDY_MASK
¶ Mask for enabling or disabling an interrupt on SAMPLERDY event.
-
enumerator
NRF_QDEC_INT_REPORTRDY_MASK
¶ Mask for enabling or disabling an interrupt on REPORTRDY event.
-
enumerator
NRF_QDEC_INT_ACCOF_MASK
¶ Mask for enabling or disabling an interrupt on ACCOF event.
-
enumerator
-
enum
nrf_qdec_enable_t
¶ States of the enable bit.
Values:
-
enumerator
NRF_QDEC_DISABLE
¶ Mask for disabling the QDEC periperal. When disabled, the QDEC decoder pins are not active.
-
enumerator
NRF_QDEC_ENABLE
¶ Mask for enabling the QDEC periperal. When enabled, the QDEC pins are active.
-
enumerator
-
enum
nrf_qdec_dbfen_t
¶ States of the debounce filter enable bit.
Values:
-
enumerator
NRF_QDEC_DBFEN_DISABLE
¶ Mask for disabling the debounce filter.
-
enumerator
NRF_QDEC_DBFEN_ENABLE
¶ Mask for enabling the debounce filter.
-
enumerator
-
enum
nrf_qdec_ledpol_t
¶ Active LED polarity.
Values:
-
enumerator
NRF_QDEC_LEPOL_ACTIVE_LOW
¶ QDEC LED active on output pin low.
-
enumerator
NRF_QDEC_LEPOL_ACTIVE_HIGH
¶ QDEC LED active on output pin high.
-
enumerator
-
enum
nrf_qdec_sampleper_t
¶ Available sampling periods.
Values:
-
enumerator
NRF_QDEC_SAMPLEPER_128us
¶ QDEC sampling period 128 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_256us
¶ QDEC sampling period 256 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_512us
¶ QDEC sampling period 512 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_1024us
¶ QDEC sampling period 1024 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_2048us
¶ QDEC sampling period 2048 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_4096us
¶ QDEC sampling period 4096 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_8192us
¶ QDEC sampling period 8192 microseconds.
-
enumerator
NRF_QDEC_SAMPLEPER_16384us
¶ QDEC sampling period 16384 microseconds.
-
enumerator
-
enum
nrf_qdec_reportper_t
¶ Available report periods.
Values:
-
enumerator
NRF_QDEC_REPORTPER_1
¶ QDEC report period 1 sample.
-
enumerator
NRF_QDEC_REPORTPER_10
¶ QDEC report period 10 samples.
-
enumerator
NRF_QDEC_REPORTPER_40
¶ QDEC report period 40 samples.
-
enumerator
NRF_QDEC_REPORTPER_80
¶ QDEC report period 80 samples.
-
enumerator
NRF_QDEC_REPORTPER_120
¶ QDEC report period 120 samples.
-
enumerator
NRF_QDEC_REPORTPER_160
¶ QDEC report period 160 samples.
-
enumerator
NRF_QDEC_REPORTPER_200
¶ QDEC report period 200 samples.
-
enumerator
NRF_QDEC_REPORTPER_240
¶ QDEC report period 240 samples.
-
enumerator
NRF_QDEC_REPORTPER_280
¶ QDEC report period 280 samples.
-
enumerator
NRF_QDEC_REPORTPER_DISABLED
¶ QDEC reporting disabled. Deprecated.
-
enumerator
Functions
-
NRF_STATIC_INLINE void
nrf_qdec_enable
(NRF_QDEC_Type *p_reg)¶ Function for enabling QDEC.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE void
nrf_qdec_disable
(NRF_QDEC_Type *p_reg)¶ Function for disabling QDEC.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_enable_get
(NRF_QDEC_Type const *p_reg)¶ Function for returning the enable state of QDEC.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
State of the register.
-
NRF_STATIC_INLINE void
nrf_qdec_int_enable
(NRF_QDEC_Type *p_reg, uint32_t mask)¶ Function for enabling QDEC interrupts by mask.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be enabled.
-
NRF_STATIC_INLINE void
nrf_qdec_int_disable
(NRF_QDEC_Type *p_reg, uint32_t mask)¶ Function for disabling QDEC interrupts by mask.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be disabled.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_int_enable_check
(NRF_QDEC_Type const *p_reg, uint32_t mask)¶ Function for checking if the specified interrupts are enabled.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of interrupts to be checked.
- Returns
Mask of enabled interrupts.
-
NRF_STATIC_INLINE void
nrf_qdec_dbfen_enable
(NRF_QDEC_Type *p_reg)¶ Function for enabling the QDEC debouncing filter.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE void
nrf_qdec_dbfen_disable
(NRF_QDEC_Type *p_reg)¶ Function for disabling the QDEC debouncing filter.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_dbfen_get
(NRF_QDEC_Type const *p_reg)¶ Function for getting the state of the QDEC debouncing filter.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
NRF_QDEC_DBFEN_DISABLE – The debouncing filter is disabled.
NRF_QDEC_DBFEN_ENABLE – The debouncing filter is enabled.
-
NRF_STATIC_INLINE void
nrf_qdec_pins_set
(NRF_QDEC_Type *p_reg, uint32_t phase_a_pin, uint32_t phase_b_pin, uint32_t led_pin)¶ Function for configuring QDEC pins.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
phase_a_pin – [in] Phase A pin number.
phase_b_pin – [in] Phase B pin number.
led_pin – [in] LED pin number.
-
NRF_STATIC_INLINE void
nrf_qdec_pio_assign
(NRF_QDEC_Type *p_reg, uint32_t psela, uint32_t pselb, uint32_t pselled)¶ Function for assigning QDEC pins.
Note
This function is deprecated. Use nrf_qdec_pins_set instead.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
psela – [in] Pin number.
pselb – [in] Pin number.
pselled – [in] Pin number.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_phase_a_pin_get
(NRF_QDEC_Type const *p_reg)¶ Function for getting the Phase A pin selection.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Phase A pin selection.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_phase_b_pin_get
(NRF_QDEC_Type const *p_reg)¶ Function for getting the Phase B pin selection.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Phase B pin selection.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_led_pin_get
(NRF_QDEC_Type const *p_reg)¶ Function for getting the LED pin selection.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
LED pin selection.
-
NRF_STATIC_INLINE void
nrf_qdec_task_trigger
(NRF_QDEC_Type *p_reg, nrf_qdec_task_t task)¶ Function for setting the specified QDEC task.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] QDEC task to be triggered.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_task_address_get
(NRF_QDEC_Type const *p_reg, nrf_qdec_task_t task)¶ Function for retrieving the address of a QDEC task register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
task – [in] QDEC task to get its address.
- Returns
Address of the specified QDEC task.
-
NRF_STATIC_INLINE void
nrf_qdec_event_clear
(NRF_QDEC_Type *p_reg, nrf_qdec_event_t event)¶ Function for clearing the specified QDEC event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] QDEC event to be cleared.
-
NRF_STATIC_INLINE bool
nrf_qdec_event_check
(NRF_QDEC_Type const *p_reg, nrf_qdec_event_t event)¶ Function for getting the state of the specified QDEC event.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] QDEC event to be checked.
- Returns
State of the specified QDEC event.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_event_address_get
(NRF_QDEC_Type const *p_reg, nrf_qdec_event_t event)¶ Function for retrieving the address of the specified QDEC event register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
event – [in] QDEC event to get its address.
- Returns
Address of the specified QDEC event.
-
NRF_STATIC_INLINE void
nrf_qdec_shorts_enable
(NRF_QDEC_Type *p_reg, uint32_t mask)¶ Function for setting QDEC shortcuts.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of QDEC shortcuts to be set.
-
NRF_STATIC_INLINE void
nrf_qdec_shorts_disable
(NRF_QDEC_Type *p_reg, uint32_t mask)¶ Function for clearing shortcuts of the QDEC by mask.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
mask – [in] Mask of QDEC shortcuts to be cleared.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_sampleper_to_value
(nrf_qdec_sampleper_t sampleper)¶ Function for converting return value of the nrf_qdec_sampleper_get function to microseconds.
- Parameters
sampleper – [in] The sampling period.
- Returns
Period in microseconds.
-
NRF_STATIC_INLINE void
nrf_qdec_sampleper_set
(NRF_QDEC_Type *p_reg, nrf_qdec_sampleper_t sampleper)¶ Function for setting value of the QDEC sampling period.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
sampleper – [in] The sampling period.
-
NRF_STATIC_INLINE nrf_qdec_sampleper_t
nrf_qdec_sampleper_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC sampling period.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Sampling period.
-
NRF_STATIC_INLINE int32_t
nrf_qdec_sample_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC SAMPLE register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Value of the SAMPLE register.
-
NRF_STATIC_INLINE int32_t
nrf_qdec_acc_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC ACC register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Value of the ACC register.
-
NRF_STATIC_INLINE int32_t
nrf_qdec_accread_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC ACCREAD register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Value of the ACCREAD register.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_accdbl_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC ACCDBL register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Value of the ACCDBL register.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_accdblread_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving value of the QDEC ACCDBLREAD register.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Value of the ACCDBLREAD register.
-
NRF_STATIC_INLINE void
nrf_qdec_ledpre_set
(NRF_QDEC_Type *p_reg, uint32_t time_us)¶ Function for setting delay time between setting LED active state and start sampling.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
time_us – [in] Delay time (in microseconds) between setting LED active state and start sampling.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_ledpre_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving how long the LED is switched on before sampling.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
The gap in time in microseconds between switched LED to active state and start sampling.
-
NRF_STATIC_INLINE void
nrf_qdec_reportper_set
(NRF_QDEC_Type *p_reg, nrf_qdec_reportper_t reportper)¶ Function for setting the report period (in samples).
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
reportper – [in] The number of samples.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_reportper_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving the report period.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
The report period.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_reportper_to_value
(uint32_t reportper)¶ Function for retrieving the value of QDEC SAMPLEPER register.
- Parameters
reportper – [in] Reportper to be converted to amount of samples per report.
- Returns
Number of samples per report.
-
NRF_STATIC_INLINE void
nrf_qdec_ledpol_set
(NRF_QDEC_Type *p_reg, nrf_qdec_ledpol_t pol)¶ Function for setting the active level for the LED.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
pol – [in] Level of the active signal of the LED.
-
NRF_STATIC_INLINE uint32_t
nrf_qdec_ledpol_get
(NRF_QDEC_Type const *p_reg)¶ Function for retrieving the active level for the LED.
- Parameters
p_reg – [in] Pointer to the structure of registers of the peripheral.
- Returns
Level of the active signal of the LED.
-