try to fix submodule

This commit is contained in:
2023-11-09 19:02:15 -05:00
parent c1d45aa443
commit deea94b076
366 changed files with 40228 additions and 2 deletions

View 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