Ви не увійшли.
Пожалуйста подскажите что делаю не так:
#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)
Неактивний
Мне расказали что ничего не получиться потому что библиотека FlexTimer запускает процедуру через прерывание - а это значит что внутри запускаемой процедуры, в данном случае процедуры radar - никакие другие прерывания использовать нельзя. А VL53 как раз именно через прерывания и работает:(
Остання редакція Hadl (2020-04-04 23:59:31)
Неактивний