antimo angelino
/
i2c_master
LSM9DS1 i2c
main.cpp@5:ab0d54d9e071, 2018-07-18 (annotated)
- Committer:
- antimo8@alice.it
- Date:
- Wed Jul 18 23:40:51 2018 +0200
- Revision:
- 5:ab0d54d9e071
- Parent:
- 3:9b3780a7d51e
add mgc3130.li adn example in main
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
antimo8 | 0:553e72ae6d64 | 1 | #include "mbed.h" |
antimo8 | 0:553e72ae6d64 | 2 | |
antimo8@alice.it | 5:ab0d54d9e071 | 3 | /* |
antimo8@alice.it | 5:ab0d54d9e071 | 4 | Outlines the function of the Library’s I2C message interface, and contains the complete message reference to control and operate the MGC3X30 system. |
antimo8@alice.it | 5:ab0d54d9e071 | 5 | |
antimo8@alice.it | 5:ab0d54d9e071 | 6 | Example: |
antimo8@alice.it | 5:ab0d54d9e071 | 7 | @code |
antimo8@alice.it | 5:ab0d54d9e071 | 8 | */ |
antimo8@alice.it | 5:ab0d54d9e071 | 9 | |
antimo8@alice.it | 5:ab0d54d9e071 | 10 | #include "mbed.h" |
antimo8@alice.it | 5:ab0d54d9e071 | 11 | #include "MGC3130.h" |
antimo8@alice.it | 5:ab0d54d9e071 | 12 | |
antimo8@alice.it | 5:ab0d54d9e071 | 13 | SensorData * msg = NULL; |
antimo8@alice.it | 5:ab0d54d9e071 | 14 | MGC3130 device (PB_7,PA_15, PB_1, false); |
antimo8@alice.it | 5:ab0d54d9e071 | 15 | Serial pc(SERIAL_TX, SERIAL_RX); |
antimo8@alice.it | 5:ab0d54d9e071 | 16 | void init() |
antimo8@alice.it | 5:ab0d54d9e071 | 17 | { |
antimo8@alice.it | 5:ab0d54d9e071 | 18 | pc.printf("\r\n init\r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 19 | AirWheelDetection air(true); |
antimo8@alice.it | 5:ab0d54d9e071 | 20 | device.setRuntimeParameter(&air); |
antimo8@alice.it | 3:9b3780a7d51e | 21 | |
antimo8@alice.it | 5:ab0d54d9e071 | 22 | TouchDetection touch(true); |
antimo8@alice.it | 5:ab0d54d9e071 | 23 | device.setRuntimeParameter(&touch); |
antimo8@alice.it | 5:ab0d54d9e071 | 24 | |
antimo8@alice.it | 5:ab0d54d9e071 | 25 | OutputEnable setting; |
antimo8@alice.it | 5:ab0d54d9e071 | 26 | setting.enableGestureData(true)->enableTouchInfo(true)->enableAirWheelInfo(true)->enableNoisePower(false) |
antimo8@alice.it | 5:ab0d54d9e071 | 27 | ->enablexyzPosition(false)->enableDSPStatus(false)->enableUncalibratedSignal(false)->enableSignalDeviation(false); |
antimo8@alice.it | 5:ab0d54d9e071 | 28 | device.setRuntimeParameter(&setting); |
antimo8@alice.it | 5:ab0d54d9e071 | 29 | } |
antimo8@alice.it | 5:ab0d54d9e071 | 30 | |
antimo8@alice.it | 5:ab0d54d9e071 | 31 | void touch() |
antimo8@alice.it | 5:ab0d54d9e071 | 32 | { |
antimo8@alice.it | 5:ab0d54d9e071 | 33 | pc.printf("\r\n touch \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 34 | TouchInfo * info = msg->getTouchInfo(); |
antimo8@alice.it | 5:ab0d54d9e071 | 35 | |
antimo8@alice.it | 5:ab0d54d9e071 | 36 | if (info == NULL) |
antimo8@alice.it | 5:ab0d54d9e071 | 37 | return; |
antimo8@alice.it | 5:ab0d54d9e071 | 38 | |
antimo8@alice.it | 5:ab0d54d9e071 | 39 | if (info->isTapCenterElectrode() == false) |
antimo8@alice.it | 5:ab0d54d9e071 | 40 | return; |
antimo8@alice.it | 5:ab0d54d9e071 | 41 | } |
antimo8@alice.it | 3:9b3780a7d51e | 42 | |
antimo8@alice.it | 5:ab0d54d9e071 | 43 | void airWheel() |
antimo8@alice.it | 5:ab0d54d9e071 | 44 | { |
antimo8@alice.it | 5:ab0d54d9e071 | 45 | pc.printf("\r\n airWheel \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 46 | int * wheel = msg->getAirWheelInfo(); |
antimo8@alice.it | 5:ab0d54d9e071 | 47 | if (wheel == NULL) |
antimo8@alice.it | 5:ab0d54d9e071 | 48 | return; |
antimo8@alice.it | 5:ab0d54d9e071 | 49 | } |
antimo8@alice.it | 5:ab0d54d9e071 | 50 | |
antimo8@alice.it | 5:ab0d54d9e071 | 51 | void gesture() |
antimo8@alice.it | 5:ab0d54d9e071 | 52 | { |
antimo8@alice.it | 5:ab0d54d9e071 | 53 | pc.printf("\r\n gesture \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 54 | GestureInfo * info = msg->getGestureInfo(); |
antimo8@alice.it | 5:ab0d54d9e071 | 55 | |
antimo8@alice.it | 5:ab0d54d9e071 | 56 | if (info == NULL) |
antimo8@alice.it | 5:ab0d54d9e071 | 57 | return; |
antimo8@alice.it | 5:ab0d54d9e071 | 58 | |
antimo8@alice.it | 5:ab0d54d9e071 | 59 | switch (info->getRecognizedGesture()) { |
antimo8@alice.it | 5:ab0d54d9e071 | 60 | //Garbage Model |
antimo8@alice.it | 5:ab0d54d9e071 | 61 | case 1 : |
antimo8@alice.it | 5:ab0d54d9e071 | 62 | break; |
antimo8@alice.it | 5:ab0d54d9e071 | 63 | pc.printf("\r\n Flick West To East \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 64 | //Flick West To East |
antimo8@alice.it | 5:ab0d54d9e071 | 65 | case 2 : |
antimo8@alice.it | 5:ab0d54d9e071 | 66 | pc.printf("\r\n Flick West To East \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 67 | break; |
antimo8@alice.it | 5:ab0d54d9e071 | 68 | //Flick East To West |
antimo8@alice.it | 5:ab0d54d9e071 | 69 | case 3 : |
antimo8@alice.it | 5:ab0d54d9e071 | 70 | pc.printf("\r\n Flick South To North \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 71 | break; |
antimo8@alice.it | 5:ab0d54d9e071 | 72 | //Flick South To North |
antimo8@alice.it | 5:ab0d54d9e071 | 73 | case 4 : |
antimo8@alice.it | 5:ab0d54d9e071 | 74 | pc.printf("\r\n //Flick North To South \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 75 | break; |
antimo8@alice.it | 5:ab0d54d9e071 | 76 | //Flick North To South |
antimo8@alice.it | 5:ab0d54d9e071 | 77 | case 5 : |
antimo8@alice.it | 5:ab0d54d9e071 | 78 | pc.printf("\r\n //Flick North To South \r\n "); |
antimo8@alice.it | 5:ab0d54d9e071 | 79 | break; |
antimo8@alice.it | 5:ab0d54d9e071 | 80 | } |
antimo8@alice.it | 5:ab0d54d9e071 | 81 | } |
antimo8@alice.it | 5:ab0d54d9e071 | 82 | |
antimo8 | 0:553e72ae6d64 | 83 | int main() |
antimo8 | 0:553e72ae6d64 | 84 | { |
antimo8@alice.it | 5:ab0d54d9e071 | 85 | init(); |
antimo8@alice.it | 5:ab0d54d9e071 | 86 | |
antimo8@alice.it | 5:ab0d54d9e071 | 87 | while(1) { |
antimo8@alice.it | 5:ab0d54d9e071 | 88 | msg = device.readSensorData(); |
antimo8@alice.it | 5:ab0d54d9e071 | 89 | |
antimo8@alice.it | 5:ab0d54d9e071 | 90 | if (msg == NULL) |
antimo8@alice.it | 5:ab0d54d9e071 | 91 | continue; |
antimo8@alice.it | 5:ab0d54d9e071 | 92 | |
antimo8@alice.it | 5:ab0d54d9e071 | 93 | touch(); |
antimo8@alice.it | 5:ab0d54d9e071 | 94 | |
antimo8@alice.it | 5:ab0d54d9e071 | 95 | gesture(); |
antimo8@alice.it | 5:ab0d54d9e071 | 96 | |
antimo8@alice.it | 5:ab0d54d9e071 | 97 | airWheel(); |
antimo8@alice.it | 5:ab0d54d9e071 | 98 | } |
antimo8@alice.it | 5:ab0d54d9e071 | 99 | } |
antimo8 | 0:553e72ae6d64 | 100 | |
antimo8@alice.it | 5:ab0d54d9e071 | 101 | |
antimo8@alice.it | 5:ab0d54d9e071 | 102 | // I2C i2c(PB_7,PA_15); |
antimo8@alice.it | 5:ab0d54d9e071 | 103 | |
antimo8@alice.it | 5:ab0d54d9e071 | 104 | // DigitalOut myled(LED1); |
antimo8 | 0:553e72ae6d64 | 105 | |
antimo8@alice.it | 5:ab0d54d9e071 | 106 | // Serial pc(SERIAL_TX, SERIAL_RX); |
antimo8@alice.it | 5:ab0d54d9e071 | 107 | |
antimo8@alice.it | 5:ab0d54d9e071 | 108 | |
antimo8@alice.it | 5:ab0d54d9e071 | 109 | // int main() |
antimo8@alice.it | 5:ab0d54d9e071 | 110 | // { |
antimo8 | 0:553e72ae6d64 | 111 | |
antimo8@alice.it | 5:ab0d54d9e071 | 112 | // char data_write[2]; |
antimo8@alice.it | 5:ab0d54d9e071 | 113 | // char data_read[2]; |
antimo8@alice.it | 5:ab0d54d9e071 | 114 | |
antimo8@alice.it | 5:ab0d54d9e071 | 115 | // while (1) { |
antimo8@alice.it | 5:ab0d54d9e071 | 116 | // //Read accelerometer register |
antimo8@alice.it | 5:ab0d54d9e071 | 117 | // data_write[0] = AG_WHO_AM_I; |
antimo8@alice.it | 5:ab0d54d9e071 | 118 | // i2c.write(0xd4, data_write, 1, 0 ); // no stop |
antimo8@alice.it | 5:ab0d54d9e071 | 119 | // i2c.read(0x6a, data_read, 2, 0); |
antimo8 | 0:553e72ae6d64 | 120 | |
antimo8@alice.it | 5:ab0d54d9e071 | 121 | // // Display result |
antimo8@alice.it | 5:ab0d54d9e071 | 122 | // pc.printf("data_read[0] = %x\n", data_read[0]); |
antimo8@alice.it | 5:ab0d54d9e071 | 123 | // pc.printf("data_read[1] = %x\n", data_read[1]); |
antimo8@alice.it | 5:ab0d54d9e071 | 124 | // myled = !myled; |
antimo8@alice.it | 5:ab0d54d9e071 | 125 | // wait(1); |
antimo8@alice.it | 3:9b3780a7d51e | 126 | |
antimo8@alice.it | 3:9b3780a7d51e | 127 | |
antimo8@alice.it | 3:9b3780a7d51e | 128 | |
antimo8@alice.it | 5:ab0d54d9e071 | 129 | // } |
antimo8@alice.it | 3:9b3780a7d51e | 130 | |
antimo8@alice.it | 5:ab0d54d9e071 | 131 | // } |
antimo8@alice.it | 3:9b3780a7d51e | 132 |