11#include "stm32f4xx_hal.h"
28 Encoder(SPI_HandleTypeDef* hspi, TIM_HandleTypeDef* htim,
GPIO& CSn);
67 SPI_HandleTypeDef* hspi;
68 TIM_HandleTypeDef* htim;
71 static constexpr uint16_t resolution = 16384;
72 static constexpr int32_t commutationZeroAngle = (1722 - (16384/44));
84 * @
return Timestamp in microseconds from timer.
85 uint32_t micros()
const;
void zero()
Sets current angle as new zero reference.
Definition encoder.cpp:85
float getAngle()
Returns current angle in radians [0, 2π).
Definition encoder.cpp:65
void resetPosition()
Resets the multi-turn position to zero.
Definition encoder.cpp:94
float getPosition()
Returns accumulated position in radians.
Definition encoder.cpp:74
void update()
Updates angle, position, and velocity.
Definition encoder.cpp:28
Encoder(SPI_HandleTypeDef *hspi, TIM_HandleTypeDef *htim, GPIO &CSn)
Constructs an Encoder object.
Definition encoder.cpp:11
int32_t getCommutationAngle()
Returns angle adjusted for motor commutation.
Definition encoder.cpp:55
uint16_t readRawAngle()
Performs an SPI read to get raw encoder angle.
Definition encoder.cpp:102
float getVelocity()
Returns estimated angular velocity in rad/s.
Definition encoder.cpp:80
Wrapper class for STM32 GPIO pin control.
Definition gpio.h:17