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: MAX8614X USBDevice max32630hsp_test
Diff: main.cpp
- Revision:
- 1:854f8a89a527
- Parent:
- 0:9e5a4f845510
- Child:
- 3:2272f89aad7e
--- a/main.cpp Fri Aug 10 23:23:21 2018 +0000 +++ b/main.cpp Fri Aug 10 23:50:13 2018 +0000 @@ -1,5 +1,5 @@ /********************************************************************** -* Copyright (C) 2016 Maxim Integrated Products, Inc., All Rights Reserved. +* Copyright (C) 2018 Maxim Integrated Products, Inc., All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -34,13 +34,9 @@ #include "mbed.h" //#include "max32630fthr.h" #include "max32630hsp.h" -#include "bmi160.h" #include "MAX8614X.h" #include "USBSerial.h" -void dumpImuRegisters(BMI160 &imu); -void printRegister(BMI160 &imu, BMI160::Registers reg); -void printBlock(BMI160 &imu, BMI160::Registers startReg, BMI160::Registers stopReg); MAX32630HSP icarus(MAX32630HSP::VIO_1V8); // MAX32630FTHR mbed_board(MAX32630FTHR::VIO_1V8); SPI spi(P5_1, P5_2, P5_0); /* mosi, miso, sclk */ @@ -65,191 +61,17 @@ rLED = LED_OFF; - printf("max86140\n\r"); - wait(3.0); - printf("max86140\n\r"); + printf("\r\n\rmax86140 authenication software\r\n"); MAX8614X m(spi,cs,interrupt_pin); -wait(1.0); -wait(1.0); m.readRegister(0xff, data, 1); - printf("device id should be 0x24, read val = %x\n\r", data[0]); - m.readRegister(0x01, data, 1); - printf("read val = %x\n\r", data[0]); + printf("device id should be 0x24, read val = %x\r\n", data[0]); while(1) { // c = microUSB.getc(); // microUSB.putc(c); // daplink.putc(c); - bLED = !bLED; + gLED = !gLED; wait(1.0); } } - -#if 0 - MAX32630FTHR pegasus(MAX32630FTHR::VIO_3V3); - - DigitalOut rLED(LED1, LED_OFF); - DigitalOut gLED(LED2, LED_OFF); - DigitalOut bLED(LED3, LED_OFF); - - I2C i2cBus(P5_7, P6_0); - i2cBus.frequency(400000); - BMI160_I2C imu(i2cBus, BMI160_I2C::I2C_ADRS_SDO_LO); - - printf("\033[H"); //home - printf("\033[0J"); //erase from cursor to end of screen - - uint32_t failures = 0; - - if(imu.setSensorPowerMode(BMI160::GYRO, BMI160::NORMAL) != BMI160::RTN_NO_ERROR) - { - printf("Failed to set gyroscope power mode\n"); - failures++; - } - wait_ms(100); - - if(imu.setSensorPowerMode(BMI160::ACC, BMI160::NORMAL) != BMI160::RTN_NO_ERROR) - { - printf("Failed to set accelerometer power mode\n"); - failures++; - } - wait_ms(100); - - - BMI160::AccConfig accConfig; - //example of using getSensorConfig - if(imu.getSensorConfig(accConfig) == BMI160::RTN_NO_ERROR) - { - printf("ACC Range = %d\n", accConfig.range); - printf("ACC UnderSampling = %d\n", accConfig.us); - printf("ACC BandWidthParam = %d\n", accConfig.bwp); - printf("ACC OutputDataRate = %d\n\n", accConfig.odr); - } - else - { - printf("Failed to get accelerometer configuration\n"); - failures++; - } - - //example of setting user defined configuration - accConfig.range = BMI160::SENS_4G; - accConfig.us = BMI160::ACC_US_OFF; - accConfig.bwp = BMI160::ACC_BWP_2; - accConfig.odr = BMI160::ACC_ODR_8; - if(imu.setSensorConfig(accConfig) == BMI160::RTN_NO_ERROR) - { - printf("ACC Range = %d\n", accConfig.range); - printf("ACC UnderSampling = %d\n", accConfig.us); - printf("ACC BandWidthParam = %d\n", accConfig.bwp); - printf("ACC OutputDataRate = %d\n\n", accConfig.odr); - } - else - { - printf("Failed to set accelerometer configuration\n"); - failures++; - } - - BMI160::GyroConfig gyroConfig; - if(imu.getSensorConfig(gyroConfig) == BMI160::RTN_NO_ERROR) - { - printf("GYRO Range = %d\n", gyroConfig.range); - printf("GYRO BandWidthParam = %d\n", gyroConfig.bwp); - printf("GYRO OutputDataRate = %d\n\n", gyroConfig.odr); - } - else - { - printf("Failed to get gyroscope configuration\n"); - failures++; - } - - wait(1.0); - printf("\033[H"); //home - printf("\033[0J"); //erase from cursor to end of screen - - if(failures == 0) - { - float imuTemperature; - BMI160::SensorData accData; - BMI160::SensorData gyroData; - BMI160::SensorTime sensorTime; - - while(1) - { - imu.getGyroAccXYZandSensorTime(accData, gyroData, sensorTime, accConfig.range, gyroConfig.range); - imu.getTemperature(&imuTemperature); - - printf("ACC xAxis = %s%4.3f\n", "\033[K", accData.xAxis.scaled); - printf("ACC yAxis = %s%4.3f\n", "\033[K", accData.yAxis.scaled); - printf("ACC zAxis = %s%4.3f\n\n", "\033[K", accData.zAxis.scaled); - - printf("GYRO xAxis = %s%5.1f\n", "\033[K", gyroData.xAxis.scaled); - printf("GYRO yAxis = %s%5.1f\n", "\033[K", gyroData.yAxis.scaled); - printf("GYRO zAxis = %s%5.1f\n\n", "\033[K", gyroData.zAxis.scaled); - - printf("Sensor Time = %s%f\n", "\033[K", sensorTime.seconds); - printf("Sensor Temperature = %s%5.3f\n", "\033[K", imuTemperature); - - printf("\033[H"); //home - gLED = !gLED; - } - } - else - { - while(1) - { - rLED = !rLED; - wait(0.25); - } - } -} - - -//***************************************************************************** -void dumpImuRegisters(BMI160 &imu) -{ - printRegister(imu, BMI160::CHIP_ID); - printBlock(imu, BMI160::ERR_REG,BMI160::FIFO_DATA); - printBlock(imu, BMI160::ACC_CONF, BMI160::FIFO_CONFIG_1); - printBlock(imu, BMI160::MAG_IF_0, BMI160::SELF_TEST); - printBlock(imu, BMI160::NV_CONF, BMI160::STEP_CONF_1); - printRegister(imu, BMI160::CMD); - printf("\n"); -} - - -//***************************************************************************** -void printRegister(BMI160 &imu, BMI160::Registers reg) -{ - uint8_t data; - if(imu.readRegister(reg, &data) == BMI160::RTN_NO_ERROR) - { - printf("IMU Register 0x%02x = 0x%02x\n", reg, data); - } - else - { - printf("Failed to read register\n"); - } -} - - -//***************************************************************************** -void printBlock(BMI160 &imu, BMI160::Registers startReg, BMI160::Registers stopReg) -{ - uint8_t numBytes = ((stopReg - startReg) + 1); - uint8_t buff[numBytes]; - uint8_t offset = static_cast<uint8_t>(startReg); - - if(imu.readBlock(startReg, stopReg, buff) == BMI160::RTN_NO_ERROR) - { - for(uint8_t idx = offset; idx < (numBytes + offset); idx++) - { - printf("IMU Register 0x%02x = 0x%02x\n", idx, buff[idx - offset]); - } - } - else - { - printf("Failed to read block\n"); - } -} -#endif