text export
Dependencies: X_NUCLEO_IKS01A3
Diff: main.cpp
- Revision:
- 5:7c883cce2bc4
- Parent:
- 3:9f8fadc965fc
- Child:
- 6:94151942f287
--- a/main.cpp Mon Jun 03 09:58:27 2019 +0000 +++ b/main.cpp Wed Jul 24 14:22:13 2019 +0000 @@ -4,7 +4,7 @@ * @author SRA * @version V1.0.0 * @date 5-March-2019 - * @brief Simple Example application for using the X_NUCLEO_IKS01A3 + * @brief Simple Example application for using the X_NUCLEO_IKS01A3 * MEMS Inertial & Environmental Sensor Nucleo expansion board. ****************************************************************************** * @attention @@ -34,7 +34,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ****************************************************************************** -*/ +*/ /* Includes */ #include "mbed.h" @@ -52,100 +52,101 @@ static STTS751Sensor *temp = mems_expansion_board->t_sensor; /* Helper function for printing floats & doubles */ -static char *print_double(char* str, double v, int decimalDigits=2) +static char *print_double(char *str, double v, int decimalDigits = 2) { - int i = 1; - int intPart, fractPart; - int len; - char *ptr; + int i = 1; + int intPart, fractPart; + int len; + char *ptr; - /* prepare decimal digits multiplicator */ - for (;decimalDigits!=0; i*=10, decimalDigits--); + /* prepare decimal digits multiplicator */ + for (; decimalDigits != 0; i *= 10, decimalDigits--); - /* calculate integer & fractinal parts */ - intPart = (int)v; - fractPart = (int)((v-(double)(int)v)*i); + /* calculate integer & fractinal parts */ + intPart = (int)v; + fractPart = (int)((v - (double)(int)v) * i); - /* fill in integer part */ - sprintf(str, "%i.", intPart); + /* fill in integer part */ + sprintf(str, "%i.", intPart); - /* prepare fill in of fractional part */ - len = strlen(str); - ptr = &str[len]; + /* prepare fill in of fractional part */ + len = strlen(str); + ptr = &str[len]; - /* fill in leading fractional zeros */ - for (i/=10;i>1; i/=10, ptr++) { - if (fractPart >= i) { - break; + /* fill in leading fractional zeros */ + for (i /= 10; i > 1; i /= 10, ptr++) { + if (fractPart >= i) { + break; + } + *ptr = '0'; } - *ptr = '0'; - } - /* fill in (rest of) fractional part */ - sprintf(ptr, "%i", fractPart); + /* fill in (rest of) fractional part */ + sprintf(ptr, "%i", fractPart); - return str; + return str; } /* Simple main function */ -int main() { - uint8_t id; - float value1, value2; - char buffer1[32], buffer2[32]; - int32_t axes[3]; - - /* Enable all sensors */ - hum_temp->enable(); - press_temp->enable(); - temp->enable(); - magnetometer->enable(); - accelerometer->enable_x(); - acc_gyro->enable_x(); - acc_gyro->enable_g(); - - printf("\r\n--- Starting new run ---\r\n"); +int main() +{ + uint8_t id; + float value1, value2; + char buffer1[32], buffer2[32]; + int32_t axes[3]; + + /* Enable all sensors */ + hum_temp->enable(); + press_temp->enable(); + temp->enable(); + magnetometer->enable(); + accelerometer->enable_x(); + acc_gyro->enable_x(); + acc_gyro->enable_g(); + + printf("\r\n--- Starting new run ---\r\n"); + + hum_temp->read_id(&id); + printf("HTS221 humidity & temperature = 0x%X\r\n", id); + press_temp->read_id(&id); + printf("LPS22HH pressure & temperature = 0x%X\r\n", id); + temp->read_id(&id); + printf("STTS751 temperature = 0x%X\r\n", id); + magnetometer->read_id(&id); + printf("LIS2MDL magnetometer = 0x%X\r\n", id); + accelerometer->read_id(&id); + printf("LIS2DW12 accelerometer = 0x%X\r\n", id); + acc_gyro->read_id(&id); + printf("LSM6DSO accelerometer & gyroscope = 0x%X\r\n", id); - hum_temp->read_id(&id); - printf("HTS221 humidity & temperature = 0x%X\r\n", id); - press_temp->read_id(&id); - printf("LPS22HH pressure & temperature = 0x%X\r\n", id); - temp->read_id(&id); - printf("STTS751 temperature = 0x%X\r\n", id); - magnetometer->read_id(&id); - printf("LIS2MDL magnetometer = 0x%X\r\n", id); - accelerometer->read_id(&id); - printf("LIS2DW12 accelerometer = 0x%X\r\n", id); - acc_gyro->read_id(&id); - printf("LSM6DSO accelerometer & gyroscope = 0x%X\r\n", id); - - while(1) { - printf("\r\n"); + while (1) { + printf("\r\n"); + + hum_temp->get_temperature(&value1); + hum_temp->get_humidity(&value2); + printf("HTS221: [temp] %7s C, [hum] %s%%\r\n", print_double(buffer1, value1), print_double(buffer2, value2)); + + press_temp->get_temperature(&value1); + press_temp->get_pressure(&value2); + printf("LPS22HH: [temp] %7s C, [press] %s mbar\r\n", print_double(buffer1, value1), print_double(buffer2, value2)); + + temp->get_temperature(&value1); + printf("STTS751: [temp] %7s C\r\n", print_double(buffer1, value1)); + + printf("---\r\n"); - hum_temp->get_temperature(&value1); - hum_temp->get_humidity(&value2); - printf("HTS221: [temp] %7s C, [hum] %s%%\r\n", print_double(buffer1, value1), print_double(buffer2, value2)); - - press_temp->get_temperature(&value1); - press_temp->get_pressure(&value2); - printf("LPS22HH: [temp] %7s C, [press] %s mbar\r\n", print_double(buffer1, value1), print_double(buffer2, value2)); + magnetometer->get_m_axes(axes); + printf("LIS2MDL [mag/mgauss]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - temp->get_temperature(&value1); - printf("STTS751: [temp] %7s C\r\n", print_double(buffer1, value1)); - - printf("---\r\n"); + accelerometer->get_x_axes(axes); + printf("LIS2DW12 [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - magnetometer->get_m_axes(axes); - printf("LIS2MDL [mag/mgauss]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - - accelerometer->get_x_axes(axes); - printf("LIS2DW12 [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); + acc_gyro->get_x_axes(axes); + printf("LSM6DSO [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - acc_gyro->get_x_axes(axes); - printf("LSM6DSO [acc/mg]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); + acc_gyro->get_g_axes(axes); + printf("LSM6DSO [gyro/mdps]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - acc_gyro->get_g_axes(axes); - printf("LSM6DSO [gyro/mdps]: %6d, %6d, %6d\r\n", axes[0], axes[1], axes[2]); - - wait(1.5); - } + wait(1.5); + } }