Глюк с массивами и выводом их на экран

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

Есть массивы строк. Обьявлены в инициализации. До сетап и луп.

 

String menuMASS0[] = {"  "+BATTERY()+print2dig(DS_READ(1))+":"+print2dig(DS_READ(2)),
                  "MAIN MENU:",
                  "DHT MENU:",
                  "CLOCK MENU (DS1307):"
                };

 

И их вызов. После loop() в отдельной функции.

lcd.setCursor(0, 0);
lcd.print(menuMASS0[x]);

Суть в том, что когда заполнение массива происходит из той же функции, где и вызов - все ОК.

а когда заполнение так, как указано выше(до setup), экран выдает две черные полосы и я так понял, даже в loop не входит. потому что у мення там включение подсветки, а она не включается.

Не знаю, что делать. Все функции в массиве обьявлены после loop.

 

Araris
Offline
Зарегистрирован: 09.11.2012

Попробуйте заполнять до setup(), но вместо "  "+BATTERY()+print2dig(DS_READ(1))+":"+print2dig(DS_READ(2)) временно поставьте какой-нибудь текст в кавычках. 

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

так сработало)) в принципе была идея, что в том месте функций еще как бы нет. а вот как теперь сделать так, чтобы он их увидел?

Araris
Offline
Зарегистрирован: 09.11.2012

В этом месте - никак.

А в другом месте написать menuMASS0[0] = "  "+BATTERY()+print2dig(DS_READ(1))+":"+print2dig(DS_READ(2)); - запросто.

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

ммм.. Просто смотри.. у меня щас все работает, но получается, что при вызове функции каждый раз заполняется массив. А его можно в setup скинуть?

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

ну то есть один раз его заполнить, а потом уже опрашивать? например до setup инициализировать. в setup заполнить, а потом уже обращаться?

Araris
Offline
Зарегистрирован: 09.11.2012

А отчего бы просто не попробовать ? Всё получится.

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

Я оставил как есть. Иначе не обновляются показатели.

Mr.z5006
Offline
Зарегистрирован: 28.12.2015

Спасибо за помощь))