intiial commit
Dependencies: MAX8614X USBDevice max32630hsp_test
Diff: main.cpp
- Revision:
- 1:854f8a89a527
- Parent:
- 0:9e5a4f845510
- Child:
- 3:2272f89aad7e
diff -r 9e5a4f845510 -r 854f8a89a527 main.cpp
--- 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