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

Тема в разделе "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. NikitOS

    NikitOS Король шутов Администратор

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

    NikitOS Король шутов Администратор

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

    zmey Нерд

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

    NikitOS Король шутов Администратор

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

    Morgan Гик

    Сегодня / завтра выкатим
     
  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 и NikitOS нравится это.
  9. NikitOS

    NikitOS Король шутов Администратор

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

    zmey Нерд

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

    Morgan Гик

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

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

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

    zmey Нерд

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