![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
debug
Dependencies: mbed mbed-rtos PinDetect X_NUCLEO_53L0A1
main.cpp
00001 #include "mbed.h" 00002 #include "XNucleo53L0A1.h" 00003 #include <stdio.h> 00004 #include "rtos.h" 00005 #include "LSM9DS1.h" 00006 00007 #define VL53L0_I2C_SDA p28 00008 #define VL53L0_I2C_SCL p27 00009 00010 00011 DigitalOut myled(LED1); 00012 00013 Serial pc(USBTX,USBRX); 00014 DigitalOut shdn(p26); 00015 00016 static XNucleo53L0A1 *board=NULL; 00017 00018 00019 int main() 00020 { 00021 float tempC; 00022 int status; 00023 uint32_t distance; 00024 uint32_t last_distance; 00025 DevI2C *device_i2c = new DevI2C(VL53L0_I2C_SDA, VL53L0_I2C_SCL); 00026 /* creates the 53L0A1 expansion board singleton obj */ 00027 board = XNucleo53L0A1::instance(device_i2c, A2, D8, D2); 00028 shdn = 0; //must reset sensor for an mbed reset to work 00029 wait(0.1); 00030 shdn = 1; 00031 wait(0.1); 00032 LSM9DS1 lol(p9, p10, 0xD6, 0x3C); 00033 lol.begin(); 00034 if (!lol.begin()) { 00035 pc.printf("Failed to communicate with LSM9DS1.\n"); 00036 } 00037 lol.calibrate(); 00038 /* init the 53L0A1 board with default values */ 00039 status = board->init_board(); 00040 00041 while (status) 00042 { 00043 pc.printf("Failed to init board! \r\n"); 00044 status = board->init_board(); 00045 } 00046 //loop taking and printing distance 00047 while (1) 00048 { 00049 00050 if (board->sensor_centre->get_distance(&distance) == VL53L0X_ERROR_NONE) 00051 { 00052 if(distance != last_distance) 00053 { 00054 pc.printf("D=%ld mm\r\n", distance); 00055 } 00056 board->sensor_centre->get_distance(&last_distance); 00057 } 00058 lol.readTemp(); 00059 lol.readMag(); 00060 lol.readGyro(); 00061 00062 //pc.printf("%d %d %d %d %d %d %d %d %d\n\r", lol.calcGyro(lol.gx), lol.calcGyro(lol.gy), lol.calcGyro(lol.gz), lol.ax, lol.ay, lol.az, lol.mx, lol.my, lol.mz); 00063 //pc.printf("%d %d %d\n\r", lol.calcGyro(lol.gx), lol.calcGyro(lol.gy), lol.calcGyro(lol.gz)); 00064 pc.printf("gyro: %d %d %d\n\r", lol.gx, lol.gy, lol.gz); 00065 pc.printf("accel: %d %d %d\n\r", lol.ax, lol.ay, lol.az); 00066 pc.printf("mag: %d %d %d\n\n\r", lol.mx, lol.my, lol.mz); 00067 myled = 1; 00068 wait(2); 00069 myled = 0; 00070 wait(2); 00071 // tempC = myTMP36; 00072 // pc.printf("Float operator overloading avoids .read(): T=%5.2F C \n\r", tempC); 00073 // pc.printf("A Printf arg needs a float type convert: T=%5.2F C \n\r", float(myTMP36)); 00074 // pc.printf("Or Use .read() instead: T=%5.2F C \n\r\n\r", myTMP36.read()); 00075 // wait(.5); 00076 00077 } 00078 00079 }
Generated on Sun Jul 24 2022 15:36:09 by
![doxygen](doxygen.png)