Я работаю над несколькими различными анимациями LED Tower. Текущий подход состоит в том, чтобы инициализировать 2D-массив с определенными значениями и скопировать их в глобальный 2D-массив, который используется для обновления отображения. Однако каждая функция, содержащая двумерный массив без знака [15] [4] байтов, занимает много места для данных. Я хотел бы спросить, как правильно переопределить глобальный массив из функции без необходимости инициализировать новый для каждой анимации.
const int BYTES = 4; // bytes per layer
const int LAYERS = 15; // height of the tower
unsigned char LED_Buffer[15][4] = {0}; // global array
void someFunc(void){
unsigned char buffer[15][4] =
{
0x03, 0x03, 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, 0x0c, 0x0c, 0x0c, 0x0c,
0x18, 0x18, 0x18, 0x18, 0x30, 0x30, 0x30, 0x30, 0x60, 0x60, 0x60, 0x60,
0xc0, 0xc0, 0xc0, 0xc0, 0x81, 0x81, 0x81, 0x81, 0xc0, 0xc0, 0xc0, 0xc0,
0x60, 0x60, 0x60, 0x60, 0x30, 0x30, 0x30, 0x30, 0x18, 0x18, 0x18, 0x18,
0x0c, 0x0c, 0x0c, 0x0c, 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x03, 0x03
};
for (int y = 0; y < LAYERS; y++)
{
for (int x = 0; x < BYTES; x++)
{
LED_Buffer[y][x] = buffer[y][x];
}
}
// animation code
// ...
}