Помогите с четырёхразрядным индикатором

Тема в разделе "Iskra JS, Espruino, Йодо", создана пользователем zmey, 30 авг 2017.

  1. zmey

    zmey Нерд

    Здравствуйте!

    Купил четырёхразрядный индикатор, и не могу заставить его работать с IskraJS.
    В результате выполнения следующего кода:
    Код (Javascript):
    var qd = require('@amperka/quaddisplay').connect(P10);
    qd.display('1234');
    получаю всякие кракозябры.

    Модуль подключен через Slot Shield (джампер стоит на V5+V2)
    На смой искре джампер стоит на VIN3+5V
    Наличие контактов проверил мультиметром.

    Что я делаю не так?
    Может библиотека quaddisplay еще не адаптирована под новую версию модуля?
    Если так, то когда будет обновление, или как можно допилить имеющуюся библиотеку самостоятельно?
     
  2. BAR__MEN

    BAR__MEN Гуру

    Эмм..У вас дисплей второй ревизии а библиотека первой(как я знаю для второй библиотеки нет)
     
    sys нравится это.
  3. BAR__MEN

    BAR__MEN Гуру

    Даже не знаю...самому....лучше подождать ;)
     
  4. zmey

    zmey Нерд

    А вы не в курсе, модуль второй ревизии работает по протоколу, описанному здесь http://www.romanblack.com/shift1.htm ?
    И когда ждать новую библиотеку?
     
  5. BAR__MEN

    BAR__MEN Гуру

    1. Очень может быть
    2. Обратитесь в Амперку должны сказать...
     
  6. Morgan

    Morgan Administrator Команда форума

    Сегодня / завтра выкатим
     
  7. zmey

    zmey Нерд

    Спасибо. Не успел толком озадачиться, а вопрос уже решен.
     
  8. zmey

    zmey Нерд

    Кажется я уже разобрался, как работать с этим модулем:)
    Написал простенькую либу:
    Код (Javascript):
    var QD_EMPTY = 0b11111111;
    var QD_DOT = 0b11111110;
    var QD_DEGREE = 0b00111001;
    var QD_0 = 0b10000001;
    var QD_1 = 0b11110011;
    var QD_2 = 0b01001001;
    var QD_3 = 0b01100001;
    var QD_4 = 0b00110011;
    var QD_5 = 0b00100101;
    var QD_6 = 0b00000101;
    var QD_7 = 0b11110001;
    var QD_8 = 0b00000001;
    var QD_9 = 0b00100001;
    var QD_A = 0b00010001;
    var QD_B = 0b00000111;
    var QD_C = 0b10001101;
    var QD_D = 0b01000011;
    var QD_E = 0b00001101;
    var QD_F = 0b00011101;
    var QD_G = 0b10000101;
    var QD_H = 0b00010011;

    var SYMBOLS =
    {
        ' ': QD_EMPTY,
        '.': QD_DOT,
        ',': QD_DOT,
        '*': QD_DEGREE,
        '0': QD_0,
        '1': QD_1,
        '2': QD_2,
        '3': QD_3,
        '4': QD_4,
        '5': QD_5,
        '6': QD_6,
        '7': QD_7,
        '8': QD_8,
        '9': QD_9,
        'A': QD_A,
        'B': QD_B,
        'C': QD_C,
        'D': QD_D,
        'E': QD_E,
        'F': QD_F,
        'G': QD_G,
        'H': QD_H,
        'a': QD_A,
        'b': QD_B,
        'c': QD_C,
        'd': QD_D,
        'e': QD_E,
        'f': QD_F,
        'g': QD_G,
        'h': QD_H,
    };

    var MyQD = function(pin)
    {
        this._pin = pin;
        SPI2.setup({ mosi: B15, miso: B14, sck: B13 });
    };

    MyQD.prototype.display = function(str)
    {
        var digits = [255, 255, 255, 255];
        var s = str.toString();
        for (var i = 0, j = 0; i < s.length && j < 4; i++)
        {
            var ch = s[i];
            var code = SYMBOLS[ch];
            if (code === undefined)
                continue;
            if (j > 0 && code === QD_DOT)
                j--;
            digits[j] &= code;
            j++;
        }
        SPI2.send(digits, this._pin);
    };

    exports.connect = function(pin)
    {
        return new MyQD(pin);
    };
    Использовать так:
    Код (Javascript):
    var qd = require('qd').connect(P10);
    qd.display(1/7);
    Вроде работает:)
     
    Последнее редактирование: 31 авг 2017
    sys и BAR__MEN нравится это.
  9. BAR__MEN

    BAR__MEN Гуру

    :confused:вы сделали чужую работу?)!:confused:
     
  10. zmey

    zmey Нерд

    Мне было просто интересно самостоятельно добиться желаемого результата. А сделанная за кого-то работа - побочный эффект.
     
  11. Morgan

    Morgan Administrator Команда форума

    Хорошо, что у вас получилось.

    Можете с нашей попробовать. Она еще не доступна по '@amperka/quaddisplay2', но можете скачать файл и запустить из локальной папки.

    https://github.com/amperka/espruino-modcat/pull/53
     
    sys нравится это.
  12. zmey

    zmey Нерд

    Спасибо. Вечером попробую. Лучше конечно пользоваться стандартными библиотеками.