Команда для мгновенного отключения матрицы max7219 при отпускании кнопки

Doperm
Offline
Зарегистрирован: 03.01.2018

Прошу помощи со скетчем:

Задача в том, что бы при отпускании кнопки подключённой к pin2, серия команд после if (button ==1){...} мгновенно прекращало своё выполнение, а если точнее просто МАХ7219 гас. Пытался я через attachInterrupt это реализовать, но никак не получается. Может попробовать через другие команды?

#include "LedControl.h"

LedControl LC = LedControl(12, 11, 10, 4);
  int delayTime = 7000;
/*void sbros()
{
  LC.clearDisplay(0);
  LC.clearDisplay(1);
  LC.clearDisplay(2);
  LC.clearDisplay(3);
  delay(50);
  }*/
  
void setup() 
{
  LC.shutdown(0, false);
  LC.shutdown(1, false);
  LC.shutdown(2, false);
  LC.shutdown(3, false);
    
    LC.setIntensity(0, 8);
    LC.setIntensity(1, 8);
    LC.setIntensity(2, 8);
    LC.setIntensity(3, 8);
    
  LC.clearDisplay(0);
  LC.clearDisplay(1);
  LC.clearDisplay(2);
  LC.clearDisplay(3);
 
  pinMode(2, INPUT_PULLUP);
  
  //attachInterrupt(0, sbros, RISING); 
}
 
void loop()
{
  boolean button = !digitalRead(2);
  if (button ==1)
{
  LC.setRow(0, 0, B11111110);  //1
  LC.setRow(0, 1, B11111110);
  LC.setRow(0, 2, B11111110);
  LC.setRow(0, 3, B11111110);
  LC.setRow(0, 4, B11111110);
  LC.setRow(0, 5, B11111110);
  LC.setRow(0, 6, B11111110);
  LC.setRow(0, 7, B11111110);
 
  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);
 
  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);
 
  LC.setRow(3, 0, B01111111);
  LC.setRow(3, 1, B01111111);
  LC.setRow(3, 2, B01111111);
  LC.setRow(3, 3, B01111111);
  LC.setRow(3, 4, B01111111);
  LC.setRow(3, 5, B01111111);
  LC.setRow(3, 6, B01111111);
  LC.setRow(3, 7, B01111111);
...........................................
  LC.setRow(0, 0, B00100000);  //33
  LC.setRow(0, 1, B00100000);
  LC.setRow(0, 2, B00100000);
  LC.setRow(0, 3, B00100000);
  LC.setRow(0, 4, B00100000);
  LC.setRow(0, 5, B00100000);
  LC.setRow(0, 6, B01000000);
  LC.setRow(0, 7, B10000000);
 
  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01110010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);
 
  LC.setRow(2, 0, B10011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B10010001);
 
  LC.setRow(3, 0, B00000011);
  LC.setRow(3, 1, B00000100);
  LC.setRow(3, 2, B00000100);
  LC.setRow(3, 3, B00000100);
  LC.setRow(3, 4, B00000100);
  LC.setRow(3, 5, B00000100);
  LC.setRow(3, 6, B00000100);
  LC.setRow(3, 7, B00000011);
  delay(delayTime);
 
  LC.clearDisplay(0);
  LC.clearDisplay(1);
  LC.clearDisplay(2);
  LC.clearDisplay(3);
  }
}

 

vk007
Offline
Зарегистрирован: 16.06.2015

Для начала, избавьтесь от delay() - научитесь делать задержку через millis() (кстати, о задержках в прерываниях даже и не думайте). Потом почитайте тему Работа с кнопками. В помощь новичку. Изучите, как можно обрабатывать кнопку и назначать события при ее нажатии. Потренируйтесь сначала не на матрице, а на простом светодиоде - логика работы та же, но код не настолько загроможден и будет проще для понимания.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Doperm пишет:
Может попробовать через другие команды?
Попробуй!

inspiritus
Offline
Зарегистрирован: 17.12.2012

Для начала опубликуйте свой код в соответствии с правилами форума.

Вообщетто это обязанность модераторов прибивать такие топики!

Doperm
Offline
Зарегистрирован: 03.01.2018

vk007 "Для начала, избавьтесь от delay() - научитесь делать задержку через millis() (кстати, о задержках в прерываниях даже и не думайте). Потом почитайте тему Работа с кнопками. В помощь новичку. Изучите, как можно обрабатывать кнопку и назначать события при ее нажатии. Потренируйтесь сначала не на матрице, а на простом светодиоде - логика работы та же, но код не настолько загроможден и будет проще для понимания."

Отработка команды с кнопки занимает доли секунд, по этому это не заметно, а вот выполнение команд на матрице от начало и до конца занимает 2-3 секунды(54% использования памяти) + delay который специально заведён туда, чтобы видеть погаснет матрица или нет, вот это уже критично. Читал я и изучал тему про кнопки, и вопрос там задал, но нет там ответа как прервать выполнение команды:
Вот полный скетч:
#include "LedControl.h"

LedControl LC = LedControl(12, 11, 10, 4);
  int delayTime = 1000;
  
void setup() 
{
  LC.shutdown(0, false);
  LC.shutdown(1, false);
  LC.shutdown(2, false);
  LC.shutdown(3, false);
    
    LC.setIntensity(0, 8);
    LC.setIntensity(1, 8);
    LC.setIntensity(2, 8);
    LC.setIntensity(3, 8);
    
  LC.clearDisplay(0);
  LC.clearDisplay(1);
  LC.clearDisplay(2);
  LC.clearDisplay(3);

  pinMode(2, INPUT_PULLUP);
}

void loop()
{
  boolean button = !digitalRead(2);
  if (button ==1)
  {
  LC.setRow(0, 0, B11111110);  //1
  LC.setRow(0, 1, B11111110);
  LC.setRow(0, 2, B11111110);
  LC.setRow(0, 3, B11111110);
  LC.setRow(0, 4, B11111110);
  LC.setRow(0, 5, B11111110);
  LC.setRow(0, 6, B11111110);
  LC.setRow(0, 7, B11111110);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B01111111);
  LC.setRow(3, 1, B01111111);
  LC.setRow(3, 2, B01111111);
  LC.setRow(3, 3, B01111111);
  LC.setRow(3, 4, B01111111);
  LC.setRow(3, 5, B01111111);
  LC.setRow(3, 6, B01111111);
  LC.setRow(3, 7, B01111111);
  
  LC.setRow(0, 0, B11111101);  //2
  LC.setRow(0, 1, B11111101);
  LC.setRow(0, 2, B11111101);
  LC.setRow(0, 3, B11111101);
  LC.setRow(0, 4, B11111101);
  LC.setRow(0, 5, B11111101);
  LC.setRow(0, 6, B11111101);
  LC.setRow(0, 7, B11111101);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B10111111);
  LC.setRow(3, 1, B10111111);
  LC.setRow(3, 2, B10111111);
  LC.setRow(3, 3, B10111111);
  LC.setRow(3, 4, B10111111);
  LC.setRow(3, 5, B10111111);
  LC.setRow(3, 6, B10111111);
  LC.setRow(3, 7, B10111111);
  
  LC.setRow(0, 0, B11111011);  //3
  LC.setRow(0, 1, B11111011);
  LC.setRow(0, 2, B11111011);
  LC.setRow(0, 3, B11111011);
  LC.setRow(0, 4, B11111011);
  LC.setRow(0, 5, B11111011);
  LC.setRow(0, 6, B11111011);
  LC.setRow(0, 7, B11111011);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11011111);
  LC.setRow(3, 1, B11011111);
  LC.setRow(3, 2, B11011111);
  LC.setRow(3, 3, B11011111);
  LC.setRow(3, 4, B11011111);
  LC.setRow(3, 5, B11011111);
  LC.setRow(3, 6, B11011111);
  LC.setRow(3, 7, B11011111);
  
  LC.setRow(0, 0, B11110111);  //4
  LC.setRow(0, 1, B11110111);
  LC.setRow(0, 2, B11110111);
  LC.setRow(0, 3, B11110111);
  LC.setRow(0, 4, B11110111);
  LC.setRow(0, 5, B11110111);
  LC.setRow(0, 6, B11110111);
  LC.setRow(0, 7, B11110111);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11101111);
  LC.setRow(3, 1, B11101111);
  LC.setRow(3, 2, B11101111);
  LC.setRow(3, 3, B11101111);
  LC.setRow(3, 4, B11101111);
  LC.setRow(3, 5, B11101111);
  LC.setRow(3, 6, B11101111);
  LC.setRow(3, 7, B11101111);
  
  LC.setRow(0, 0, B11101111);  //5
  LC.setRow(0, 1, B11101111);
  LC.setRow(0, 2, B11101111);
  LC.setRow(0, 3, B11101111);
  LC.setRow(0, 4, B11101111);
  LC.setRow(0, 5, B11101111);
  LC.setRow(0, 6, B11101111);
  LC.setRow(0, 7, B11101111);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11110111);
  LC.setRow(3, 1, B11110111);
  LC.setRow(3, 2, B11110111);
  LC.setRow(3, 3, B11110111);
  LC.setRow(3, 4, B11110111);
  LC.setRow(3, 5, B11110111);
  LC.setRow(3, 6, B11110111);
  LC.setRow(3, 7, B11110111);
  
  LC.setRow(0, 0, B11011111);  //6
  LC.setRow(0, 1, B11011111);
  LC.setRow(0, 2, B11011111);
  LC.setRow(0, 3, B11011111);
  LC.setRow(0, 4, B11011111);
  LC.setRow(0, 5, B11011111);
  LC.setRow(0, 6, B11011111);
  LC.setRow(0, 7, B11011111);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11111011);
  LC.setRow(3, 1, B11111011);
  LC.setRow(3, 2, B11111011);
  LC.setRow(3, 3, B11111011);
  LC.setRow(3, 4, B11111011);
  LC.setRow(3, 5, B11111011);
  LC.setRow(3, 6, B11111011);
  LC.setRow(3, 7, B11111011);
  
  LC.setRow(0, 0, B10111111);  //7
  LC.setRow(0, 1, B10111111);
  LC.setRow(0, 2, B10111111);
  LC.setRow(0, 3, B10111111);
  LC.setRow(0, 4, B10111111);
  LC.setRow(0, 5, B10111111);
  LC.setRow(0, 6, B10111111);
  LC.setRow(0, 7, B10111111);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11111101);
  LC.setRow(3, 1, B11111101);
  LC.setRow(3, 2, B11111101);
  LC.setRow(3, 3, B11111101);
  LC.setRow(3, 4, B11111101);
  LC.setRow(3, 5, B11111101);
  LC.setRow(3, 6, B11111101);
  LC.setRow(3, 7, B11111101);

  LC.setRow(0, 0, B01111111);  //8
  LC.setRow(0, 1, B01111111);
  LC.setRow(0, 2, B01111111);
  LC.setRow(0, 3, B01111111);
  LC.setRow(0, 4, B01111111);
  LC.setRow(0, 5, B01111111);
  LC.setRow(0, 6, B01111111);
  LC.setRow(0, 7, B01111111);

  LC.setRow(1, 0, B11111111);
  LC.setRow(1, 1, B11111111);
  LC.setRow(1, 2, B11111111);
  LC.setRow(1, 3, B11111111);
  LC.setRow(1, 4, B11111111);
  LC.setRow(1, 5, B11111111);
  LC.setRow(1, 6, B11111111);
  LC.setRow(1, 7, B11111111);

  LC.setRow(2, 0, B11111111);
  LC.setRow(2, 1, B11111111);
  LC.setRow(2, 2, B11111111);
  LC.setRow(2, 3, B11111111);
  LC.setRow(2, 4, B11111111);
  LC.setRow(2, 5, B11111111);
  LC.setRow(2, 6, B11111111);
  LC.setRow(2, 7, B11111111);

  LC.setRow(3, 0, B11111110);
  LC.setRow(3, 1, B11111110);
  LC.setRow(3, 2, B11111110);
  LC.setRow(3, 3, B11111110);
  LC.setRow(3, 4, B11111110);
  LC.setRow(3, 5, B11111110);
  LC.setRow(3, 6, B11111110);
  LC.setRow(3, 7, B11111110);
  
  LC.setRow(0, 0, B11111111);  //9
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11111110);
  LC.setRow(1, 1, B11111110);
  LC.setRow(1, 2, B11111110);
  LC.setRow(1, 3, B11111110);
  LC.setRow(1, 4, B11111110);
  LC.setRow(1, 5, B11111110);
  LC.setRow(1, 6, B11111110);
  LC.setRow(1, 7, B11111110);

  LC.setRow(2, 0, B01111111);
  LC.setRow(2, 1, B01111111);
  LC.setRow(2, 2, B01111111);
  LC.setRow(2, 3, B01111111);
  LC.setRow(2, 4, B01111111);
  LC.setRow(2, 5, B01111111);
  LC.setRow(2, 6, B01111111);
  LC.setRow(2, 7, B01111111);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);
  
  LC.setRow(0, 0, B11111111);  //10
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11111101);
  LC.setRow(1, 1, B11111101);
  LC.setRow(1, 2, B11111101);
  LC.setRow(1, 3, B11111101);
  LC.setRow(1, 4, B11111101);
  LC.setRow(1, 5, B11111101);
  LC.setRow(1, 6, B11111101);
  LC.setRow(1, 7, B11111101);

  LC.setRow(2, 0, B10111111);
  LC.setRow(2, 1, B10111111);
  LC.setRow(2, 2, B10111111);
  LC.setRow(2, 3, B10111111);
  LC.setRow(2, 4, B10111111);
  LC.setRow(2, 5, B10111111);
  LC.setRow(2, 6, B10111111);
  LC.setRow(2, 7, B10111111);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);
  
  LC.setRow(0, 0, B11111111);  //11
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11111011);
  LC.setRow(1, 1, B11111011);
  LC.setRow(1, 2, B11111011);
  LC.setRow(1, 3, B11111011);
  LC.setRow(1, 4, B11111011);
  LC.setRow(1, 5, B11111011);
  LC.setRow(1, 6, B11111011);
  LC.setRow(1, 7, B11111011);

  LC.setRow(2, 0, B11011111);
  LC.setRow(2, 1, B11011111);
  LC.setRow(2, 2, B11011111);
  LC.setRow(2, 3, B11011111);
  LC.setRow(2, 4, B11011111);
  LC.setRow(2, 5, B11011111);
  LC.setRow(2, 6, B11011111);
  LC.setRow(2, 7, B11011111);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);
  
  LC.setRow(0, 0, B11111111);  //12
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11110111);
  LC.setRow(1, 1, B11110111);
  LC.setRow(1, 2, B11110111);
  LC.setRow(1, 3, B11110111);
  LC.setRow(1, 4, B11110111);
  LC.setRow(1, 5, B11110111);
  LC.setRow(1, 6, B11110111);
  LC.setRow(1, 7, B11110111);

  LC.setRow(2, 0, B11101111);
  LC.setRow(2, 1, B11101111);
  LC.setRow(2, 2, B11101111);
  LC.setRow(2, 3, B11101111);
  LC.setRow(2, 4, B11101111);
  LC.setRow(2, 5, B11101111);
  LC.setRow(2, 6, B11101111);
  LC.setRow(2, 7, B11101111);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);

  LC.setRow(0, 0, B11111111);  //13
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11101111);
  LC.setRow(1, 1, B11101111);
  LC.setRow(1, 2, B11101111);
  LC.setRow(1, 3, B11101111);
  LC.setRow(1, 4, B11101111);
  LC.setRow(1, 5, B11101111);
  LC.setRow(1, 6, B11101111);
  LC.setRow(1, 7, B11101111);

  LC.setRow(2, 0, B11110111);
  LC.setRow(2, 1, B11110111);
  LC.setRow(2, 2, B11110111);
  LC.setRow(2, 3, B11110111);
  LC.setRow(2, 4, B11110111);
  LC.setRow(2, 5, B11110111);
  LC.setRow(2, 6, B11110111);
  LC.setRow(2, 7, B11110111);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);
  
  LC.setRow(0, 0, B11111111);  //14
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B11011111);
  LC.setRow(1, 1, B11011111);
  LC.setRow(1, 2, B11011111);
  LC.setRow(1, 3, B11011111);
  LC.setRow(1, 4, B11011111);
  LC.setRow(1, 5, B11011111);
  LC.setRow(1, 6, B11011111);
  LC.setRow(1, 7, B11011111);

  LC.setRow(2, 0, B11111011);
  LC.setRow(2, 1, B11111011);
  LC.setRow(2, 2, B11111011);
  LC.setRow(2, 3, B11111011);
  LC.setRow(2, 4, B11111011);
  LC.setRow(2, 5, B11111011);
  LC.setRow(2, 6, B11111011);
  LC.setRow(2, 7, B11111011);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);
 
  LC.setRow(0, 0, B11111111);  //15
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B10111111);
  LC.setRow(1, 1, B10111111);
  LC.setRow(1, 2, B10111111);
  LC.setRow(1, 3, B10111111);
  LC.setRow(1, 4, B10111111);
  LC.setRow(1, 5, B10111111);
  LC.setRow(1, 6, B10111111);
  LC.setRow(1, 7, B10111111);

  LC.setRow(2, 0, B11111101);
  LC.setRow(2, 1, B11111101);
  LC.setRow(2, 2, B11111101);
  LC.setRow(2, 3, B11111101);
  LC.setRow(2, 4, B11111101);
  LC.setRow(2, 5, B11111101);
  LC.setRow(2, 6, B11111101);
  LC.setRow(2, 7, B11111101);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);

  LC.setRow(0, 0, B11111111);  //16
  LC.setRow(0, 1, B11111111);
  LC.setRow(0, 2, B11111111);
  LC.setRow(0, 3, B11111111);
  LC.setRow(0, 4, B11111111);
  LC.setRow(0, 5, B11111111);
  LC.setRow(0, 6, B11111111);
  LC.setRow(0, 7, B11111111);

  LC.setRow(1, 0, B01111111);
  LC.setRow(1, 1, B01111111);
  LC.setRow(1, 2, B01111111);
  LC.setRow(1, 3, B01111111);
  LC.setRow(1, 4, B01111111);
  LC.setRow(1, 5, B01111111);
  LC.setRow(1, 6, B01111111);
  LC.setRow(1, 7, B01111111);

  LC.setRow(2, 0, B11111110);
  LC.setRow(2, 1, B11111110);
  LC.setRow(2, 2, B11111110);
  LC.setRow(2, 3, B11111110);
  LC.setRow(2, 4, B11111110);
  LC.setRow(2, 5, B11111110);
  LC.setRow(2, 6, B11111110);
  LC.setRow(2, 7, B11111110);

  LC.setRow(3, 0, B11111111);
  LC.setRow(3, 1, B11111111);
  LC.setRow(3, 2, B11111111);
  LC.setRow(3, 3, B11111111);
  LC.setRow(3, 4, B11111111);
  LC.setRow(3, 5, B11111111);
  LC.setRow(3, 6, B11111111);
  LC.setRow(3, 7, B11111111);

  LC.setRow(0, 0, B00000000);  //17
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B10000000);
  LC.setRow(1, 1, B10000000);
  LC.setRow(1, 2, B10000000);
  LC.setRow(1, 3, B10000000);
  LC.setRow(1, 4, B10000000);
  LC.setRow(1, 5, B10000000);
  LC.setRow(1, 6, B10000000);
  LC.setRow(1, 7, B10000000);

  LC.setRow(2, 0, B00000001);
  LC.setRow(2, 1, B00000001);
  LC.setRow(2, 2, B00000001);
  LC.setRow(2, 3, B00000001);
  LC.setRow(2, 4, B00000001);
  LC.setRow(2, 5, B00000001);
  LC.setRow(2, 6, B00000001);
  LC.setRow(2, 7, B00000001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //18
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B01000000);
  LC.setRow(1, 1, B01000000);
  LC.setRow(1, 2, B01000000);
  LC.setRow(1, 3, B01000000);
  LC.setRow(1, 4, B01000000);
  LC.setRow(1, 5, B01000000);
  LC.setRow(1, 6, B01000000);
  LC.setRow(1, 7, B01000000);

  LC.setRow(2, 0, B00000010);
  LC.setRow(2, 1, B00000011);
  LC.setRow(2, 2, B00000011);
  LC.setRow(2, 3, B00000011);
  LC.setRow(2, 4, B00000010);
  LC.setRow(2, 5, B00000010);
  LC.setRow(2, 6, B00000010);
  LC.setRow(2, 7, B00000011);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //19
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00100000);
  LC.setRow(1, 1, B00100000);
  LC.setRow(1, 2, B00100000);
  LC.setRow(1, 3, B01100000);
  LC.setRow(1, 4, B00100000);
  LC.setRow(1, 5, B00100000);
  LC.setRow(1, 6, B00100000);
  LC.setRow(1, 7, B00100000);

  LC.setRow(2, 0, B00000110);
  LC.setRow(2, 1, B00000101);
  LC.setRow(2, 2, B00000101);
  LC.setRow(2, 3, B00000101);
  LC.setRow(2, 4, B00000110);
  LC.setRow(2, 5, B00000100);
  LC.setRow(2, 6, B00000110);
  LC.setRow(2, 7, B00000101);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //20
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00010000);
  LC.setRow(1, 1, B00010000);
  LC.setRow(1, 2, B00010000);
  LC.setRow(1, 3, B01110000);
  LC.setRow(1, 4, B00010000);
  LC.setRow(1, 5, B00010000);
  LC.setRow(1, 6, B00010000);
  LC.setRow(1, 7, B00010000);

  LC.setRow(2, 0, B00001110);
  LC.setRow(2, 1, B00001001);
  LC.setRow(2, 2, B00001001);
  LC.setRow(2, 3, B00001001);
  LC.setRow(2, 4, B00001110);
  LC.setRow(2, 5, B00001100);
  LC.setRow(2, 6, B00001010);
  LC.setRow(2, 7, B00001001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //21
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00001000);
  LC.setRow(1, 1, B00001000);
  LC.setRow(1, 2, B00001000);
  LC.setRow(1, 3, B01111000);
  LC.setRow(1, 4, B00001000);
  LC.setRow(1, 5, B00001000);
  LC.setRow(1, 6, B00001000);
  LC.setRow(1, 7, B00001000);

  LC.setRow(2, 0, B00011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B00010001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //22
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00000100);
  LC.setRow(1, 1, B00000100);
  LC.setRow(1, 2, B00000100);
  LC.setRow(1, 3, B01111100);
  LC.setRow(1, 4, B00000100);
  LC.setRow(1, 5, B00000100);
  LC.setRow(1, 6, B00000100);
  LC.setRow(1, 7, B00000100);

  LC.setRow(2, 0, B00111110);
  LC.setRow(2, 1, B00110001);
  LC.setRow(2, 2, B00110001);
  LC.setRow(2, 3, B00110001);
  LC.setRow(2, 4, B00111110);
  LC.setRow(2, 5, B00110100);
  LC.setRow(2, 6, B00110010);
  LC.setRow(2, 7, B00110001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //23
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000010);
  LC.setRow(1, 7, B00000010);

  LC.setRow(2, 0, B01011110);
  LC.setRow(2, 1, B01010001);
  LC.setRow(2, 2, B01010001);
  LC.setRow(2, 3, B01010001);
  LC.setRow(2, 4, B01011110);
  LC.setRow(2, 5, B01010100);
  LC.setRow(2, 6, B01010010);
  LC.setRow(2, 7, B01010001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B00000000);  //24
  LC.setRow(0, 1, B00000000);
  LC.setRow(0, 2, B00000000);
  LC.setRow(0, 3, B00000000);
  LC.setRow(0, 4, B00000000);
  LC.setRow(0, 5, B00000000);
  LC.setRow(0, 6, B00000000);
  LC.setRow(0, 7, B00000000);

  LC.setRow(1, 0, B00000011);
  LC.setRow(1, 1, B00000011);
  LC.setRow(1, 2, B00000011);
  LC.setRow(1, 3, B01111011);
  LC.setRow(1, 4, B00000011);
  LC.setRow(1, 5, B00000011);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000001);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B10010001);
  LC.setRow(2, 2, B10010001);
  LC.setRow(2, 3, B10010001);
  LC.setRow(2, 4, B10011110);
  LC.setRow(2, 5, B10010100);
  LC.setRow(2, 6, B10010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00000000);
  LC.setRow(3, 1, B00000000);
  LC.setRow(3, 2, B00000000);
  LC.setRow(3, 3, B00000000);
  LC.setRow(3, 4, B00000000);
  LC.setRow(3, 5, B00000000);
  LC.setRow(3, 6, B00000000);
  LC.setRow(3, 7, B00000000);

  LC.setRow(0, 0, B10000000);  //25
  LC.setRow(0, 1, B10000000);
  LC.setRow(0, 2, B10000000);
  LC.setRow(0, 3, B10000000);
  LC.setRow(0, 4, B10000000);
  LC.setRow(0, 5, B10000000);
  LC.setRow(0, 6, B10000000);
  LC.setRow(0, 7, B10000000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00000001);
  LC.setRow(3, 1, B00000001);
  LC.setRow(3, 2, B00000001);
  LC.setRow(3, 3, B00000001);
  LC.setRow(3, 4, B00000001);
  LC.setRow(3, 5, B00000001);
  LC.setRow(3, 6, B00000001);
  LC.setRow(3, 7, B00000001);

  LC.setRow(0, 0, B01000000);  //26
  LC.setRow(0, 1, B01000000);
  LC.setRow(0, 2, B01000000);
  LC.setRow(0, 3, B01000000);
  LC.setRow(0, 4, B01000000);
  LC.setRow(0, 5, B01000000);
  LC.setRow(0, 6, B01000000);
  LC.setRow(0, 7, B11000000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00000011);
  LC.setRow(3, 1, B00000010);
  LC.setRow(3, 2, B00000010);
  LC.setRow(3, 3, B00000010);
  LC.setRow(3, 4, B00000010);
  LC.setRow(3, 5, B00000010);
  LC.setRow(3, 6, B00000010);
  LC.setRow(3, 7, B00000011);

  LC.setRow(0, 0, B00100000);  //27
  LC.setRow(0, 1, B00100000);
  LC.setRow(0, 2, B00100000);
  LC.setRow(0, 3, B00100000);
  LC.setRow(0, 4, B00100000);
  LC.setRow(0, 5, B00100000);
  LC.setRow(0, 6, B01100000);
  LC.setRow(0, 7, B10100000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00000111);
  LC.setRow(3, 1, B00000100);
  LC.setRow(3, 2, B00000100);
  LC.setRow(3, 3, B00000100);
  LC.setRow(3, 4, B00000100);
  LC.setRow(3, 5, B00000100);
  LC.setRow(3, 6, B00000100);
  LC.setRow(3, 7, B00000111);

  LC.setRow(0, 0, B00110000);  //28
  LC.setRow(0, 1, B00110000);
  LC.setRow(0, 2, B00110000);
  LC.setRow(0, 3, B00110000);
  LC.setRow(0, 4, B00110000);
  LC.setRow(0, 5, B00110000);
  LC.setRow(0, 6, B01010000);
  LC.setRow(0, 7, B10010000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00001011);
  LC.setRow(3, 1, B00001100);
  LC.setRow(3, 2, B00001100);
  LC.setRow(3, 3, B00001100);
  LC.setRow(3, 4, B00001100);
  LC.setRow(3, 5, B00001100);
  LC.setRow(3, 6, B00001100);
  LC.setRow(3, 7, B00001011);

  LC.setRow(0, 0, B00101000);  //29
  LC.setRow(0, 1, B00101000);
  LC.setRow(0, 2, B00101000);
  LC.setRow(0, 3, B00101000);
  LC.setRow(0, 4, B00101000);
  LC.setRow(0, 5, B00101000);
  LC.setRow(0, 6, B01001000);
  LC.setRow(0, 7, B10001000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00010011);
  LC.setRow(3, 1, B00010100);
  LC.setRow(3, 2, B00010100);
  LC.setRow(3, 3, B00010100);
  LC.setRow(3, 4, B00010100);
  LC.setRow(3, 5, B00010100);
  LC.setRow(3, 6, B00010100);
  LC.setRow(3, 7, B00010011);

  LC.setRow(0, 0, B00100100);  //30
  LC.setRow(0, 1, B00100100);
  LC.setRow(0, 2, B00100100);
  LC.setRow(0, 3, B00100100);
  LC.setRow(0, 4, B00100100);
  LC.setRow(0, 5, B00100100);
  LC.setRow(0, 6, B01000100);
  LC.setRow(0, 7, B10000100);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00100011);
  LC.setRow(3, 1, B00100100);
  LC.setRow(3, 2, B00100100);
  LC.setRow(3, 3, B00100100);
  LC.setRow(3, 4, B00100100);
  LC.setRow(3, 5, B00100100);
  LC.setRow(3, 6, B00100100);
  LC.setRow(3, 7, B00100011);

  LC.setRow(0, 0, B00100010);  //31
  LC.setRow(0, 1, B00100010);
  LC.setRow(0, 2, B00100010);
  LC.setRow(0, 3, B00100010);
  LC.setRow(0, 4, B00100010);
  LC.setRow(0, 5, B00100010);
  LC.setRow(0, 6, B01000010);
  LC.setRow(0, 7, B10000010);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B01000011);
  LC.setRow(3, 1, B01000100);
  LC.setRow(3, 2, B01000100);
  LC.setRow(3, 3, B01000100);
  LC.setRow(3, 4, B01000100);
  LC.setRow(3, 5, B01000100);
  LC.setRow(3, 6, B01000100);
  LC.setRow(3, 7, B01000011);

  LC.setRow(0, 0, B00100001);  //32
  LC.setRow(0, 1, B00100001);
  LC.setRow(0, 2, B00100001);
  LC.setRow(0, 3, B00100001);
  LC.setRow(0, 4, B00100001);
  LC.setRow(0, 5, B00100001);
  LC.setRow(0, 6, B01000001);
  LC.setRow(0, 7, B10000001);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B10000011);
  LC.setRow(3, 1, B10000100);
  LC.setRow(3, 2, B10000100);
  LC.setRow(3, 3, B10000100);
  LC.setRow(3, 4, B10000100);
  LC.setRow(3, 5, B10000100);
  LC.setRow(3, 6, B10000100);
  LC.setRow(3, 7, B10000011);

  LC.setRow(0, 0, B00100000);  //33
  LC.setRow(0, 1, B00100000);
  LC.setRow(0, 2, B00100000);
  LC.setRow(0, 3, B00100000);
  LC.setRow(0, 4, B00100000);
  LC.setRow(0, 5, B00100000);
  LC.setRow(0, 6, B01000000);
  LC.setRow(0, 7, B10000000);

  LC.setRow(1, 0, B00000010);
  LC.setRow(1, 1, B00000010);
  LC.setRow(1, 2, B00000010);
  LC.setRow(1, 3, B01111010);
  LC.setRow(1, 4, B00000010);
  LC.setRow(1, 5, B00000010);
  LC.setRow(1, 6, B00000001);
  LC.setRow(1, 7, B00000000);

  LC.setRow(2, 0, B11011110);
  LC.setRow(2, 1, B00010001);
  LC.setRow(2, 2, B00010001);
  LC.setRow(2, 3, B00010001);
  LC.setRow(2, 4, B00011110);
  LC.setRow(2, 5, B00010100);
  LC.setRow(2, 6, B00010010);
  LC.setRow(2, 7, B11010001);

  LC.setRow(3, 0, B00000011);
  LC.setRow(3, 1, B00000100);
  LC.setRow(3, 2, B00000100);
  LC.setRow(3, 3, B00000100);
  LC.setRow(3, 4, B00000100);
  LC.setRow(3, 5, B00000100);
  LC.setRow(3, 6, B00000100);
  LC.setRow(3, 7, B00000011);
  delay(delayTime);
 
  LC.clearDisplay(0);
  LC.clearDisplay(1);
  LC.clearDisplay(2);
  LC.clearDisplay(3);
  }
}

Почитав форумы и поработав с командами в скетче сделал вывод: что не возможно остановить. Единственное это пробовать при каждом пакете bytОВ в команде опрашивать pin и шагать на следующий пакет.

 

inspiritus *Для начала опубликуйте свой код в соответствии с правилами форума.

Вообщетто это обязанность модераторов прибивать такие топики*

Вообще_Т_то в первую очередь обязанность модераторов хотя бы ввести кнопку "редактирования", чтобы человек увидев свои ошибки мог их исправить.

 

Ворота *Попробуй!*

То чувство, как будто на сборище малолеток в ютубе нарвался...

Можете не отвечать, поищу на других сайтах, на которых большие дяди общаются.

vk007
Offline
Зарегистрирован: 16.06.2015

Doperm пишет:

Можете не отвечать, поищу на других сайтах, на которых большие дяди общаются.

На нет и суда нет. Но с таким подходом к выводу информации на матрицы вам и "на других сайтах, на которых большие дяди общаются" не помогут.

О массивах и циклах while слышали? Так вот, они сами сюда напрашиваются.

Примерная структура того, что должно получиться (пример только для понимания):

i = 0;
while (digitalRead(2)/*не нажата кнопка*/ && i < sizeof(data)/*не закончилась информация для вывода из массива*/)
{
  LC.setRow(x, y, data[i++]);
}

upd. Бонусом еще одна подсказка, что касается вычисления x и y в даном случае. Есть такой оператор %, подумайте, как его можно применить.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Doperm пишет:

Читал я и изучал тему про кнопки, и вопрос там задал, но нет там ответа как прервать выполнение команды...

И не должгно быть.

Вы неправильно вопрос ставите: Вам нужна мгновенная реакция на нажатие кнопки а вмеато этого Вы ищете, как прервать выполнение команды.

 

И по поводу массивов/циклов - совершенно справедливое замечание:

1. Просто неприлично писать 1200 строк там, где достаточно 50.

2. Как только Вы перепишете программу с использованием массивов и циклов, Вы сразу поймете, как ее просто подправить для выполнения Ваших требований.

Doperm
Offline
Зарегистрирован: 03.01.2018

Оказалось всё намного проще:

используем команду прерывания attachInterrupt и очистку дисплея LC.clearDisplay на матрице, и туда закидываем "програмный сброс"

1 void(* resetFunc) (void) = 0; // Reset MC function
2  
3 resetFunc(); //вызов

и вуаля при отпускании кнопки, матрица гаснет и выполнение команд прерывается, спасибо пользователю chervyachok

b707
Offline
Зарегистрирован: 26.05.2017

Doperm пишет:

Оказалось всё намного проще:

это не "проще", это костыль. Условно говоря. вместо того, чтобы пульт починить, вы телевизор выключаете выдергиванием из розетки.

А код так и остался в 1200 тупых повторяющихся строк? Самому не противно? "Взрослые дяди" так не пишут.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Doperm пишет:

Оказалось всё намного проще:

используем команду прерывания attachInterrupt и очистку дисплея LC.clearDisplay на матрице, и туда закидываем "програмный сброс"

У вас же там есть LC.shutdown(0, false);, сделайте LC.shutdown(0, true); в тот самый момент, когда...

Doperm
Offline
Зарегистрирован: 03.01.2018

 b707 "А код так и остался в 1200 тупых повторяющихся строк? Самому не противно? "Взрослые дяди" так не пишут." нет не противно, я его 1 раз вшил в ардуино, и вообще забыл про него, пусть работает в заднем повторителе стоп сигнала, цель выполнена. Да и если нужно, я в любом месте могу зажечь пиксель поменяв 0 на 1, а не ломать голову на сколько мне надо павысить i.

ЗЫ будет время может и поковыряюсь, однако ИМХО ваши циклы я воспринимаю так:

для чего считать: 1+1=2, 2+1=3, 3+1=4 и т.д, когда можно тупо сказать 2, 3, 4...не тратя время и память ардуино на математические вычисления. Для чего шифровать информацию, при этом ломая свой мозг, для того, что бы потом ардуино всё это расшифровывал...бред. Повторюсь ИМХО.

sadman41 "У вас же там есть LC.shutdown(0, false);, сделайте LC.shutdown(0, true); в тот самый момент, когда..." спасибо, интересное решение...надо попробовать :-)