A library for the AMS AS5045 magnetic encoder using the SPI interface

Committer:
Generic
Date:
Fri Sep 16 03:43:22 2016 +0000
Revision:
2:02ea2289edb2
Parent:
1:2b21453e2c03
Initial working 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
Generic 2:02ea2289edb2 3 AS5045Controller::AS5045Controller(PinName CS) :
Generic 2:02ea2289edb2 4 _spi(NC,D12, D13),
Generic 2:02ea2289edb2 5 _cs(CS)
Kerneels Bezuidenhout 1:2b21453e2c03 6 {
Kerneels Bezuidenhout 1:2b21453e2c03 7 _spi.format(9,2);
Generic 2:02ea2289edb2 8 _spi.frequency(500000);
Kerneels Bezuidenhout 1:2b21453e2c03 9 _cs = 1;
Kerneels Bezuidenhout 1:2b21453e2c03 10 }
Kerneels Bezuidenhout 1:2b21453e2c03 11
Generic 2:02ea2289edb2 12 int AS5045Controller::GetInt()
Kerneels Bezuidenhout 1:2b21453e2c03 13 {
Kerneels Bezuidenhout 1:2b21453e2c03 14 _cs = 0;
Kerneels Bezuidenhout 1:2b21453e2c03 15 int upper = _spi.write(0x00);
Kerneels Bezuidenhout 1:2b21453e2c03 16 int lower = _spi.write(0x00);
Kerneels Bezuidenhout 1:2b21453e2c03 17 _cs = 1;
Kerneels Bezuidenhout 1:2b21453e2c03 18
Kerneels Bezuidenhout 1:2b21453e2c03 19
Generic 2:02ea2289edb2 20 return ((upper << 3)+(lower >> 6));
Kerneels Bezuidenhout 1:2b21453e2c03 21 }
Kerneels Bezuidenhout 1:2b21453e2c03 22
Generic 2:02ea2289edb2 23 float AS5045Controller::GetFloat()
Kerneels Bezuidenhout 1:2b21453e2c03 24 {
Generic 2:02ea2289edb2 25 float value = (float)GetInt();
Generic 2:02ea2289edb2 26
Generic 2:02ea2289edb2 27 return value*0.08789;
Generic 2:02ea2289edb2 28
Kerneels Bezuidenhout 1:2b21453e2c03 29 }