34 lines
1.0 KiB
C++
34 lines
1.0 KiB
C++
/*
|
|
* PreciseMagneticSensorAS5048A.h
|
|
*
|
|
* Created on: 1 May 2021
|
|
* Author: runger
|
|
*/
|
|
|
|
#ifndef LIBRARIES_ARDUNIO_FOC_DRIVERS_SRC_ENCODERS_AS5048A_PRECISEMAGNETICSENSORAS5048A_H_
|
|
#define LIBRARIES_ARDUNIO_FOC_DRIVERS_SRC_ENCODERS_AS5048A_PRECISEMAGNETICSENSORAS5048A_H_
|
|
|
|
#include "common/base_classes/Sensor.h"
|
|
#include "./AS5048A.h"
|
|
#include "utilities/PreciseAngle.h"
|
|
|
|
class PreciseMagneticSensorAS5048A : public Sensor, public AS5048A {
|
|
public:
|
|
PreciseMagneticSensorAS5048A(int nCS = -1, bool fastMode = false, SPISettings settings = AS5048SPISettings);
|
|
virtual ~PreciseMagneticSensorAS5048A();
|
|
|
|
virtual float getSensorAngle() override;
|
|
virtual float getVelocity() override;
|
|
|
|
virtual void init(SPIClass* _spi = &SPI) override;
|
|
|
|
protected:
|
|
bool fastMode = false;
|
|
PreciseAngle previous_angle = PreciseAngle();
|
|
PreciseAngle current_angle = PreciseAngle();
|
|
unsigned long previous_ts = 0;
|
|
unsigned long current_ts = 1;
|
|
};
|
|
|
|
#endif /* LIBRARIES_ARDUNIO_FOC_DRIVERS_SRC_ENCODERS_AS5048A_PRECISEMAGNETICSENSORAS5048A_H_ */
|