Проблема: простой опрос гироскопа модуля IMU раз в полсекунды обязательно приводит к зависанию программы. Наступает это не сразу, для цикла 500 мс -- где-то через 1-2 часа. Для более коротких циклов -- еще быстрее. Вопрос: как добиться стабильной работы? Выдает такую ошибку: " Uncaught InternalError: Timeout on I2C Write Transmit Mode 2 at line 1 col 33 a=a||1,this._i2c.writeTo(b,c|128),this._i2c.readFrom(b,a); ^ in function "_readI2C" called from line 1 col 65 ...is._readI2C(this._gyro,40,6);var b=new Int16Array(c.buffer,0... ^ in function "gyro" called from line 1 col 24 var gyrosop = imu.gyro(); ^ in function called from system Uncaught InternalError: Timeout on I2C Write Transmit Mode 2 at line 1 col 33 a=a||1,this._i2c.writeTo(b,c|128),this._i2c.readFrom(b,a); ^ in function "_readI2C" called from line 1 col 65 ...is._readI2C(this._gyro,40,6);var b=new Int16Array(c.buffer,0... Код (C++): var imu = require("https://raw.githubusercontent.com/amperka/espruino-modcat/imu10/modules/imu10.js").connect(); imu.setup(); var timerID = setInterval(function() { var gyrosсop = imu.gyro(); console.log(gyrosсop); },500);
Alex Dos, этот ролик я и раньше видел. Монтаж хороший и герои веселые. Но с ним есть две проблемы. Во-первых, он про Iskra, а эта ветка про Iskra js. Во-вторых, размер лог файла в этом ролике 3 кб. Систему, которая за гоночный заезд накопила только 50 точек, назвать real time слишком смело, мягко говоря. Можно ли ждать содержательного ответа на мой вопрос? Что мне нужно сделать по-другому, чтобы библиотека не зависала? А то вдруг Iskra JS не способна стабильно работать с шиной I2C с частотой опроса меньше секунды? Или может совместимость imu10 c искрой JS условная и мне надо пробовать другие модули с библиотеками, написанными не в Амперке.
Эх, моя вина — в списке отслеживаемых тем не заметил, что это ветка по JS. Размер файла — не проблема, пишется же он на SD-шку. Первоначально система писала данные раз в секунду, но потом Игорёк с чего-то решил увеличить интервал, а узнали мы об этом только когда результаты смотреть стали. Под JS нужно потестить. В принципе — можно добавить в список мини-проектов для новой платформы. Но это будет не быстро, увы.
Спасибо, это важная информация. Если бы знал ее раньше, точно не взял бы ни искру JS, ни чудесный модуль IMU10. Буду ждать мини-проект, надеюсь, он будет работать быстрее, чем раз в секунду.