23#include <stm32f4xx_hal.h>
void encoder_update(encoder_t *encoder)
Updates the encoder's internal position, delta, and speed.
Definition encoder.c:32
void encoder_init(encoder_t *encoder, TIM_HandleTypeDef *htim)
Initializes an encoder structure with a given timer.
Definition encoder.c:15
int32_t encoder_getposition(encoder_t *encoder)
Returns the current position (accumulated counts) of the encoder.
Definition encoder.c:58
int32_t encoder_getdelta(encoder_t *encoder)
Returns the most recent change in encoder count.
Definition encoder.c:67
float encoder_getspeed(encoder_t *encoder)
Returns the current speed in counts per second.
Definition encoder.c:76
void encoder_reset(encoder_t *encoder)
Resets encoder position and delta tracking.
Definition encoder.c:84
Structure for tracking encoder state and motion data.
Definition encoder.h:31
int32_t last_count
Definition encoder.h:33
int32_t delta
Definition encoder.h:36
float speed_cps
Definition encoder.h:37
uint32_t last_time_us
Definition encoder.h:35
int32_t position
Definition encoder.h:34
TIM_HandleTypeDef * htim
Definition encoder.h:32
Utility functions for microsecond-level timing.