Quadrature Encoder Interface.
More...
|
typedef void(* | hal_qei_callback) (const uint8_t channel, const uint8_t flag) |
| Index interrupt callback function prototype.
|
|
|
enum | qei_result_t {
QEI_RESULT_OK
,
QEI_RESULT_INVALID
,
QEI_RESULT_UNSUPPORTED
,
QEI_RESULT_ERR
,
TOTAL_QEI_RESULT
} |
|
enum | qei_status_t {
QEI_STATUS_UNKNOWN
,
QEI_STATUS_OK
,
QEI_STATUS_BUSY
,
QEI_STATUS_STOP
,
QEI_STATUS_ERR
,
TOTAL_QEI_STATUS
} |
|
enum | qei_reset_mode_t {
QEI_RESET_MODE_NONE
,
QEI_RESET_MODE_HOME_EVENT
,
QEI_RESET_MODE_INDEX_EVENT
,
TOTAL_QEI_RESET_MODE
} |
|
enum | qei_direction_t {
QEI_DIRECTION_NONE
,
QEI_DIRECTION_FORWARD
,
QEI_DIRECTION_REVERSE
,
TOTAL_QEI_DIRECTION
} |
|
enum | qei_interrupt_t {
QEI_INTERRUPT_HOME
,
QEI_INTERRUPT_INDEX
,
QEI_INTERRUPT_OVERFLOW
,
QEI_INTERRUPT_LOWER_LIMIT
,
QEI_INTERRUPT_UPPER_LIMIT
,
TOTAL_QEI_INTERRUPT
} |
|
Quadrature Encoder Interface.
◆ hal_qei_callback
typedef void(* hal_qei_callback) (const uint8_t channel, const uint8_t flag) |
#include <qei/public_inc/hal_qei.h>
Index interrupt callback function prototype.
- Parameters
-
[in] | channel | QEI channel |
[in] | flag | QEI interrupt flag |
◆ qei_direction_t
#include <qei/public_inc/hal_qei.h>
Enumerator |
---|
QEI_DIRECTION_NONE | |
QEI_DIRECTION_FORWARD | |
QEI_DIRECTION_REVERSE | |
TOTAL_QEI_DIRECTION | |
◆ qei_interrupt_t
#include <qei/public_inc/hal_qei.h>
Enumerator |
---|
QEI_INTERRUPT_HOME | |
QEI_INTERRUPT_INDEX | |
QEI_INTERRUPT_OVERFLOW | |
QEI_INTERRUPT_LOWER_LIMIT | |
QEI_INTERRUPT_UPPER_LIMIT | |
TOTAL_QEI_INTERRUPT | |
◆ qei_reset_mode_t
#include <qei/public_inc/hal_qei.h>
Enumerator |
---|
QEI_RESET_MODE_NONE | |
QEI_RESET_MODE_HOME_EVENT | |
QEI_RESET_MODE_INDEX_EVENT | |
TOTAL_QEI_RESET_MODE | |
◆ qei_result_t
#include <qei/public_inc/hal_qei.h>
Enumerator |
---|
QEI_RESULT_OK | No error.
|
QEI_RESULT_INVALID | Operation invalid.
|
QEI_RESULT_UNSUPPORTED | Operation not supported.
|
QEI_RESULT_ERR | Error occurred.
|
TOTAL_QEI_RESULT | |
◆ qei_status_t
#include <qei/public_inc/hal_qei.h>
Enumerator |
---|
QEI_STATUS_UNKNOWN | Unknown channel status.
|
QEI_STATUS_OK | No error.
|
QEI_STATUS_BUSY | Channel busy.
|
QEI_STATUS_STOP | Channel stopped.
|
QEI_STATUS_ERR | Error occurred.
|
TOTAL_QEI_STATUS | |
◆ hal_qei_get_counter()
#include <qei/public_inc/hal_qei.h>
Get encoder counter value.
If counter value reached INT32_MAX value either positive or negative signed, counter will reset value to zero.
int32_t hal_qei_get_counter(qei_handle_t *handle)
Get encoder counter value.
- Parameters
-
[in,out] | handle | QEI handler |
- Returns
- Encoder counter value
◆ hal_qei_init()
#include <qei/public_inc/hal_qei.h>
Configure QEI channel.
static void callback( const uint8_t channel );
};
.ch_b_pin = CHANNEL_B_PIN,
.index_pin = INDEX_PIN,
.start_value = 0,
};
qei_result_t
Definition hal_qei.h:47
qei_result_t hal_qei_init(qei_handle_t *handle, const qei_channel_attr_t attr, const hal_qei_callback callback)
Configure QEI channel.
@ QEI_RESET_MODE_INDEX_EVENT
Definition hal_qei.h:71
gpio_pin_t ch_a_pin
channel A pin
Definition hal_qei.h:105
uint8_t channel
QEI channel.
Definition hal_qei.h:115
- Parameters
-
[in,out] | handle | QEI handler |
[in] | attr | QEI channel attributes |
- Return values
-
QEI_RESULT_OK | Success configure QEI channel |
QEI_RESULT_INVALID | Configuration attributes invalid |
QEI_RESULT_UNSUPPORTED | Operation not supported |
QEI_RESULT_ERR | Failed configure QEI channel |
◆ hal_qei_reset_counter()
#include <qei/public_inc/hal_qei.h>
Reset encoder counter value to zero.
hal_qei_reset( &handle );
assert( counter == 0 );
qei_result_t hal_qei_reset_counter(qei_handle_t *handle)
Reset encoder counter value to zero.
- Parameters
-
[in,out] | handle | QEI handler |
- Return values
-
QEI_RESULT_OK | Success reset counter to zero |
QEI_RESULT_INVALID | Configuration attributes invalid |
QEI_RESULT_UNSUPPORTED | Operation not supported |
QEI_RESULT_ERR | Failed to reset counter |
◆ hal_qei_set_counter()
#include <qei/public_inc/hal_qei.h>
Set encoder counter to specified value.
assert( counter == -500 );
qei_result_t hal_qei_set_counter(qei_handle_t *handle, const int32_t value)
Set encoder counter to specified value.
- Parameters
-
[in,out] | handle | QEI handler |
[in] | value | Counter value to be loaded |
- Return values
-
QEI_RESULT_OK | Success load counter value |
QEI_RESULT_INVALID | Invalid counter value |
QEI_RESULT_UNSUPPORTED | Operation not supported |
QEI_RESULT_ERR | Failed to load counter value |
◆ hal_qei_start()
#include <qei/public_inc/hal_qei.h>
Enable QEI channel.
qei_result_t hal_qei_start(qei_handle_t *handle)
Enable QEI channel.
- Parameters
-
[in,out] | handle | QEI handler |
- Return values
-
QEI_RESULT_OK | Success start QEI channel |
QEI_RESULT_UNSUPPORTED | Operation not supported |
QEI_RESULT_ERR | Failed to start QEI channel |
◆ hal_qei_stop()
#include <qei/public_inc/hal_qei.h>
Disable QEI channel.
qei_result_t hal_qei_stop(qei_handle_t *handle)
Disable QEI channel.
- Parameters
-
[in,out] | handle | QEI handler |
- Return values
-
QEI_RESULT_OK | Success stop QEI channel |
QEI_RESULT_UNSUPPORTED | Operation not supported |
QEI_RESULT_ERR | Failed to stop QEI channel |