KB.read() в виде переменной.

Тема в разделе "Arduino & Shields", создана пользователем ИванL, 21 окт 2017.

  1. ИванL

    ИванL Нуб

    Добрый вечер! Возник вопрос, как изобразить
    Код (C++):
    KB.read();
    в виде переменной? Пытаюсь данные,которые вводятся с клавиатуры преобразовать в переменную, которая будет выводиться на дисплей.
    Пробовал обозначить входные данные как-то так:
    Код (C++):
    unsigned char key[] = {
      '1','2','3','A',
      '4','5','6','B',
      '7','8','9','C',
      '*','0','#','D'
    };
    И выводить:
    Код (C++):
    u8g.print(key); // или u8g.print(key[]);
    Но даже с точки зрения логики понимаю, что это неправильно. Буду благодарен за любую помощь и конструктивную критику!
     
  2. DIYMan

    DIYMan Гуру

    Какой тип данных возвращает вызов KB.read()?
     
  3. rkit

    rkit Гуру

    auto x = KB.read();
     
    ИванL нравится это.
  4. ИванL

    ИванL Нуб

    Целый
     
  5. ИванL

    ИванL Нуб

    Большое спасибо!
     
  6. ИванL

    ИванL Нуб

    Теперь компилятор выдает:" 'void x' has incomplete type ". Что ли косяк кроется в остальной части моей программы?
    Код (C++):
    #include <U8glib.h> // Подключаем библиотеку для LCD дисплея
    #include <AmperkaKB.h> // Подключаем библиотеку для клавиатуры
    AmperkaKB KB(7, 6, 5, 4, 3, 2, 1, 0); // указывая номера arduino подключенные к шлейфу клавиатуры
    U8GLIB_ST7920_128X64 u8g(10, 11, 12, U8G_PIN_NONE); // настройка пинов
    unsigned char key[] = {
      '1','2','3','A',
      '4','5','6','B',
      '7','8','9','C',
      '*','0','#','D'
    };

    void setup(){
      KB.begin(KB4x4);
        u8g.setFont(u8g_font_6x10); // Выбор шрифта
         auto x = KB.read();
      }
      void draw(void) {
      u8g.setFont(u8g_font_unifont);
      u8g.setPrintPos(0, 20);
      u8g.print(x);
    }

      void loop()
      {
        u8g.firstPage();
      do {
        draw();
      } while( u8g.nextPage() );
      }
     
  7. DIYMan

    DIYMan Гуру

    Т.е. код нажатой клавиши, так? В чём проблема преобразовать код нажатой клавиши в символ?
     
  8. rkit

    rkit Гуру

    Никакой не целый, а void оно возращает.
     
  9. ostrov

    ostrov Гуру

    Я слепой или массив key не используется нигде?
     
  10. ИванL

    ИванL Нуб

    В отсутствии моего понимания, как это наиболее оптимально реализовать. Иначе получается
    Код (C++):
    if(KB.read()=1) {
      u8g.print(1);
    }
    Не так ли?
     
  11. Tomasina

    Tomasina Сушитель лампочек Модератор

    Последнее редактирование: 21 окт 2017
  12. ИванL

    ИванL Нуб

    К счастью, вы не слепой)
    На данный момент, действительно, массив k больше нигде не используется, но в дальнейшем предполагается его использование.
     
  13. ИванL

    ИванL Нуб