encoder - Driver for incremental rotary encoders
- group encoder
ESP-IDF HW timer-based driver for rotary encoders.
Copyright (c) 2019 Ruslan V. Uss unclerus@gmail.com
BSD Licensed as described in the file LICENSE
Enums
-
enum rotary_encoder_btn_state_t
Button state.
Values:
-
enumerator RE_BTN_RELEASED
Button currently released.
-
enumerator RE_BTN_PRESSED
Button currently pressed.
-
enumerator RE_BTN_LONG_PRESSED
Button currently long pressed.
-
enumerator RE_BTN_RELEASED
-
enum rotary_encoder_event_type_t
Event type.
Values:
-
enumerator RE_ET_CHANGED
Encoder turned.
-
enumerator RE_ET_BTN_RELEASED
Button released.
-
enumerator RE_ET_BTN_PRESSED
Button pressed.
-
enumerator RE_ET_BTN_LONG_PRESSED
Button long pressed (press time (us) > RE_BTN_LONG_PRESS_TIME_US)
-
enumerator RE_ET_BTN_CLICKED
Button was clicked.
-
enumerator RE_ET_CHANGED
Functions
-
esp_err_t rotary_encoder_init(QueueHandle_t queue)
Initialize library.
- Parameters:
queue – Event queue to send encoder events
- Returns:
ESP_OK
on success
-
esp_err_t rotary_encoder_add(rotary_encoder_t *re)
Add new rotary encoder.
- Parameters:
re – Encoder descriptor
- Returns:
ESP_OK
on success
-
esp_err_t rotary_encoder_remove(rotary_encoder_t *re)
Remove previously added rotary encoder.
- Parameters:
re – Encoder descriptor
- Returns:
ESP_OK
on success
-
struct rotary_encoder_t
- #include <encoder.h>
Rotary encoder descriptor.
Public Members
-
gpio_num_t pin_btn
Encoder pins.
pin_btn can be >= GPIO_NUM_MAX if no button used
-
gpio_num_t pin_btn
-
struct rotary_encoder_event_t
- #include <encoder.h>
Event.
Public Members
-
rotary_encoder_event_type_t type
Event type.
-
rotary_encoder_t *sender
Pointer to descriptor.
-
int32_t diff
Difference between new and old positions (only if type == RE_ET_CHANGED)
-
rotary_encoder_event_type_t type
-
enum rotary_encoder_btn_state_t