try to fix submodule
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#include "./MagneticSensorMT6701SSI.h"
|
||||
#include "common/foc_utils.h"
|
||||
#include "common/time_utils.h"
|
||||
|
||||
MagneticSensorMT6701SSI::MagneticSensorMT6701SSI(int nCS, SPISettings settings) : settings(settings), nCS(nCS) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
MagneticSensorMT6701SSI::~MagneticSensorMT6701SSI() {
|
||||
|
||||
}
|
||||
|
||||
void MagneticSensorMT6701SSI::init(SPIClass* _spi) {
|
||||
this->spi=_spi;
|
||||
if (nCS >= 0) {
|
||||
pinMode(nCS, OUTPUT);
|
||||
digitalWrite(nCS, HIGH);
|
||||
}
|
||||
this->spi->begin();
|
||||
this->Sensor::init();
|
||||
}
|
||||
|
||||
// check 40us delay between each read?
|
||||
float MagneticSensorMT6701SSI::getSensorAngle() {
|
||||
float angle_data = readRawAngleSSI();
|
||||
angle_data = ( angle_data / (float)MT6701_CPR ) * _2PI;
|
||||
// return the shaft angle
|
||||
return angle_data;
|
||||
}
|
||||
|
||||
|
||||
uint16_t MagneticSensorMT6701SSI::readRawAngleSSI() {
|
||||
if (nCS >= 0)
|
||||
digitalWrite(nCS, LOW);
|
||||
spi->beginTransaction(settings);
|
||||
uint16_t value = spi->transfer16(0x0000);
|
||||
spi->endTransaction();
|
||||
if (nCS >= 0)
|
||||
digitalWrite(nCS, HIGH);
|
||||
return (value>>MT6701_DATA_POS)&0x3FFF;
|
||||
};
|
||||
Reference in New Issue
Block a user