Проблема с часами реального времени (РЕШЕНО)

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Micaro, 8 ноя 2018.

Метки:
  1. Micaro

    Micaro Нуб

    Здравствуйте!
    Залил в Iskra JS с подключенным модулем часов реального времени следующий код:
    Код (Javascript):
    E.setTimeZone(+3);
    var rtc = require('@amperka/rtc').connect();
    var timeZone = +3 * 60 * 60;
    var current = Date().valueOf() / 1000 + timeZone;
    rtc.setTime(current);
    Выводит вот такую ошибку:
    Код (Javascript):
    Uncaught InternalError: Timeout on I2C Write Transmit Mode 2
    at line 1 col 52
    ...i2c.writeTo(this._address,a),this._i2c.readFrom(this._addres...
                                  ^
    in function "read" called from line 1 col 20
    var a=this.read(0,1)[0];a>>7&&this.write(0,128^a)
                       ^
    in function "start" called from line 1 col 133
    ...is._address=104,this.start()
                                  ^
    in function "Rtc" called from line 1 col 10
    new Rtc(a)
             ^
    in function "connect" called from line 3 col 43
    var rtc = require('@amperka/rtc').connect();
    Версия прошивки Iskra JS - 1v96.43. Использую Troyka Slot Shield. Подключаю в слот B.
    Помогите пожалуйста.
    Спасибо!
     
  2. BAR__MEN

    BAR__MEN Гуру

    Micaro нравится это.
  3. Micaro

    Micaro Нуб

    Попробовал упрощать код до такого:
    Код (Javascript):
    PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000});
    var rtc = require('@amperka/rtc').connect(PrimaryI2C);
    rtc.setTime();
    Не помогло. Выдает ту же ошибку.
     
  4. BAR__MEN

    BAR__MEN Гуру

    А если не сокращать?
    В примере и так показан минимальный код
     
  5. Micaro

    Micaro Нуб

    В каком смысле? В моем коде производится простая настройка, без вывода каких-либо результатов.
    Пробовал вгружать код прямо из примера. Все то же самое.
    Код (Javascript):
    // Настраиваем шину I2C
    PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000});
    // Создаем новый объект Rtc
    var rtc = require('@amperka/rtc').connect(PrimaryI2C);
    // Устанавливаем на часах текущее время контроллера
    rtc.setTime();
    // Результат в формате unixtime: 1459166474
    print(rtc.getTime('unixtime'));
    // Результат в виде строки ISO: 2016-1-21T12:1:14
    print(rtc.getTime('iso'));
    // Результат в виде объекта Date: { "ms": 1459166474000 }
    print(rtc.getTime());
    Вот сама ошибка (еще раз):
    Код (Javascript):
    Uncaught InternalError: Timeout on I2C Write Transmit Mode 2
    at line 1 col 52
    ...i2c.writeTo(this._address,a),this._i2c.readFrom(this._addres...
                                  ^
    in function "read" called from line 1 col 20
    var a=this.read(0,1)[0];a>>7&&this.write(0,128^a)
                       ^
    in function "start" called from line 1 col 133
    ...is._address=104,this.start()
                                  ^
    in function "Rtc" called from line 1 col 10
    new Rtc(a)
             ^
    in function "connect" called from line 6 col 53
    var rtc = require('@amperka/rtc').connect(PrimaryI2C);
     
    Последнее редактирование: 8 ноя 2018
  6. ИгорьК

    ИгорьК Давно здесь

    Как это переводится?
     
  7. BAR__MEN

    BAR__MEN Гуру

    Да Вы что, ТС 11 лет, он такого еще не учил... =)
     
  8. BAR__MEN

    BAR__MEN Гуру

    А вообще пользуемся поиском и смотрим результат.
    Не помогло? Проверяем:
    • Батарейка вставлена и не разряжена?
    • Провода sda и scl не перепутаны?
    • Питание модуля 5в? (на пинах с P8 до P13)
    • Провода исправны?
    Не помогло? Тех поддержка в помощь!
     
  9. ИгорьК

    ИгорьК Давно здесь

    Пусть переводит.

    Товарищ ТС!
    Интерперетатор всегда пишет что ему не нравится.
    Переводите и возникнут мысли.
     
    BAR__MEN нравится это.
  10. Micaro

    Micaro Нуб

    • Запитываю от USB компьютера
    • Я пользуюсь Troyka Slot Shield, там нельзя перепутать.
    • Я запитываю по USB от компьютера
    • Опять же Troyka Slot Shield
     
  11. Micaro

    Micaro Нуб

    Спасибо за совет!
     
  12. BAR__MEN

    BAR__MEN Гуру

    Причем тут это? Модуль должен питаться от 5 вольт, питание искры тут не причем
     
  13. Micaro

    Micaro Нуб

    На Slot Shield стоит джампер в положении V2+5V
     
  14. ИгорьК

    ИгорьК Давно здесь

    Так переведи - 50% решения.
     
  15. ИгорьК

    ИгорьК Давно здесь

    Тут на форуме это удивительное железо мало кто имеет и знает.
     
  16. BAR__MEN

    BAR__MEN Гуру

    Угу.. Только это дает 5в только на пины V2
    А на фото слот шилда я не вижу пинов V2, чтобы можно было подключить на них девайс работающий на i2c...
    Сложна..
     
  17. Micaro

    Micaro Нуб

    Я просто не знаю некоторых технических слов, по словарю получается ерунда. Если Вы знаете эти слова, пожалуйста, помогите перевести.
     
  18. ИгорьК

    ИгорьК Давно здесь

    Дай скриншот гуглопереводчика
     
  19. BAR__MEN

    BAR__MEN Гуру

    Где? upload_2018-11-8_19-46-8.png
     
  20. Micaro

    Micaro Нуб

    Мне выдал вот что:

    Uncaught InternalError: таймаут на I2C режиме передачи 2
    в строке 1 col 52 ... i2c.writeTo (this._address, а), this._i2c.readFrom (this._addres ... ^
    в функции "read", вызываемой из строки 1 col 20 var a = this.read (0,1) [0]; a >> 7 && this.write (0,128 ^ a) ^
    в функции «start», вызванной из строки 1 col 133 ... is._address = 104, this.start () ^
    в функции «Rtc», вызванной из строки 1 col 10 новый Rtc (a)
    Я так понял, проблема кроется в библиотеке.