Cornelius Bezuidenhout / AS5045Controller
Committer:
Kerneels Bezuidenhout
Date:
Fri Sep 16 04:56:51 2016 +0200
Revision:
1:2b21453e2c03
Parent:
0:f2ebf8862df5
Child:
2:02ea2289edb2
Initial Version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kerneels Bezuidenhout 1:2b21453e2c03 1 #include "AS5045Controller.hpp"
Kerneels Bezuidenhout 1:2b21453e2c03 2
Kerneels Bezuidenhout 1:2b21453e2c03 3 AS5045Controller::AS5045Controller(PinName CS, int f, PinName D0, PinName CLK) :
Kerneels Bezuidenhout 1:2b21453e2c03 4 _spi(NC,DO,CLK),
Kerneels Bezuidenhout 1:2b21453e2c03 5 _cs(CS);
Kerneels Bezuidenhout 1:2b21453e2c03 6 {
Kerneels Bezuidenhout 1:2b21453e2c03 7 _spi.format(9,2);
Kerneels Bezuidenhout 1:2b21453e2c03 8 _spi.frequency(f);
Kerneels Bezuidenhout 1:2b21453e2c03 9 _cs = 1;
Kerneels Bezuidenhout 1:2b21453e2c03 10 _valid = false;
Kerneels Bezuidenhout 1:2b21453e2c03 11 }
Kerneels Bezuidenhout 1:2b21453e2c03 12
Kerneels Bezuidenhout 1:2b21453e2c03 13 int AS5045Controller::Read()
Kerneels Bezuidenhout 1:2b21453e2c03 14 {
Kerneels Bezuidenhout 1:2b21453e2c03 15 _cs = 0;
Kerneels Bezuidenhout 1:2b21453e2c03 16 int upper = _spi.write(0x00);
Kerneels Bezuidenhout 1:2b21453e2c03 17 int lower = _spi.write(0x00);
Kerneels Bezuidenhout 1:2b21453e2c03 18 _cs = 1;
Kerneels Bezuidenhout 1:2b21453e2c03 19
Kerneels Bezuidenhout 1:2b21453e2c03 20 _magDEC = (lower >> 1) & 1;
Kerneels Bezuidenhout 1:2b21453e2c03 21 _magINC = (lower >> 2) & 1;
Kerneels Bezuidenhout 1:2b21453e2c03 22 _lin = (lower >> 3) & 1;
Kerneels Bezuidenhout 1:2b21453e2c03 23 _cof = (lower >> 4) & 1;
Kerneels Bezuidenhout 1:2b21453e2c03 24 _ocf = (lower >> 5) & 1;
Kerneels Bezuidenhout 1:2b21453e2c03 25 _valid = (_ocf & !_cof & !_lin & (_magINC | _magDEC) );
Kerneels Bezuidenhout 1:2b21453e2c03 26 _value = ((upper << 3)+(lower >> 6));
Kerneels Bezuidenhout 1:2b21453e2c03 27
Kerneels Bezuidenhout 1:2b21453e2c03 28 return _value;
Kerneels Bezuidenhout 1:2b21453e2c03 29 }
Kerneels Bezuidenhout 1:2b21453e2c03 30
Kerneels Bezuidenhout 1:2b21453e2c03 31 bool AS5045Controller::IsValid()
Kerneels Bezuidenhout 1:2b21453e2c03 32 {
Kerneels Bezuidenhout 1:2b21453e2c03 33 return _valid;
Kerneels Bezuidenhout 1:2b21453e2c03 34 }