Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

vvr
2020-04-05 07:59:56

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

Hadl
2020-04-04 23:59:04

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

Hadl
2020-04-04 15:37:00

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

#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() разкоментировать - то отлично все работает.

Спасибо.

Підвал форуму