Skip to content

Commit 39e6288

Browse files
author
Richard Unger
committed
fix more MT6835 driver errors
1 parent df8490b commit 39e6288

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/encoders/mt6835/MT6835.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,32 +15,38 @@ MT6835::~MT6835() {
1515

1616
void MT6835::init(SPIClass* _spi) {
1717
spi = _spi;
18-
if (nCS >= 0)
18+
if (nCS >= 0) {
1919
pinMode(nCS, OUTPUT);
20+
digitalWrite(nCS, HIGH);
21+
}
2022
spi->begin();
2123
};
2224

2325

2426

2527

2628
float MT6835::getCurrentAngle(){
27-
return readRawAngle21() / MT6835_CPR * _2PI;
29+
return readRawAngle21() / (float)MT6835_CPR * _2PI;
2830
};
2931

3032

3133

3234
uint32_t MT6835::readRawAngle21(){
3335
uint8_t data[6]; // transact 48 bits
34-
data[0] = (MT6835_OP_ANGLE<<4) | (MT6835_REG_ANGLE1 >> 8);
35-
data[1] = MT6835_REG_ANGLE1 & 0x00FF;
36+
data[0] = (MT6835_OP_ANGLE<<4);
37+
data[1] = MT6835_REG_ANGLE1;
38+
data[2] = 0;
39+
data[3] = 0;
40+
data[4] = 0;
41+
data[5] = 0;
3642
if (nCS >= 0)
3743
digitalWrite(nCS, LOW);
3844
spi->beginTransaction(settings);
3945
spi->transfer(data, 6);
4046
spi->endTransaction();
4147
if (nCS >= 0)
4248
digitalWrite(nCS, HIGH);
43-
return (data[2] << 12) | (data[3] << 4) | (data[4] >> 3);
49+
return (data[2] << 13) | (data[3] << 5) | (data[4] >> 3);
4450
};
4551

4652

0 commit comments

Comments
 (0)