РЕШЕНО Энергозависимость памяти

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

  1. Micaro

    Micaro Нерд

    Здравствуйте!
    Подскажите пожалуйста, каким образом можно обнулить память Iskra JS?
    Ситуация следующая: достаточно давно залил в искру прошивку (после продолжительного отключения интернета плата писала, что нужные библиотеки не найдены) с Windows 7 (естественно, ничего не заработало). Сейчас пробую залить прошивку с Windows 10, все нормально. Отключаю плату и включаю снова - снова выдает сообщения о той старой ошибке (использовались совершенно другие библиотеки). Подумал, что следует обнулить память искры, но не знаю как это сделать. Помогите пожалуйста!
    Спасибо.
     
  2. reset();
    save();
     
  3. Micaro

    Micaro Нерд

    reset() перезагружает плату.
     
  4. Micaro

    Micaro Нерд

  5. Перезагружает E.reboot(), а reset() сбрасывает программу. Работает это по моему опыту не слишком стабильно, и приходится то переподключать, то пробовать по нескольку раз.
     
  6. Micaro

    Micaro Нерд

  7. Micaro

    Micaro Нерд

    Продолжение проблемы:
    Залил в Робоняшу данный код:
    Код (Javascript):
    var SPEED = 0.5;

    var marsohod = require('@amperka/robot-2wd')
      .connect();

    var receiver = require('@amperka/ir-receiver')
      .connect(P3);

    var lamp = require('@amperka/led').connect(P2);
    lamp.turnOff();

    receiver.on('receive', function(code) {
      if (code === receiver.keys.TOP) {
        marsohod.go({l: SPEED, r: SPEED});
      }
      if (code === receiver.keys.POWER) {
        marsohod.stop();
        lamp.turnOff();
      }
      if (code === receiver.keys.LEFT) {
        marsohod.go({l: 0, r: SPEED});
      }
      if (code === receiver.keys.RIGHT) {
        marsohod.go({l: SPEED, r: 0});
      }
      if (code === receiver.keys.BOTTOM) {
        marsohod.go({l: -SPEED, r: -SPEED});
      }
      if (code === receiver.keys.Y) {
        lamp.toggle();
      }
    });
    Запросил его командой
    Код (Javascript):
    dump()
    .
    Он мне выдал:
    Код (Javascript):
    var SPEED = 0.5;
    var marsohod = Object.create(marsohod.__proto__.constructor["prototype"]);
    marsohod._leftMotor = { "pwmPin": B1, "phasePin": C3, "freq": 100 };
    marsohod._rightMotor = { "pwmPin": B0, "phasePin": C2, "freq": 100 };
    marsohod._acceleration = 0.2;
    marsohod._speedIntervalID = null;
    marsohod.leftMotor = { "_pwmPin": B1, "_phasePin": C3 };
    marsohod.rightMotor = { "_pwmPin": B0, "_phasePin": C2 };
    marsohod._lCurrentSpeed = 0;
    marsohod._rCurrentSpeed = 0;
    var receiver = Object.create(receiver.__proto__.constructor["prototype"]);
    receiver._pin = A7;
    receiver._currentCode = 0;
    receiver._lastCode = 0;
    receiver._timeoutID = null;
    receiver._controller = "amperka";
    receiver.keys = { "POWER": 378130479, "MINUS": 378134559, "PLUS": 378132519, "RED": 378077439,
      "GREEN": 378126399, "BLUE": 378110079, "CROSS": 378114159, "SQUARE": 378118239, "TRIANGLE": 378093759,
      "TOP_LEFT": 378097839, "TOP": 378101919, "TOP_RIGHT": 378099879, "LEFT": 378081519, "PLAY": 378091719,
      "RIGHT": 378116199, "BOTTOM_LEFT": 378083559, "BOTTOM": 378124359, "BOTTOM_RIGHT": 378085599, "X": 378089679,
      "Y": 378122319, "Z": 378105999 };
    receiver.on("receive", function (code) {
      if (code === receiver.keys.TOP) {
        marsohod.go({l: SPEED, r: SPEED});
      }
      if (code === receiver.keys.POWER) {
        marsohod.stop();
        lamp.turnOff();
      }
      if (code === receiver.keys.LEFT) {
        marsohod.go({l: 0, r: SPEED});
      }
      if (code === receiver.keys.RIGHT) {
        marsohod.go({l: SPEED, r: 0});
      }
      if (code === receiver.keys.BOTTOM) {
        marsohod.go({l: -SPEED, r: -SPEED});
      }
      if (code === receiver.keys.Y) {
        lamp.toggle();
      }
    });
    var lamp = Object.create(lamp.__proto__.constructor["prototype"]);
    lamp._pin = A6;
    lamp._on = false;
    lamp._brightness = 1;
    lamp._blinkTimeoutID = null;
    lamp._blinkOnTime = 0;
    lamp._blinkOffTime = 0;
    setWatch(function (a) {var b=this,c=a.time-a.lastTime;null!==this._timeoutID&&(clearTimeout(this._timeoutID),this._timeoutID=null),c>.04?this._complete():(this._currentCode=this._currentCode<<1|+(c>8e-4),this._timeoutID=setTimeout(function(){b._timeoutID=null,b._complete()},50))}, A7, { repeat:true, edge:'falling' });
    pinMode(A2, "af_output", true);
    pinMode(A3, "af_output", true);
    pinMode(A6, "output");
    pinMode(A7, "input_pullup");
    pinMode(B0, "af_output");
    pinMode(B1, "af_output");
    pinMode(C2, "output");
    pinMode(C3, "output");
    =undefined
    Отключил Робоняшу от питания. Подключил снова. Вызвал код той же командой. Вот что он мне дал:
    Код (Javascript):
    pinMode(A2, "af_output", true);
    pinMode(A3, "af_output", true);
    =undefined
    Обнулять память с помощью прошивки через DFU пробовал. Не помогает.
    Помогите пожалуйста!
    Спасибо!
     
  8. Micaro

    Micaro Нерд

    Спасибо за помощь, но мне не нужно обнулять память, а желательно получить конкретные сведения о проблеме и ее решение.
     
  9. Нет никакой проблемы. Просто прочитайте документацию.
     
  10. Micaro

    Micaro Нерд

    Подскажите пожалуйста, а где ее взять?
    Просто в инструкции этого нет.
     
  11. Micaro

    Micaro Нерд

    Большое Вам спасибо!
    Я залил код, задал команду save() и вуаля - оно сохранилось. Работает даже после последнего отключения.