test program for my BMI160 lib

Dependencies:   BMI160 USBDevice max32630fthr

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?

UserRevisionLine numberNew 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