32 lines
754 B
C++
32 lines
754 B
C++
#pragma once
|
|
|
|
#include "SimpleFOC.h"
|
|
#include "SPI.h"
|
|
|
|
#ifndef MSBFIRST
|
|
#define MSBFIRST BitOrder::MSBFIRST
|
|
#endif
|
|
|
|
#define AS5045_BITORDER MSBFIRST
|
|
#define AS5045_CPR 4096.0f
|
|
#define _2PI 6.28318530718f
|
|
|
|
static SPISettings AS5145SSISettings(1000000, AS5045_BITORDER, SPI_MODE0);
|
|
|
|
class MagneticSensorAS5045 final: public Sensor {
|
|
public:
|
|
MagneticSensorAS5045(uint16_t as5040_cs, uint16_t as5040_mosi, uint16_t as5040_miso, uint16_t as5040_sclk);
|
|
|
|
virtual ~MagneticSensorAS5045();
|
|
|
|
float getSensorAngle() override;
|
|
|
|
virtual void init(SPIClass *_spi = &SPI);
|
|
|
|
[[nodiscard]] uint16_t readRawAngleSSI() const;
|
|
|
|
private:
|
|
uint16_t AS5040_CS_, AS5040_MOSI_, AS5040_MISO_, AS5040_SCLK_;
|
|
SPIClass *spi;
|
|
SPISettings settings;
|
|
};
|