Объединить два полубайта в один байт

Тема в разделе "Arduino & Shields", создана пользователем Tomasina, 27 апр 2016.

  1. Tomasina

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

    пытаюсь использовать LED-матрицу 5х7 в горизонтальном положении.

    Есть такие массивы, представляющие собой цифры:
    Код (C++):
    const byte dig2[5]  = {B01110000, B00010000, B01110000, B01000000, B01110000}; // цифра 2 размерностью 3х5
    const byte dig4[5]  = {B01010000, B01010000, B01110000, B00010000, B00010000}; // цифра 4 размерностью 3х5
    Как их склеить в один массив, представляющий собой двузначное число?
    Код (C++):
    byte dig24[5] =  {B01110101, B00010101, B01110111, B01000001, B01110001}; // число 24
     
  2. Megakoteyka

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

    Код (C++):
    dig24[i] = dig2[i] | (dig4[i] >> 4)
    ?
     
    Tomasina нравится это.
  3. Tomasina

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

    Работает!
    :rolleyes:
    Респект.
     
  4. papakaplo

    papakaplo Нуб



    А можно словестно сказать что происходит в данной формуле. Я так понимаю массивы складываются по элементно???
     
  5. ostrov

    ostrov Гуру

    Биты во втором байте сдвигаются на 4 позиции вправо и при помощи логического побитового оператора ИЛИ, то есть не повреждая биты в первом байте, накладываются на пустые места.
     
    Tomasina нравится это.
  6. Megakoteyka

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

    Да, только это нужно в цикле делать.