test program for my BMI160 lib
Dependencies: BMI160 USBDevice max32630fthr
main.cpp@1:ef5ae19da855, 2017-09-12 (annotated)
- Committer:
- Rhyme
- Date:
- Tue Sep 12 01:17:23 2017 +0000
- Revision:
- 1:ef5ae19da855
- Parent:
- 0:14b2c90f8c6a
commit before publishing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Rhyme | 0:14b2c90f8c6a | 1 | #include "mbed.h" |
Rhyme | 0:14b2c90f8c6a | 2 | #include "max32630fthr.h" |
Rhyme | 0:14b2c90f8c6a | 3 | #include "USBSerial.h" |
Rhyme | 0:14b2c90f8c6a | 4 | #include "BMI160.h" |
Rhyme | 0:14b2c90f8c6a | 5 | |
Rhyme | 0:14b2c90f8c6a | 6 | MAX32630FTHR *sakura = 0 ; |
Rhyme | 0:14b2c90f8c6a | 7 | USBSerial *microUSB ; |
Rhyme | 0:14b2c90f8c6a | 8 | BMI160 *bmi160 = 0 ; |
Rhyme | 0:14b2c90f8c6a | 9 | Serial *daplink = 0 ; |
Rhyme | 0:14b2c90f8c6a | 10 | DigitalOut *LED_R = 0 ; |
Rhyme | 0:14b2c90f8c6a | 11 | DigitalOut *LED_G = 0 ; |
Rhyme | 0:14b2c90f8c6a | 12 | DigitalOut *LED_B = 0 ; |
Rhyme | 0:14b2c90f8c6a | 13 | |
Rhyme | 0:14b2c90f8c6a | 14 | #define PIN_RX2 P2_0 |
Rhyme | 0:14b2c90f8c6a | 15 | #define PIN_TX2 P2_1 |
Rhyme | 0:14b2c90f8c6a | 16 | #define PIN_SDA2 P5_7 |
Rhyme | 0:14b2c90f8c6a | 17 | #define PIN_SCL2 P6_0 |
Rhyme | 0:14b2c90f8c6a | 18 | #define PIN_LED_R P2_4 |
Rhyme | 0:14b2c90f8c6a | 19 | #define PIN_LED_G P2_5 |
Rhyme | 0:14b2c90f8c6a | 20 | #define PIN_LED_B P2_6 |
Rhyme | 0:14b2c90f8c6a | 21 | #define BMI160_I2C_ADDRESS 0x68 |
Rhyme | 0:14b2c90f8c6a | 22 | |
Rhyme | 0:14b2c90f8c6a | 23 | void init_hardware(void) |
Rhyme | 0:14b2c90f8c6a | 24 | { |
Rhyme | 0:14b2c90f8c6a | 25 | sakura = new MAX32630FTHR(MAX32630FTHR::VIO_3V3); |
Rhyme | 0:14b2c90f8c6a | 26 | daplink = new Serial(PIN_TX2, PIN_RX2, "daplink") ; |
Rhyme | 0:14b2c90f8c6a | 27 | |
Rhyme | 0:14b2c90f8c6a | 28 | bmi160 = new BMI160(PIN_SDA2, PIN_SCL2, BMI160_I2C_ADDRESS) ; |
Rhyme | 0:14b2c90f8c6a | 29 | LED_R = new DigitalOut(PIN_LED_R, 1) ; |
Rhyme | 0:14b2c90f8c6a | 30 | LED_G = new DigitalOut(PIN_LED_G, 1) ; |
Rhyme | 0:14b2c90f8c6a | 31 | LED_B = new DigitalOut(PIN_LED_B, 1) ; |
Rhyme | 0:14b2c90f8c6a | 32 | |
Rhyme | 0:14b2c90f8c6a | 33 | *LED_R = LED_OFF ; |
Rhyme | 0:14b2c90f8c6a | 34 | *LED_G = LED_ON ; |
Rhyme | 0:14b2c90f8c6a | 35 | *LED_B = LED_OFF ; |
Rhyme | 0:14b2c90f8c6a | 36 | |
Rhyme | 0:14b2c90f8c6a | 37 | // acc_set_pmu_mode 0x10 | ACC_PMU_XXX |
Rhyme | 0:14b2c90f8c6a | 38 | bmi160->setCMD(0x10 | ACC_PMU_NORMAL) ; |
Rhyme | 0:14b2c90f8c6a | 39 | wait(0.1) ; |
Rhyme | 0:14b2c90f8c6a | 40 | bmi160->setCMD(0x14 | GYR_PMU_NORMAL) ; |
Rhyme | 0:14b2c90f8c6a | 41 | wait(0.1) ; |
Rhyme | 0:14b2c90f8c6a | 42 | bmi160->setCMD(0x08 | MAG_PMU_SUSPEND) ; |
Rhyme | 0:14b2c90f8c6a | 43 | wait(0.1) ; |
Rhyme | 0:14b2c90f8c6a | 44 | bmi160->setCMD(0x03) ; /* start_foc */ |
Rhyme | 0:14b2c90f8c6a | 45 | wait(0.1) ; |
Rhyme | 0:14b2c90f8c6a | 46 | |
Rhyme | 0:14b2c90f8c6a | 47 | } |
Rhyme | 0:14b2c90f8c6a | 48 | |
Rhyme | 0:14b2c90f8c6a | 49 | int main() |
Rhyme | 0:14b2c90f8c6a | 50 | { |
Rhyme | 0:14b2c90f8c6a | 51 | int id = 0 ; |
Rhyme | 0:14b2c90f8c6a | 52 | float a[3], g[3] ; |
Rhyme | 0:14b2c90f8c6a | 53 | int acc_range, gyr_range, status ; |
Rhyme | 0:14b2c90f8c6a | 54 | |
Rhyme | 0:14b2c90f8c6a | 55 | init_hardware() ; |
Rhyme | 0:14b2c90f8c6a | 56 | |
Rhyme | 0:14b2c90f8c6a | 57 | printf("Hello World\n") ; |
Rhyme | 0:14b2c90f8c6a | 58 | |
Rhyme | 0:14b2c90f8c6a | 59 | id = bmi160->getChipID() ; |
Rhyme | 0:14b2c90f8c6a | 60 | printf("BMI160 ID = 0x%02X\n", id) ; |
Rhyme | 0:14b2c90f8c6a | 61 | acc_range = bmi160->getAccRange() ; |
Rhyme | 0:14b2c90f8c6a | 62 | gyr_range = bmi160->getGyrRange() ; |
Rhyme | 0:14b2c90f8c6a | 63 | printf("Acc range = +/- %d g, Gyr range = %d degree/sec\n", acc_range, gyr_range) ; |
Rhyme | 0:14b2c90f8c6a | 64 | |
Rhyme | 0:14b2c90f8c6a | 65 | while(1) { |
Rhyme | 0:14b2c90f8c6a | 66 | status = bmi160->getStatus() ; |
Rhyme | 0:14b2c90f8c6a | 67 | |
Rhyme | 0:14b2c90f8c6a | 68 | bmi160->getAcc(a) ; |
Rhyme | 0:14b2c90f8c6a | 69 | |
Rhyme | 0:14b2c90f8c6a | 70 | bmi160->getGyr(g) ; |
Rhyme | 0:14b2c90f8c6a | 71 | |
Rhyme | 0:14b2c90f8c6a | 72 | printf("ACC: %.2f, %.2f, %.2f ", a[0], a[1], a[2]) ; |
Rhyme | 0:14b2c90f8c6a | 73 | printf("GYR: %.2f, %.2f, %.2f\n", g[0], g[1], g[2]) ; |
Rhyme | 0:14b2c90f8c6a | 74 | wait(0.1) ; |
Rhyme | 0:14b2c90f8c6a | 75 | } |
Rhyme | 0:14b2c90f8c6a | 76 | } |
Rhyme | 0:14b2c90f8c6a | 77 |