debug

Dependencies:   mbed mbed-rtos PinDetect X_NUCLEO_53L0A1

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }