Revision bf8ca9aa unittests/periphery-lld/src/ut_alld_VL53L0X_v1.c

View differences:

unittests/periphery-lld/src/ut_alld_VL53L0X_v1.c
98 98
  //validate I2C bus on 0xC0 0xEE
99 99
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0xc0, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
100 100
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0xEE) {
101
    aosUtPassed(stream, &result);
102
  } else {
103
    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
104
  }
105 101

  
102
      //validate I2C bus on 0xC1 0xAA
103
      status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0xc1, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
104
      if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0xAA) {
105

  
106
          //validate I2C bus on 0xC2 0x10
107
          status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0xc2, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
108
          if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x10) {
109

  
110
              //validate I2C bus on  0x51 0x0099
111
              status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0x51, &reg_8[0], 2, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
112
              if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x00 && reg_8[1]==0x99) {
113
                  //validate I2C bus on  0x61 0x0000
114
                  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0x61, &reg_8[0], 2, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
115
                  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x00 && reg_8[1]==0x00) {
116
                    aosUtPassed(stream, &result);
117
                  } else {
118
                    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
119
                  }
120
              } else {
121
                aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
122
              }
123

  
124
          } else {
125
            aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
126
          }
127

  
128
      } else {
129
        aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
130
      }
106 131

  
107
  //validate I2C bus on 0xC1 0xAA
108
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0xc1, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
109
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0xAA) {
110
    aosUtPassed(stream, &result);
111 132
  } else {
112 133
    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
113 134
  }
114 135

  
115
  //validate I2C bus on 0xC2 0x10
116
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0xc2, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
117
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x10) {
118
    aosUtPassed(stream, &result);
119
  } else {
120
    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
121
  }
122 136

  
123
  //validate I2C bus on  0x51 0x0099
124
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0x51, &reg_8[0], 2, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
125
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x00 && reg_8[1]==0x99) {
126
    aosUtPassed(stream, &result);
127
  } else {
128
    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
129
  }
130 137

  
131
  //validate I2C bus on  0x61 0x0000
132
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0x61, &reg_8[0], 2, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
133
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && reg_8[0]==0x00 && reg_8[1]==0x00) {
134
    aosUtPassed(stream, &result);
135
  } else {
136
    aosUtFailedMsg(stream, &result, "0x%08X; 0x%08X\n", status, reg_8[0]);
137
  }
138

  
139

  
140

  
141

  
142

  
143

  
138 144

  
139 145

  
140 146

  
......
151 157
  }
152 158

  
153 159

  
154
  chprintf(stream, "writing register...\n");
160
  chprintf(stream, "writing register (Byte)...\n");
155 161

  
156 162
  //VL53L0X_WrByte(Dev, 0x88, 0x00);
157 163
  uint8_t tx_buf = 0x00;
......
167 173
  }
168 174

  
169 175

  
176
  chprintf(stream, "writing register (multi)...\n");
170 177

  
171 178
  //read register 0x88
172 179
  status = VL53L0X_read_multi((((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.i2cd, (apalI2Caddr_t)(((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.I2cDevAddr , 0x88, &reg_8[0], 1, (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.timeout );
......
209 216
  chprintf(stream, "reading results...\n");
210 217

  
211 218
  status = vl53l0x_lld_perform_mesaurement(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &reg_16[0]);
212
  chprintf(stream, "\t\tdistance : %u\n", reg_16[0]);
219
  chprintf(stream, "\t\tdistance : %u mm\n", reg_16[0]);
213 220
  int i = 0;
214 221
  for (i = 0; i<4; i++){
215 222
      status |= vl53l0x_lld_perform_mesaurement(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &reg_16[0]);
216 223

  
217
      chprintf(stream, "\t\tdistance : %u\n", reg_16[0]);
224
      chprintf(stream, "\t\tdistance : %u mm\n", reg_16[0]);
218 225
  }
219 226

  
220 227
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING)) {
......
252 259

  
253 260
  status = vl53l0x_lld_set_mode(((ut_vl53l0xdata_t*)(ut->data))->vl53d, VL53L0X_DEVICEMODE_SINGLE_RANGING,
254 261
                                VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY,0,0);
255
  /*
256
  same as
257

  
258
  status |= VL53L0X_SetDeviceMode(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev), VL53L0X_DEVICEMODE_SINGLE_RANGING);
259
  status |= VL53L0X_SetGpioConfig(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev), 0, VL53L0X_DEVICEMODE_SINGLE_RANGING,
260
                                 VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY, VL53L0X_INTERRUPTPOLARITY_LOW);
261
*/
262 262

  
263 263

  
264 264

  
265 265
  status |= VL53L0X_GetGpioConfig(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev), 0, &deviceMode, &pFunctionality, &pPolarity);
266 266

  
267 267
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && deviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING &&
268
          pFunctionality == VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY && pPolarity == VL53L0X_INTERRUPTPOLARITY_LOW) {
268
          pFunctionality == VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY && pPolarity == VL53L0X_INTERRUPTPOLARITY_HIGH) {
269 269
    aosUtPassed(stream, &result);
270 270
  } else {
271 271
    aosUtFailedMsg(stream, &result, "0x%08X; mode:%u; Interrupt:%u; InterruptPolarity: %u\n", status, deviceMode, pFunctionality, pPolarity);
......
276 276

  
277 277
  status = vl53l0x_lld_CheckRangingDataReady(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &pMeasurementDataReady);
278 278

  
279
  status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
280
                                  ((ut_vl53l0xdata_t*)ut->data)->timeout);
281
  switch (pcal6524_lld_cmd_groupsize(PCAL6524_LLD_CMD_INPUT_P0)) {
282
  case 1:
283

  
284
      break;
285
  case 2:
286
      break;
287
  case 3:
288
      chprintf(stream, "\t\tRead input: 0x%02X 0x%02X 0x%02X\t", buffer[0], buffer[1], buffer[2]);
289
      break;
290
  case 6:
291
      chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X\t",
292
               (((uint16_t)buffer[0]) << 8) | buffer[1],
293
               (((uint16_t)buffer[2]) << 8) | buffer[3],
294
               (((uint16_t)buffer[4]) << 8) | buffer[5]);
295
      break;
296
  default:
297
      break;
298
  }
299

  
279 300

  
280 301
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && pMeasurementDataReady == 0) {
281 302
    aosUtPassed(stream, &result);
......
297 318

  
298 319
  chprintf(stream, "start maeasurement ... \n");
299 320

  
300

  
301 321
  //set everything for eventshandler
302 322
  chEvtRegister(((ut_vl53l0xdata_t*)(ut->data))->evtsource, &event_listener, INTERRUPT_EVENT_ID);
303 323
  aosSysGetUptime(&tend);
......
312 332

  
313 333
  }
314 334

  
315

  
335
chprintf(stream, "Check for interrupts ... \n");
316 336
  do {
317 337
    // read proximity data, interrupt event information and interrupt status
318
    const eventmask_t emask = chEvtWaitOneTimeout(EVENT_MASK(INTERRUPT_EVENT_ID), chTimeUS2I(10*MICROSECONDS_PER_MILLISECOND));
338
    const eventmask_t emask = chEvtWaitOneTimeout(EVENT_MASK(INTERRUPT_EVENT_ID), chTimeUS2I(MICROSECONDS_PER_SECOND));
319 339
    const eventflags_t eflags = chEvtGetAndClearFlags(&event_listener);
320 340

  
321 341

  
322 342
    if (emask == EVENT_MASK(INTERRUPT_EVENT_ID) &&
323 343
        eflags == ((ut_vl53l0xdata_t*)(ut->data))->evtflags) {
324 344
      // true positive (correct case)
325
      chprintf(stream, "EVENT\n");
326
      status |= VL53L0X_GetRangingMeasurementData(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev), pRangingMeasurementData);
327
      chprintf(stream, "\t\tinterrupt detected: prox = %i\n", RangingMeasurementData.RangeMilliMeter);
328
      status |= VL53L0X_ClearInterruptMask(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev),
329
                                           VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH);
330
    }else if (eflags == ((ut_vl53l0xdata_t*)(ut->data))->evtflags){
331
        chprintf(stream, "mask: %lu\n", emask);
332
        chprintf(stream, "flag: %lu\n", eflags);
333
    }else if (emask == EVENT_MASK(INTERRUPT_EVENT_ID)){
334
        chprintf(stream, "first::mask: %lu and flag: %lu\n", emask, eflags);
335

  
336
        // read from GPIO
337
        status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
338
                                        ((ut_vl53l0xdata_t*)ut->data)->timeout);
345
      chprintf(stream, "\t\tEVENT");
346
      status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
347
                                      ((ut_vl53l0xdata_t*)ut->data)->timeout);
348
      status |= vl53l0x_lld_getRangingData(((ut_vl53l0xdata_t*)(ut->data))->vl53d, pRangingMeasurementData);
339 349

  
340
        status |= vl53l0x_lld_CheckRangingDataReady(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &pMeasurementDataReady);
341 350

  
342
        if ((pMeasurementDataReady == 0x01)) {
351
      switch (pcal6524_lld_cmd_groupsize(PCAL6524_LLD_CMD_INPUT_P0)) {
352
      case 1:
343 353

  
344
            chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X\t",
345
                     (((uint16_t)buffer[0]) << 8) | buffer[1],
346
                     (((uint16_t)buffer[2]) << 8) | buffer[3],
347
                     (((uint16_t)buffer[4]) << 8) | buffer[5]);
354
          break;
355
      case 2:
356
          break;
357
      case 3:
358
          chprintf(stream, "\tRead input: 0x%02X 0x%02X 0x%02X", buffer[0], buffer[1], buffer[2]);
359
          break;
360
      case 6:
361
          chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X",
362
                   (((uint16_t)buffer[0]) << 8) | buffer[1],
363
                   (((uint16_t)buffer[2]) << 8) | buffer[3],
364
                   (((uint16_t)buffer[4]) << 8) | buffer[5]);
365
          break;
366
      default:
367
          break;
368
      }
369
      chprintf(stream, "\tdistance = %i mm\n", RangingMeasurementData.RangeMilliMeter);
348 370

  
349 371

  
350
            //get the measurement from VL53L0X
351
            status |= vl53l0x_lld_getRangingData(((ut_vl53l0xdata_t*)(ut->data))->vl53d, pRangingMeasurementData);
352
            chprintf(stream, "distance: %i\n", RangingMeasurementData.RangeMilliMeter);
353

  
354
        }
355 372

  
373
    }else{
374
        chprintf(stream, "\tNo Interrupt, last measurement = %i mm\n", (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.Data.LastRangeMeasure.RangeMilliMeter);
356 375

  
357 376
    }
358 377

  
......
403 422
      &ThresholdLow, &ThresholdHigh);
404 423

  
405 424
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && deviceMode == VL53L0X_DEVICEMODE_CONTINUOUS_RANGING &&
406
          pFunctionality == VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW && pPolarity == VL53L0X_INTERRUPTPOLARITY_LOW){
425
          pFunctionality == VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW && pPolarity == VL53L0X_INTERRUPTPOLARITY_HIGH){
407 426
          //&& ThresholdLow == 80 * 65536 && ThresholdHigh == 150 * 65536) { not possible, only strange wrong values, e.g. Threshold low:1431655765;Threshold high:0
408 427
    aosUtPassed(stream, &result);
409 428
  } else {
......
415 434

  
416 435
  status = vl53l0x_lld_CheckRangingDataReady(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &pMeasurementDataReady);
417 436

  
437
  status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
438
                                  ((ut_vl53l0xdata_t*)ut->data)->timeout);
439
  switch (pcal6524_lld_cmd_groupsize(PCAL6524_LLD_CMD_INPUT_P0)) {
440
  case 1:
441

  
442
      break;
443
  case 2:
444
      break;
445
  case 3:
446
      chprintf(stream, "\t\tRead input: 0x%02X 0x%02X 0x%02X\t", buffer[0], buffer[1], buffer[2]);
447
      break;
448
  case 6:
449
      chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X\t",
450
               (((uint16_t)buffer[0]) << 8) | buffer[1],
451
               (((uint16_t)buffer[2]) << 8) | buffer[3],
452
               (((uint16_t)buffer[4]) << 8) | buffer[5]);
453
      break;
454
  default:
455
      break;
456
  }
418 457

  
419 458
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING) && pMeasurementDataReady == 0) {
420 459
    aosUtPassed(stream, &result);
......
422 461
    aosUtFailedMsg(stream, &result, "0x%08X, there are blocking interrupts :%u\n", status, pMeasurementDataReady);
423 462
    chprintf(stream, "clear blocking interrupts...\n");
424 463

  
464

  
425 465
    status = vl53l0x_lld_getRangingData(((ut_vl53l0xdata_t*)(ut->data))->vl53d, pRangingMeasurementData);
426 466

  
427 467
    if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING)) {
......
433 473

  
434 474
  }
435 475

  
436

  
437

  
438

  
439 476
  chprintf(stream, "start maeasurement ... \n");
440 477

  
441 478

  
......
446 483

  
447 484
  status = vl53l0x_lld_start_measurement(((ut_vl53l0xdata_t*)(ut->data))->vl53d);
448 485

  
449
  if ((status == APAL_STATUS_OK || status == APAL_STATUS_WARNING)) {
450
    aosUtPassed(stream, &result);
451
  } else {
452
    aosUtFailedMsg(stream, &result, "0x%08X;\n", status);
453

  
454
  }
455

  
456

  
457 486
  do {
458 487
    // read proximity data, interrupt event information and interrupt status
459
    const eventmask_t emask = chEvtWaitOneTimeout(EVENT_MASK(INTERRUPT_EVENT_ID), chTimeUS2I(10*MICROSECONDS_PER_MILLISECOND));
488
    const eventmask_t emask = chEvtWaitOneTimeout(EVENT_MASK(INTERRUPT_EVENT_ID), chTimeUS2I(MICROSECONDS_PER_SECOND));
460 489
    const eventflags_t eflags = chEvtGetAndClearFlags(&event_listener);
461 490

  
462 491
    if (emask == EVENT_MASK(INTERRUPT_EVENT_ID) &&
463 492
        eflags == ((ut_vl53l0xdata_t*)(ut->data))->evtflags) {
464 493
      // true positive (correct case)
465
      chprintf(stream, "EVENT\n");
466
      status |= VL53L0X_GetRangingMeasurementData(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev), pRangingMeasurementData);
467

  
468

  
469
      chprintf(stream, "\t\tinterrupt detected: prox = %i\n", RangingMeasurementData.RangeMilliMeter);
494
      chprintf(stream, "\t\tEVENT");
495
      // read from GPIO
496
      status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
497
                                      ((ut_vl53l0xdata_t*)ut->data)->timeout);
498
      switch (pcal6524_lld_cmd_groupsize(PCAL6524_LLD_CMD_INPUT_P0)) {
499
      case 1:
500

  
501
          break;
502
      case 2:
503
          break;
504
      case 3:
505
          chprintf(stream, "\tRead input: 0x%02X 0x%02X 0x%02X\t", buffer[0], buffer[1], buffer[2]);
506
          break;
507
      case 6:
508
          chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X\t",
509
                   (((uint16_t)buffer[0]) << 8) | buffer[1],
510
                   (((uint16_t)buffer[2]) << 8) | buffer[3],
511
                   (((uint16_t)buffer[4]) << 8) | buffer[5]);
512
          break;
513
      default:
514
          break;
515
      }
516
      status |= vl53l0x_lld_getRangingData(((ut_vl53l0xdata_t*)(ut->data))->vl53d, pRangingMeasurementData);
517

  
518

  
519
      chprintf(stream, "distance = %i mm\n", RangingMeasurementData.RangeMilliMeter);
470 520
      status |= VL53L0X_ClearInterruptMask(&(((ut_vl53l0xdata_t*)(ut->data))->vl53d->vl53l0x_dev),0);
471
    }else if (eflags == ((ut_vl53l0xdata_t*)(ut->data))->evtflags){
472
        chprintf(stream, "mask: %lu\n", emask);
473
        chprintf(stream, "flag: %lu\n", eflags);
474
    }else if (emask == EVENT_MASK(INTERRUPT_EVENT_ID)){
475
        chprintf(stream, "last::mask: %lu and flag: %lu\n", emask, eflags);
476

  
477
        // read from GPIO
478
        status |= pcal6524_lld_read_group(((ut_vl53l0xdata_t*)ut->data)->gpio, PCAL6524_LLD_CMD_INPUT_P0, buffer,
479
                                        ((ut_vl53l0xdata_t*)ut->data)->timeout);
480

  
481
        status |= vl53l0x_lld_CheckRangingDataReady(((ut_vl53l0xdata_t*)(ut->data))->vl53d, &pMeasurementDataReady);
482

  
483
        if ((pMeasurementDataReady == 0x01)) {
484

  
485
            chprintf(stream, "\t\tRead input: 0x%04X 0x%04X 0x%04X\t",
486
                     (((uint16_t)buffer[0]) << 8) | buffer[1],
487
                     (((uint16_t)buffer[2]) << 8) | buffer[3],
488
                     (((uint16_t)buffer[4]) << 8) | buffer[5]);
489

  
490

  
491
            //get the measurement from VL53L0X
492
            status |= vl53l0x_lld_getRangingData(((ut_vl53l0xdata_t*)(ut->data))->vl53d, pRangingMeasurementData);
493
            chprintf(stream, "distance: %i\n", RangingMeasurementData.RangeMilliMeter);
494
        }
495

  
496

  
521
    }else{
522
      chprintf(stream, "\tNo Interrupt, last measurement = %i mm\n", (((ut_vl53l0xdata_t*)(ut->data))->vl53d)->vl53l0x_dev.Data.LastRangeMeasure.RangeMilliMeter);
497 523
    }
498 524

  
499

  
500 525
    aosSysGetUptime(&tcurrent);
501 526
  } while (tcurrent < tend);
502 527

  
......
523 548

  
524 549

  
525 550

  
526

  
527 551
  chprintf(stream, "setting default address...\n");
528 552

  
529 553
  status = vl53l0x_lld_set_address(((ut_vl53l0xdata_t*)(ut->data))->vl53d, 0x29);

Also available in: Unified diff