На прошлую тему не кто не отвечает По этому задам вопрос по другому: byte Y[X][8][8] = { }; ---- Какое максимальное значение X я могу задать? Или если X ограничен то как мне дальше в коде присвоить новое значение Y. К примеру: byte Y[X][8][8] = { A }; (дальнейший код) (дальнейший код) (дальнейший код) Хочу чтобы Y[X][8][8] = { B };
Или если X ограничен то как мне дальше в коде присвоить новое значение Y. К примеру: byte Y[X][8][8] = { A }; (дальнейший код) (дальнейший код) (дальнейший код) Хочу чтобы Y[X][8][8] = { B };
Теоретически любое. Практически ограничено объемом свободной части ОЗУ, доступной программе, что зависит от остальной части программы (в которой тоже может использоваться ОЗУ под переменные, стек, выделение динамической памяти) и конкретного микроконтроллера. Если переменная Y будет глобальной или static, то память под нее будет выделена в самом начале. Если локальная, то память будет выделяться в момент исполнения кода в стеке. Если рассматривать Arduino UNO, то ОЗУ там 2 Кбайт. Соответственно, в первом приближении максимальное значение 32, но из него придется вычесть пространство под другие переменные, вызовы функций и прочие накладные расходы, не забывая, что все это тратится не только кодом скетча, но и библиотеками (включая стандартную). Так что в реальности лучше не делать больше 20. Чуть улучшить дело можно используя PROGMEM. В этом случае массив будет храниться во флэше, которого в UNO уже 32К. Это в 16 раз больше (т.е. в первом приближении максимум X будет 512), но из этого объема надо не забыть вычесть остальной объем программы и 2К загрузчика). http://arduino.cc/en/Reference/PROGMEM Только, если не ошибаюсь, в PROGMEM изменять ничего уже не получится. Инициализировать надо при объявлении byte Y[X][8][8] = { 1,2,3,4,... и так далее всего 8*8*X значений }; Присвоить массиву можно поэлементно Код (Text): for (int i=0;i<X;i++) for (int j=0;j<8;j++) for (int k=0;k<8;k++) Y[i][j][k]=x; или из другого массива при помощи memcpy. Можно организовать подгрузку из SD карты (тоже пожлементно), подключив соответствующий шилд или модуль (и потратив на это память под работу библиотеки),