try to fix submodule
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* AS5048A.h
|
||||
*
|
||||
* Created on: 8 Mar 2021
|
||||
* Author: runger
|
||||
*/
|
||||
|
||||
#ifndef AS5048A_H_
|
||||
#define AS5048A_H_
|
||||
|
||||
#include "Arduino.h"
|
||||
#include "SPI.h"
|
||||
|
||||
|
||||
|
||||
|
||||
union AS5048Diagnostics {
|
||||
struct {
|
||||
uint16_t agc:8;
|
||||
uint16_t ocf:1;
|
||||
uint16_t cof:1;
|
||||
uint16_t compLow:1;
|
||||
uint16_t compHigh:1;
|
||||
};
|
||||
uint16_t reg;
|
||||
};
|
||||
|
||||
|
||||
struct AS5048Error {
|
||||
bool parityError;
|
||||
bool commandInvalid;
|
||||
bool framingError;
|
||||
};
|
||||
|
||||
|
||||
#define AS5048A_CPR 16384
|
||||
#define AS5048A_ANGLE_REG 0x3FFF
|
||||
#define AS5048A_ERROR_REG 0x0001
|
||||
#define AS5048A_PROGCTL_REG 0x0003
|
||||
#define AS5048A_OTPHIGH_REG 0x0016
|
||||
#define AS5048A_OTPLOW_REG 0x0017
|
||||
#define AS5048A_DIAGNOSTICS_REG 0x3FFD
|
||||
#define AS5048A_MAGNITUDE_REG 0x3FFE
|
||||
#define AS5048A_PARITY 0x8000
|
||||
#define AS5048A_RW 0x4000
|
||||
#define AS5048A_ERRFLG 0x4000
|
||||
#define AS5048A_RESULT_MASK 0x3FFF
|
||||
|
||||
|
||||
#define AS5048_BITORDER MSBFIRST
|
||||
|
||||
|
||||
static SPISettings AS5048SPISettings(8000000, AS5048_BITORDER, SPI_MODE1); // @suppress("Invalid arguments")
|
||||
|
||||
|
||||
class AS5048A {
|
||||
public:
|
||||
AS5048A(SPISettings settings = AS5048SPISettings, int nCS = -1);
|
||||
virtual ~AS5048A();
|
||||
|
||||
virtual void init(SPIClass* _spi = &SPI);
|
||||
|
||||
float getCurrentAngle(); // angle in radians, return current value
|
||||
float getFastAngle(); // angle in radians, return last value and read new
|
||||
|
||||
uint16_t readRawAngle(); // 14bit angle value
|
||||
uint16_t readMagnitude(); // 14bit magnitude value
|
||||
|
||||
bool isErrorFlag();
|
||||
AS5048Error clearErrorFlag();
|
||||
|
||||
AS5048Diagnostics readDiagnostics();
|
||||
|
||||
uint16_t setZero(uint16_t);
|
||||
uint16_t enableOneTimeProgramming();
|
||||
uint16_t programZero();
|
||||
|
||||
private:
|
||||
|
||||
uint16_t nop();
|
||||
uint16_t spi_transfer16(uint16_t outdata);
|
||||
SPIClass* spi;
|
||||
SPISettings settings;
|
||||
bool errorflag = false;
|
||||
int nCS = -1;
|
||||
|
||||
};
|
||||
|
||||
#endif /* AS5048A_H_ */
|
||||
Reference in New Issue
Block a user