#1 2020-04-04 15:37:00

Hadl
Участник
Зарегистрирован: 2020-04-04
Сообщений: 2

Помогите подружить vl53l0x и FlexiTimer2

Пожалуйста подскажите что делаю не так:

#include <FlexiTimer2.h>
#include <VL53L0X.h>
#include <Wire.h>

VL53L0X sensor;
float distance;

void setup()
{
  Wire.begin();

  Serial.begin(9600);
  Serial.println("initialization");

  FlexiTimer2::set(1500, radar);
  FlexiTimer2::start();

  sensor.setTimeout(500);
  sensor.init();
}

void loop()
{
  // radar();
  // delay(1000);
}

void radar() {
  Serial.println("radar");
  distance = sensor.readRangeSingleMillimeters() / 10;
  Serial.print("Distance = ");
  Serial.println(distance);
}

Зависает и не хочет измерять растояние при вызове через FlexiTimer2, в com-порт отдается так:
----
initialization
14:26:12.258 -> ra
----
А если строки 15 и 16 закоментировать (установка FlexiTimer2), а в loop() разкоментировать - то отлично все работает.

Спасибо.

Редактировался Hadl (2020-04-04 15:37:26)

#2 2020-04-04 23:59:04

Hadl
Участник
Зарегистрирован: 2020-04-04
Сообщений: 2

Re: Помогите подружить vl53l0x и FlexiTimer2

Мне расказали что ничего не получиться потому что библиотека FlexTimer запускает процедуру через прерывание - а это значит что внутри запускаемой процедуры, в данном случае процедуры radar - никакие другие прерывания использовать нельзя. А VL53 как раз именно через прерывания и работает:(

Редактировался Hadl (2020-04-04 23:59:31)

#3 2020-04-05 07:59:56

vvr
Участник
Зарегистрирован: 2015-04-12
Сообщений: 672

Re: Помогите подружить vl53l0x и FlexiTimer2

значит нужно искать другие способы решения задачи.

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела