Помогите создать счетчик на espruino

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем Joshua, 13 окт 2020.

  1. Joshua

    Joshua Нерд

    Всем привет.
    подскажите как реализовать. Espruino на ESP8266
    две кнопки. условно btnPlus и btnMinus

    глобальная переменная let temp = 5

    нужно: нажатие на btnPlus - увеличивает temp на 1
    btnMinus - уменьшает.

    дальше значение переменной передается уже в другую функцию

    и самое главное: значение надо как-то сохранить в EEPROM. Чтоб после перезагрузки или отключения питания оно сохранилось. это возможно?
     
  2. issaom

    issaom Гуру

    Ваши вопросы тянут на небольшую брошюру (листов так на 40 А4) - думаете кто-то это все тут печатать будет ;-)
     
  3. Joshua

    Joshua Нерд

    тогда хотя бы вторую часть вкратце. умеет espruino так или нет?
     
  4. parovoZZ

    parovoZZ Гуру

    ну как бы это...
    Код (C++):
    if (bntPlus)
    {
       temp++;
    }

    if (btnMinus)
    {
       temp--;
    }
     
  5. parovoZZ

    parovoZZ Гуру

    ой, pardonne moi

    Код (C++):
    void myfunction (uint8_t *temp)
    if (bntPlus)
    {
       *temp++;
    }

    if (btnMinus)
    {
       *temp--;
    }
     
  6. ИгорьК

    ИгорьК Гуру

    Умеет.

    Вы бы большими буквами написали, что вопрос по языку JavaScript.
     
    Joshua и issaom нравится это.
  7. Joshua

    Joshua Нерд

    я через callback делал. но при двух калбеках - на память возмущается
    Код (Javascript):
    buttonPlus.on('click', function() {
      maxTemp++;
      function callbackFunction(result){
        maxTemp = result;
    }
    });
     

    дык... вроде как раздел именно его и предполагает)
     
    Последнее редактирование: 13 окт 2020
  8. ИгорьК

    ИгорьК Гуру

    callbackFunction(result) - какй смысл заложен в этой функции? Функция создаётся внутри функции (полагаю она локальная и доступа к ней нет) но ничто её не вызывает, да и смысл её не ясен.

    Форум переполнен великими людьми, с ними надо как с детками, все объяснять и "ку" делать.
     
    Joshua нравится это.
  9. Joshua

    Joshua Нерд

    я уже понял что фигню сделал ... думал что без вызова не будет значение в переменную передаваться
    Код (Javascript):

    buttonPlus.on('click', function() {
      maxTemp++;
    });

    buttonMinus.on('click', function() {
      maxTemp--;
    });

     
    А как правильно эти две функции в одну объединить?

    спасибо, что не "кю" и не "ицих" с гвоздями)))
     
  10. ИгорьК

    ИгорьК Гуру

    Не надо их объединять. Вы на две разные кнопки завесили собственные каллбаки. Теперь нажатие на каждую изменяет переменную, которую, надеюсь, вы объявили глобальной.
     
    Joshua нравится это.
  11. b707

    b707 Гуру

    просто немного прифигел от "продвинутости" вопроса

    если вы колбеки на месте определяете, логичнее делать так:
    Код (Javascript):
    buttonPlus.onclick = function() {maxTemp++;};

    buttonMinus.onclick = function() {maxTemp--;};
     
     
  12. ИгорьК

    ИгорьК Гуру

    Удивительная иллюстрация пословицы про соринку и бревно. То есть продвинутость (и относимось к делу) ответов, включая ваш, вас не удивила?

    Вот здесь есть синтакс. Вы проверили собственный совет нубу на работоспособность?
     
    Последнее редактирование: 14 окт 2020
  13. b707

    b707 Гуру

    я его честно списал из учебника.
    а я вообще удивительный

    PS что-то форум подглючивает, надоело перенабирать ответ по четыре раза... сорри за ачепятки
     
  14. ИгорьК

    ИгорьК Гуру

    Это не ответ - проверили лично или нет?

    Да, да. Первый сорт.

    Так вот, учебник пишет не о кнопке МК а о кнопке на веб-странице.

    Работать это с вероятностью 95% не будет. 5% на случайное совпадение.

    В общем, тема собрала самых ураганных носителей брёвен с бредовыми советами.
     
  15. b707

    b707 Гуру

    нет, конечно.
    ТС сам проверит и в случае ошибки будет рад поправить гуру. Зачем лишать его этой радости?

    какая разница, учебник описывает синтаксис JS. Неужели в Еспруино какой-то свой жабаскрипт?
    И судя по Вашим процентам, сами Вы тоже свои ответы в коде не проверяли. так что бревно-то - оно обоюдное :)))
     
    Последнее редактирование: 14 окт 2020
  16. ИгорьК

    ИгорьК Гуру

    Прочитал, и:

    @NikitOS, совсем перестали бояться. Помню, гонял когда-то этих персонажей за флуд и чванство...
     
  17. Joshua

    Joshua Нерд

    Оффтопик:
    а я думал, что цискари только токсичные )

    вроде как образовательный форум. нацелен на развитие
    ошибку понял, осознал. код подправил, все работает через две функции.

    ИгорьК, Спасибо

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

    ИгорьК Гуру

    Я не спец в деле JavaScript (читаю и перевожу со словарем :) ). По мне, он излишен и тяжел для ESP-8266. Поэтому, общие мысли.

    В модуле есть 127(?) байт нестираемого при отключении питания флэша и возможность писать в файловую систему.

    http://www.espruino.com/Reference - искать надо здесь, в разделе File и Flash. То есть поле для экспериментов.

    Если вы знаете, я приверженец Lua. ИМХО, он в два раза проще чем JavaScript и в десять, чем С++. На Lua я бы дал поточнее рекомендации.
     
  19. Joshua

    Joshua Нерд

    жаль что на баше нельзя в нее писать... micropython мне на esp8266 нравится, но еще не вникал как с ним по производительности будет.

    самое веселое - я два года на JS ничего не писал. сейчас реально смотрю и вспоминаю как и что
     
  20. SergeiL

    SergeiL Оракул Модератор

    Два года, два года - это ерунда.
    У меня вообще был долгий период, когда далек был от писания на Си.
    Но это же как езда на велосипеде, само всплывает ;)!