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: X_NUCLEO_53L1A2
Diff: main.cpp
- Revision:
- 2:f0ec92af4b5f
- Parent:
- 1:ff48a20de191
- Child:
- 3:c1e893e6752f
diff -r ff48a20de191 -r f0ec92af4b5f main.cpp
--- a/main.cpp Mon Nov 09 17:36:20 2020 +0000
+++ b/main.cpp Fri May 07 14:15:27 2021 +0000
@@ -1,21 +1,27 @@
/*
- * This VL53L1X Expansion board test application performs range measurements
- * using the onboard embedded centre sensor and two satelites, in autonomous, interrupt mode.
- * Measured ranges are ouput on the Serial Port, running at 115200 baud.
+ * This VL53L1X Expansion board test application performs range measurements
+ * using the onboard embedded centre sensor and two satelites, in autonomous, interrupt mode.
+ * Measured ranges are ouput on the Serial Port, running at 115200 baud.
*
-*
* This is designed to work with MBed V2 , MBed V5 and MBed V6.
*
+ * The Reset button can be used to restart the program.
*
- * The Reset button can be used to restart the program.
+ * *** Note :
+ * Default Mbed build system settings disable print floating-point support.
+ * Offline builds can enable this, again.
+ * https://github.com/ARMmbed/mbed-os/blob/master/platform/source/minimal-printf/README.md
+ * .\mbed-os\platform\mbed_lib.json
+ *
*/
#include <stdio.h>
+#include <time.h>
#include "mbed.h"
+
#include "XNucleo53L1A2.h"
#include "ToF_I2C.h"
-#include <time.h>
// i2c comms port pins
#define I2C_SDA D14
@@ -39,12 +45,11 @@
static XNucleo53L1A2 *board=NULL;
-// MBed V6.4 has renamed wait_ms and UnbufferedSerial replaces Serial
#if (MBED_VERSION > 60300)
-UnbufferedSerial pc(SERIAL_TX, SERIAL_RX);
-extern "C" void wait_ms(int ms);
+ UnbufferedSerial pc(USBTX, USBRX);
+ extern "C" void wait_ms(int ms);
#else
-Serial pc(SERIAL_TX, SERIAL_RX);
+ Serial pc(SERIAL_TX, SERIAL_RX);
#endif
// flags to indicate an interrupt has happened
@@ -57,7 +62,7 @@
static int int_left_dropped = 0;
static int int_right_dropped = 0;
-void print_results( int devSpiNumber, VL53L1_MultiRangingData_t *pMultiRangingData );
+void print_results( int devNumber, VL53L1_MultiRangingData_t *pMultiRangingData );
class WaitForMeasurement {
public:
@@ -78,7 +83,7 @@
Devlocal = Dev;
pinlocal = pin;
- #include "mbed.h"
+// #include "mbed.h"
_interrupt.rise(callback(this, &WaitForMeasurement::got_interrupt)); // if interrupt happens read data
@@ -328,37 +333,27 @@
// print what ever results are required
-void print_results( int devSpiNumber, VL53L1_MultiRangingData_t *pMultiRangingData )
+void print_results( int devNumber, VL53L1_MultiRangingData_t *pMultiRangingData )
{
- int no_of_object_found=pMultiRangingData->NumberOfObjectsFound;
+ int no_of_object_found=pMultiRangingData->NumberOfObjectsFound;
- int RoiNumber=pMultiRangingData->RoiNumber;
- // int RoiStatus=pMultiRangingData->RoiStatus;
+ int RoiNumber=pMultiRangingData->RoiNumber;
- if (( no_of_object_found < 10 ) && ( no_of_object_found != 0))
+ if (( no_of_object_found < 10 ) && ( no_of_object_found != 0))
+ {
+ for(int j=0;j<no_of_object_found;j++){
+ if ((pMultiRangingData->RangeData[j].RangeStatus == VL53L1_RANGESTATUS_RANGE_VALID) ||
+ (pMultiRangingData->RangeData[j].RangeStatus == VL53L1_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK_FAIL))
{
- for(int j=0;j<no_of_object_found;j++){
- if ((pMultiRangingData->RangeData[j].RangeStatus == VL53L1_RANGESTATUS_RANGE_VALID) ||
- (pMultiRangingData->RangeData[j].RangeStatus == VL53L1_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK_FAIL))
- {
- printf("\t spiAddr=%d \t RoiNumber=%d \t D=%5dmm \n",
- devSpiNumber,
- RoiNumber,
- pMultiRangingData->RangeData[j].RangeMilliMeter);
- /*
- printf("\t spiAddr=%d \t RoiNumber=%d \t status=%d, \t D=%5dmm, \t Signal=%2.2f Mcps, \t Ambient=%2.2f Mcps \n",
- devSpiNumber,
- RoiNumber,
- pMultiRangingData->RangeData[j].RangeStatus,
- pMultiRangingData->RangeData[j].RangeMilliMeter,
- pMultiRangingData->RangeData[j].SignalRateRtnMegaCps/65536.0,
- pMultiRangingData->RangeData[j].AmbientRateRtnMegaCps/65536.0);
- */
- }
-
- }
- } // if (( no_of_object_found < 10 ) && ( no_of_object_found != 0))
-
+ printf("\t i2cAddr=%d \t RoiNumber=%d \t status=%d, \t D=%5dmm, \t Signal=%2.2f Mcps, \t Ambient=%2.2f Mcps \n",
+ devNumber, RoiNumber,
+ pMultiRangingData->RangeData[j].RangeStatus,
+ pMultiRangingData->RangeData[j].RangeMilliMeter,
+ pMultiRangingData->RangeData[j].SignalRateRtnMegaCps / 65535.0,
+ pMultiRangingData->RangeData[j].AmbientRateRtnMegaCps / 65535.0);
+ }
+ }
+ } // if (( no_of_object_found < 10 ) && ( no_of_object_found != 0))
}