test program for my BMI160 lib
Dependencies: BMI160 USBDevice max32630fthr
main.cpp
00001 #include "mbed.h" 00002 #include "max32630fthr.h" 00003 #include "USBSerial.h" 00004 #include "BMI160.h" 00005 00006 MAX32630FTHR *sakura = 0 ; 00007 USBSerial *microUSB ; 00008 BMI160 *bmi160 = 0 ; 00009 Serial *daplink = 0 ; 00010 DigitalOut *LED_R = 0 ; 00011 DigitalOut *LED_G = 0 ; 00012 DigitalOut *LED_B = 0 ; 00013 00014 #define PIN_RX2 P2_0 00015 #define PIN_TX2 P2_1 00016 #define PIN_SDA2 P5_7 00017 #define PIN_SCL2 P6_0 00018 #define PIN_LED_R P2_4 00019 #define PIN_LED_G P2_5 00020 #define PIN_LED_B P2_6 00021 #define BMI160_I2C_ADDRESS 0x68 00022 00023 void init_hardware(void) 00024 { 00025 sakura = new MAX32630FTHR(MAX32630FTHR::VIO_3V3); 00026 daplink = new Serial(PIN_TX2, PIN_RX2, "daplink") ; 00027 00028 bmi160 = new BMI160(PIN_SDA2, PIN_SCL2, BMI160_I2C_ADDRESS) ; 00029 LED_R = new DigitalOut(PIN_LED_R, 1) ; 00030 LED_G = new DigitalOut(PIN_LED_G, 1) ; 00031 LED_B = new DigitalOut(PIN_LED_B, 1) ; 00032 00033 *LED_R = LED_OFF ; 00034 *LED_G = LED_ON ; 00035 *LED_B = LED_OFF ; 00036 00037 // acc_set_pmu_mode 0x10 | ACC_PMU_XXX 00038 bmi160->setCMD(0x10 | ACC_PMU_NORMAL) ; 00039 wait(0.1) ; 00040 bmi160->setCMD(0x14 | GYR_PMU_NORMAL) ; 00041 wait(0.1) ; 00042 bmi160->setCMD(0x08 | MAG_PMU_SUSPEND) ; 00043 wait(0.1) ; 00044 bmi160->setCMD(0x03) ; /* start_foc */ 00045 wait(0.1) ; 00046 00047 } 00048 00049 int main() 00050 { 00051 int id = 0 ; 00052 float a[3], g[3] ; 00053 int acc_range, gyr_range, status ; 00054 00055 init_hardware() ; 00056 00057 printf("Hello World\n") ; 00058 00059 id = bmi160->getChipID() ; 00060 printf("BMI160 ID = 0x%02X\n", id) ; 00061 acc_range = bmi160->getAccRange() ; 00062 gyr_range = bmi160->getGyrRange() ; 00063 printf("Acc range = +/- %d g, Gyr range = %d degree/sec\n", acc_range, gyr_range) ; 00064 00065 while(1) { 00066 status = bmi160->getStatus() ; 00067 00068 bmi160->getAcc(a) ; 00069 00070 bmi160->getGyr(g) ; 00071 00072 printf("ACC: %.2f, %.2f, %.2f ", a[0], a[1], a[2]) ; 00073 printf("GYR: %.2f, %.2f, %.2f\n", g[0], g[1], g[2]) ; 00074 wait(0.1) ; 00075 } 00076 } 00077
Generated on Sun Jul 17 2022 11:19:43 by 1.7.2