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.
Dependencies: MPU9250_SPI mbed
main.cpp@4:5a9aa5ae928a, 2016-06-08 (annotated)
- Committer:
- mfurukawa
- Date:
- Wed Jun 08 10:42:30 2016 +0000
- Revision:
- 4:5a9aa5ae928a
- Parent:
- 3:07aa20aa678d
- Child:
- 5:abfc7660fde9
Product ID check
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mfurukawa | 3:07aa20aa678d | 1 | /** |
mfurukawa | 3:07aa20aa678d | 2 | * Masahiro FURUKAWA - m.furukawa@ist.osaka-u.ac.jp |
mfurukawa | 3:07aa20aa678d | 3 | * |
mfurukawa | 4:5a9aa5ae928a | 4 | * June 7, 2016 |
mfurukawa | 3:07aa20aa678d | 5 | * |
mfurukawa | 3:07aa20aa678d | 6 | * LDXL362 Acceleration Sensor (Extended to Ch1 ~ Ch3) |
mfurukawa | 3:07aa20aa678d | 7 | * |
mfurukawa | 3:07aa20aa678d | 8 | **/ |
mfurukawa | 3:07aa20aa678d | 9 | |
mfurukawa | 1:f1e4ee4fc335 | 10 | |
adisuciu | 0:83fda1bfaffe | 11 | #include "mbed.h" |
adisuciu | 0:83fda1bfaffe | 12 | #include "ADXL362.h" |
adisuciu | 0:83fda1bfaffe | 13 | |
mfurukawa | 1:f1e4ee4fc335 | 14 | Serial pc(USBTX, USBRX); |
mfurukawa | 1:f1e4ee4fc335 | 15 | |
mfurukawa | 1:f1e4ee4fc335 | 16 | /* |
mfurukawa | 1:f1e4ee4fc335 | 17 | ~CS (Chip Select) p8 |
mfurukawa | 1:f1e4ee4fc335 | 18 | MOSI (Master Out Slave In) p5 |
mfurukawa | 1:f1e4ee4fc335 | 19 | MISO (Master In Slave Out p6 |
mfurukawa | 1:f1e4ee4fc335 | 20 | SCK (Serial Clock) p7 |
mfurukawa | 1:f1e4ee4fc335 | 21 | */ |
adisuciu | 0:83fda1bfaffe | 22 | |
mfurukawa | 4:5a9aa5ae928a | 23 | |
adisuciu | 0:83fda1bfaffe | 24 | int main() { |
mfurukawa | 2:9ef7a594159c | 25 | pc.baud(115200); |
adisuciu | 0:83fda1bfaffe | 26 | |
mfurukawa | 4:5a9aa5ae928a | 27 | ADXL362 *adxl362[6]; |
mfurukawa | 1:f1e4ee4fc335 | 28 | |
mfurukawa | 4:5a9aa5ae928a | 29 | adxl362[0] = new ADXL362( p8, p5, p6, p7); |
mfurukawa | 4:5a9aa5ae928a | 30 | adxl362[1] = new ADXL362( p9, p5, p6, p7); |
mfurukawa | 4:5a9aa5ae928a | 31 | adxl362[2] = new ADXL362( p10, p5, p6, p7); |
mfurukawa | 4:5a9aa5ae928a | 32 | adxl362[3] = new ADXL362( p11, p5, p6, p7); |
mfurukawa | 4:5a9aa5ae928a | 33 | adxl362[4] = new ADXL362( p12, p5, p6, p7); |
mfurukawa | 4:5a9aa5ae928a | 34 | adxl362[5] = new ADXL362( p13, p5, p6, p7); |
mfurukawa | 3:07aa20aa678d | 35 | |
mfurukawa | 3:07aa20aa678d | 36 | // we need to wait at least 500ms after ADXL362 reset |
mfurukawa | 4:5a9aa5ae928a | 37 | printf("\r\nInitializing . \r\n"); |
mfurukawa | 4:5a9aa5ae928a | 38 | for (int i=0; i<6; i++) { |
mfurukawa | 4:5a9aa5ae928a | 39 | adxl362[i]->reset(); |
mfurukawa | 4:5a9aa5ae928a | 40 | wait_ms(600); |
mfurukawa | 4:5a9aa5ae928a | 41 | } |
mfurukawa | 4:5a9aa5ae928a | 42 | |
mfurukawa | 4:5a9aa5ae928a | 43 | |
mfurukawa | 4:5a9aa5ae928a | 44 | wait_ms(600); |
mfurukawa | 3:07aa20aa678d | 45 | |
mfurukawa | 4:5a9aa5ae928a | 46 | for (int i=0; i<6; i++) |
mfurukawa | 4:5a9aa5ae928a | 47 | { |
mfurukawa | 4:5a9aa5ae928a | 48 | //adxl362[i]->frequency(20000); |
mfurukawa | 4:5a9aa5ae928a | 49 | adxl362[i]->frequency(1000000); |
mfurukawa | 4:5a9aa5ae928a | 50 | adxl362[i]->set_mode(ADXL362::MEASUREMENT); |
mfurukawa | 4:5a9aa5ae928a | 51 | } |
mfurukawa | 4:5a9aa5ae928a | 52 | //while(1) { |
mfurukawa | 4:5a9aa5ae928a | 53 | for (int i=0; i<6; i++) |
mfurukawa | 4:5a9aa5ae928a | 54 | { |
mfurukawa | 4:5a9aa5ae928a | 55 | uint8_t err = false; |
mfurukawa | 4:5a9aa5ae928a | 56 | uint8_t ad = static_cast<uint8_t>(adxl362[i]->read_reg(ADXL362::DEVID_AD)); |
mfurukawa | 4:5a9aa5ae928a | 57 | uint8_t mst = static_cast<uint8_t>(adxl362[i]->read_reg(ADXL362::DEVID_MST)); |
mfurukawa | 4:5a9aa5ae928a | 58 | uint8_t pid = static_cast<uint8_t>(adxl362[i]->read_reg(ADXL362::PARTID)); |
mfurukawa | 4:5a9aa5ae928a | 59 | uint8_t rid = static_cast<uint8_t>(adxl362[i]->read_reg(ADXL362::REVID)); |
mfurukawa | 4:5a9aa5ae928a | 60 | err |= (0xAD != ad); |
mfurukawa | 4:5a9aa5ae928a | 61 | err |= (0x1D != mst); |
mfurukawa | 4:5a9aa5ae928a | 62 | err |= (0xF2 != pid); |
mfurukawa | 4:5a9aa5ae928a | 63 | err |= (0x02 != rid); |
mfurukawa | 4:5a9aa5ae928a | 64 | if (err) printf("CH %d has error DevID_AD %02x DevID_MST %02x PartID %02x RevID %02x\r\n", i, ad, mst, pid, rid); |
mfurukawa | 4:5a9aa5ae928a | 65 | } |
mfurukawa | 4:5a9aa5ae928a | 66 | //} |
mfurukawa | 2:9ef7a594159c | 67 | |
mfurukawa | 4:5a9aa5ae928a | 68 | uint64_t xyzt[6]; |
mfurukawa | 2:9ef7a594159c | 69 | |
adisuciu | 0:83fda1bfaffe | 70 | while(1) { |
mfurukawa | 3:07aa20aa678d | 71 | |
mfurukawa | 4:5a9aa5ae928a | 72 | |
mfurukawa | 3:07aa20aa678d | 73 | |
mfurukawa | 4:5a9aa5ae928a | 74 | /* pc.putc('#'); |
mfurukawa | 4:5a9aa5ae928a | 75 | char ch; |
mfurukawa | 4:5a9aa5ae928a | 76 | for(int i=8;i>2;i--) |
mfurukawa | 4:5a9aa5ae928a | 77 | { |
mfurukawa | 4:5a9aa5ae928a | 78 | ch = static_cast<uint8_t>(0xF&( t1>>(i*8) ) ); |
mfurukawa | 4:5a9aa5ae928a | 79 | pc.putc(ch); |
mfurukawa | 4:5a9aa5ae928a | 80 | } |
mfurukawa | 4:5a9aa5ae928a | 81 | pc.putc(','); |
mfurukawa | 4:5a9aa5ae928a | 82 | for(int i=8;i>2;i--) |
mfurukawa | 4:5a9aa5ae928a | 83 | { |
mfurukawa | 4:5a9aa5ae928a | 84 | ch = static_cast<uint8_t>(0xF&( t2>>(i*8) ) ); |
mfurukawa | 4:5a9aa5ae928a | 85 | pc.putc(ch); |
mfurukawa | 4:5a9aa5ae928a | 86 | } |
mfurukawa | 4:5a9aa5ae928a | 87 | pc.putc(','); |
mfurukawa | 4:5a9aa5ae928a | 88 | for(int i=8;i>2;i--) |
mfurukawa | 4:5a9aa5ae928a | 89 | { |
mfurukawa | 4:5a9aa5ae928a | 90 | ch = static_cast<uint8_t>(0xF&( t3>>(i*8) ) ); |
mfurukawa | 4:5a9aa5ae928a | 91 | pc.putc(ch); |
mfurukawa | 4:5a9aa5ae928a | 92 | } |
mfurukawa | 4:5a9aa5ae928a | 93 | */ |
mfurukawa | 3:07aa20aa678d | 94 | |
mfurukawa | 4:5a9aa5ae928a | 95 | for (int i=0; i<6; i++) |
mfurukawa | 4:5a9aa5ae928a | 96 | xyzt[i] = adxl362[i]->scan(); |
mfurukawa | 4:5a9aa5ae928a | 97 | for (int i=0; i<6; i++) { |
mfurukawa | 4:5a9aa5ae928a | 98 | printf("%04x %04x %04x ", |
mfurukawa | 4:5a9aa5ae928a | 99 | static_cast<uint16_t>(0xFFFF&(xyzt[i]>>48)), |
mfurukawa | 4:5a9aa5ae928a | 100 | static_cast<uint16_t>(0xFFFF&(xyzt[i]>>32)), |
mfurukawa | 4:5a9aa5ae928a | 101 | static_cast<uint16_t>(0xFFFF&(xyzt[i]>>16)) |
mfurukawa | 4:5a9aa5ae928a | 102 | ); |
mfurukawa | 4:5a9aa5ae928a | 103 | } |
mfurukawa | 4:5a9aa5ae928a | 104 | printf("\r\n"); |
mfurukawa | 4:5a9aa5ae928a | 105 | //wait_us(1); |
adisuciu | 0:83fda1bfaffe | 106 | } |
adisuciu | 0:83fda1bfaffe | 107 | } |