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.
Diff: VL53L1X.cpp
- Revision:
- 5:aa8cc9e87216
- Parent:
- 4:2c3181cc4e98
- Child:
- 6:621552ff1de9
diff -r 2c3181cc4e98 -r aa8cc9e87216 VL53L1X.cpp
--- a/VL53L1X.cpp Fri Jul 27 17:58:43 2018 +0000
+++ b/VL53L1X.cpp Fri Jul 27 18:43:58 2018 +0000
@@ -2,7 +2,7 @@
#include "mbed.h"
//Serial pc(USBTX,USBRX);
-DigitalOut led1(LED1);
+//DigitalOut led1(LED1);
uint8_t configBlock[] = {
0x29, 0x02, 0x10, 0x00, 0x28, 0xBC, 0x7A, 0x81, //8
@@ -30,20 +30,12 @@
_deviceAddress = defaultAddress_VL53L1X << 1;
}
-bool VL53L1X::begin()
-{
-// _deviceAddress = defaultAddress_VL53L1X; //If provided, store the I2C address from user
-
- //We expect caller to begin their I2C port, with the speed of their choice external to the library
- //But if they forget, we start the hardware here.
- //_i2c.begin();
-
+void VL53L1X::begin()
+{
//Check the device ID
uint16_t modelID = readRegister16(VL53L1_IDENTIFICATION__MODEL_ID);
- printf("%x \r\n", modelID);
if (modelID != 0xEACC){
- led1 = !led1;
- return (false);
+ return;// (false);
}
softReset();
@@ -55,7 +47,7 @@
{
Firmware = readRegister16(VL53L1_FIRMWARE__SYSTEM_STATUS);
printf("Firmware = %x\r\n", Firmware);
- if (counter++ == 100) return (false); //Sensor timed out
+ if (counter++ == 100) return; //(false); //Sensor timed out
wait(.1);
}
@@ -67,13 +59,13 @@
//Gets trim resistors from chip
for (uint16_t i = 0; i < 36; i++) {
uint8_t regVal = readRegister(i + 1);
- // if(configBlock[i] != regVal) printf("thanks for letting me know, %d, %x\r\n", i, regVal);
configBlock[i] = regVal;
}
- printf("after being told\r\n");
+
startMeasurement();
- // printf("after started \r\n");
- return (true); //Sensor online!
+ printf("It Blinks!!! \r\n");
+// return (true); //Sensor online!
+
}
@@ -85,29 +77,17 @@
uint8_t leftToSend = sizeof(configBlock) - offset;
while (leftToSend > 0)
{
-// printf("leftToSend = %d \r\n", leftToSend);
data_write[0] = 0; //MSB of register address
data_write[1] = address; //LSB of register address
- // _i2c.write(_deviceAddress, data_write, 2);
uint8_t toSend = 30; //Max I2C buffer on Arduino is 32, and we need 2 bytes for address
if (toSend > leftToSend) toSend = leftToSend;
for(int x = 0; x < toSend; x++)
+ {
data_write[x+2] = configBlock[x+address-1];
-
+ }
_i2c.write(_deviceAddress, data_write, toSend+2);
-// for(int x = 0; x < toSend+2; x++)
-// printf("%x \t", data_write[x]);
- //Wire.beginTransmission(deviceAddress);
-
- // _i2c.write(0); //We're only in lower address space. No MSB needed.
-// printf("not here\r\n");
- // _i2c.write(address);
-// for (int x = 0 ; x < leftToSend ; x++)
-
-
- // Wire.endTransmission();
leftToSend -= toSend;
address += toSend;
@@ -117,7 +97,6 @@
bool VL53L1X::newDataReady(void)
{
int read = readRegister(VL53L1_GPIO__TIO_HV_STATUS);
- printf("read register %x \r\n", read);
if (read != 0x03) return(true); //New measurement!
return(false); //No new data
@@ -241,7 +220,6 @@
//Read status
uint8_t measurementStatus = (readRegister(VL53L1_RESULT__RANGE_STATUS) & 0x1F);
- //printf("measurement status %d\r\n", measurementStatus);
//Convert status from one to another - From vl53l1_api.c
switch (measurementStatus) {
case VL53L1_DEVICEERROR_GPHSTREAMCOUNT0READY: