Cleanup encoder code

This commit is contained in:
Hakan Bastedt
2024-01-11 10:42:29 +01:00
parent cd8388ea58
commit a4488da9fa
6 changed files with 389 additions and 479 deletions

View File

@@ -3,12 +3,22 @@
#include "Stm32F4_Encoder.h"
#include <CircularBuffer.h>
#define RINGBUFFERLEN 101
// EncoderInit.SetCount(Tim3, 0);
// EncoderInit.SetCount(Tim4, 0);
// EncoderInit.SetCount(Tim8, 0);
class MyEncoder
{
public:
MyEncoder(uint8_t _indexPin, void irq(void));
int32_t unwrapEncoder(uint16_t in);
void indexPulse(void);
void init(TIM_TypeDef *_tim_base);
uint8_t indexHappened();
double currentPos(volatile uint32_t cnt);
double frequency(uint64_t time);
uint8_t getIndexState();
void setScale(double scale);
void setLatch(uint8_t latchEnable);
private:
int32_t previousEncoderCounterValue = 0;
double PosScaleRes = 1.0;
uint32_t CurPosScale = 1;
@@ -23,18 +33,6 @@ public:
double curPos;
TIM_TypeDef *tim_base;
public:
MyEncoder(uint8_t _indexPin, void irq(void));
int32_t unwrapEncoder(uint16_t in);
void indexPulse(void);
void init(enum EncTimer timer, TIM_TypeDef *_tim_base);
uint8_t indexHappened();
double currentPos(volatile uint32_t cnt);
double frequency(uint64_t time);
uint8_t getIndexState();
void setScale(double scale);
void setLatch(uint8_t latchEnable);
};
#endif