Takashi Matsuoka
/
MJ_AS5040_TEST
Encoder IC AS5040 test program.
main.cpp@1:22538ea9c2ba, 2014-10-08 (annotated)
- Committer:
- matsujirushi
- Date:
- Wed Oct 08 11:35:43 2014 +0000
- Revision:
- 1:22538ea9c2ba
- Parent:
- 0:0ace6ddff9f1
Remove unused libraries.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
matsujirushi | 0:0ace6ddff9f1 | 1 | #include "mbed.h" |
matsujirushi | 0:0ace6ddff9f1 | 2 | |
matsujirushi | 0:0ace6ddff9f1 | 3 | Serial pc(USBTX, USBRX); |
matsujirushi | 0:0ace6ddff9f1 | 4 | |
matsujirushi | 0:0ace6ddff9f1 | 5 | |
matsujirushi | 0:0ace6ddff9f1 | 6 | DigitalOut CSn(dp28); |
matsujirushi | 0:0ace6ddff9f1 | 7 | DigitalOut CLK(dp26); |
matsujirushi | 0:0ace6ddff9f1 | 8 | DigitalIn DO(dp25); |
matsujirushi | 0:0ace6ddff9f1 | 9 | |
matsujirushi | 0:0ace6ddff9f1 | 10 | int main() { |
matsujirushi | 0:0ace6ddff9f1 | 11 | |
matsujirushi | 0:0ace6ddff9f1 | 12 | // Initial. |
matsujirushi | 0:0ace6ddff9f1 | 13 | CSn = 1; |
matsujirushi | 0:0ace6ddff9f1 | 14 | CLK = 1; |
matsujirushi | 0:0ace6ddff9f1 | 15 | |
matsujirushi | 0:0ace6ddff9f1 | 16 | pc.baud(115200); |
matsujirushi | 0:0ace6ddff9f1 | 17 | pc.printf("Ready.\r\n"); |
matsujirushi | 0:0ace6ddff9f1 | 18 | |
matsujirushi | 0:0ace6ddff9f1 | 19 | for (;;) |
matsujirushi | 0:0ace6ddff9f1 | 20 | { |
matsujirushi | 0:0ace6ddff9f1 | 21 | CSn = 0; |
matsujirushi | 0:0ace6ddff9f1 | 22 | wait_us(1); |
matsujirushi | 0:0ace6ddff9f1 | 23 | |
matsujirushi | 0:0ace6ddff9f1 | 24 | uint16_t data = 0; |
matsujirushi | 0:0ace6ddff9f1 | 25 | for (int i = 0; i < 16; i++) |
matsujirushi | 0:0ace6ddff9f1 | 26 | { |
matsujirushi | 0:0ace6ddff9f1 | 27 | CLK = 0; |
matsujirushi | 0:0ace6ddff9f1 | 28 | wait_us(1); |
matsujirushi | 0:0ace6ddff9f1 | 29 | CLK = 1; |
matsujirushi | 0:0ace6ddff9f1 | 30 | wait_us(1); |
matsujirushi | 0:0ace6ddff9f1 | 31 | |
matsujirushi | 0:0ace6ddff9f1 | 32 | data <<= 1; |
matsujirushi | 0:0ace6ddff9f1 | 33 | if (DO.read()) data |= 1; |
matsujirushi | 0:0ace6ddff9f1 | 34 | } |
matsujirushi | 0:0ace6ddff9f1 | 35 | CSn = 1; |
matsujirushi | 0:0ace6ddff9f1 | 36 | |
matsujirushi | 0:0ace6ddff9f1 | 37 | uint16_t angular = data >> 6; |
matsujirushi | 0:0ace6ddff9f1 | 38 | uint16_t status = (data >> 1) & 0x1f; |
matsujirushi | 0:0ace6ddff9f1 | 39 | pc.printf("%03x %02x\r\n", angular, status); |
matsujirushi | 0:0ace6ddff9f1 | 40 | |
matsujirushi | 0:0ace6ddff9f1 | 41 | wait(0.2); |
matsujirushi | 0:0ace6ddff9f1 | 42 | } |
matsujirushi | 0:0ace6ddff9f1 | 43 | } |
matsujirushi | 0:0ace6ddff9f1 | 44 |