Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
AS5045Controller.cpp@1:2b21453e2c03, 2016-09-16 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |