try to fix submodule
This commit is contained in:
82
firmware/lib/Arduino-FOC-drivers/src/encoders/ma330/MA330.h
Normal file
82
firmware/lib/Arduino-FOC-drivers/src/encoders/ma330/MA330.h
Normal file
@@ -0,0 +1,82 @@
|
||||
#ifndef __MA330_H__
|
||||
#define __MA330_H__
|
||||
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "SPI.h"
|
||||
|
||||
enum FieldStrength : uint8_t {
|
||||
FS_NORMAL = 0x00,
|
||||
FS_LOW = 0x01,
|
||||
FS_HIGH = 0x02,
|
||||
FS_ERR = 0x03 // impossible state
|
||||
};
|
||||
|
||||
|
||||
#define _2PI 6.28318530718f
|
||||
#define MA330_CPR 65536.0f
|
||||
|
||||
#define MA330_REG_ZERO_POSITION_LSB 0x00
|
||||
#define MA330_REG_ZERO_POSITION_MSB 0x01
|
||||
#define MA330_REG_BCT 0x02
|
||||
#define MA330_REG_ET 0x03
|
||||
#define MA330_REG_ILIP_PPT_LSB 0x04
|
||||
#define MA330_REG_PPT_MSB 0x05
|
||||
#define MA330_REG_MGLT_MGHT 0x06
|
||||
#define MA330_REG_NPP 0x07
|
||||
#define MA330_REG_RD 0x09
|
||||
#define MA330_REG_FW 0x0E
|
||||
#define MA330_REG_HYS 0x10
|
||||
#define MA330_REG_MGH_MGL 0x1B
|
||||
|
||||
#define MA330_BITORDER MSBFIRST
|
||||
|
||||
static SPISettings MA330SPISettings(1000000, MA330_BITORDER, SPI_MODE3); // @suppress("Invalid arguments")
|
||||
|
||||
class MA330 {
|
||||
public:
|
||||
MA330(SPISettings settings = MA330SPISettings, int nCS = -1);
|
||||
virtual ~MA330();
|
||||
|
||||
virtual void init(SPIClass* _spi = &SPI);
|
||||
|
||||
float getCurrentAngle(); // angle in radians, return current value
|
||||
|
||||
uint16_t readRawAngle(); // 9-14bit angle value
|
||||
|
||||
uint16_t getZero();
|
||||
uint8_t getBiasCurrentTrimming();
|
||||
bool isBiasCurrrentTrimmingX();
|
||||
bool isBiasCurrrentTrimmingY();
|
||||
uint16_t getPulsesPerTurn();
|
||||
uint8_t getIndexLength();
|
||||
uint8_t getNumberPolePairs();
|
||||
uint8_t getRotationDirection();
|
||||
uint8_t getFilterWidth();
|
||||
uint8_t getHysteresis();
|
||||
uint8_t getFieldStrengthHighThreshold();
|
||||
uint8_t getFieldStrengthLowThreshold();
|
||||
FieldStrength getFieldStrength();
|
||||
|
||||
void setZero(uint16_t);
|
||||
void setBiasCurrentTrimming(uint8_t);
|
||||
void setBiasCurrrentTrimmingEnabled(bool Xenabled, bool Yenabled);
|
||||
void setPulsesPerTurn(uint16_t);
|
||||
void setIndexLength(uint8_t);
|
||||
void setNumberPolePairs(uint8_t);
|
||||
void setRotationDirection(uint8_t);
|
||||
void setFilterWidth(uint8_t);
|
||||
void setHysteresis(uint8_t);
|
||||
void setFieldStrengthThresholds(uint8_t high, uint8_t low);
|
||||
|
||||
private:
|
||||
SPIClass* spi;
|
||||
SPISettings settings;
|
||||
int nCS = -1;
|
||||
|
||||
uint16_t transfer16(uint16_t outValue);
|
||||
uint8_t readRegister(uint8_t reg);
|
||||
uint8_t writeRegister(uint8_t reg, uint8_t value);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user