我正在尝试制作buf []二维数组我没有收到任何错误,但它没有向屏幕输出任何内容。
int LoadImage(const char getFileName[],int width,int height, int xPOS, int yPOS)
{
#define SCREEN_WIDTH width
File file = SD.open(getFileName);
for (int y = 0; y < height && file.available(); y++) {
//Serial.println(y);
uint16_t buf[y][SCREEN_WIDTH];
for (int x = SCREEN_WIDTH - 1; x >= 0; x--) {
byte l = file.read();
byte h = file.read();
buf[y][x] = ((uint16_t)h << 8) | l;
}
myGLCD.drawPixelLine(xPOS, yPOS+y, SCREEN_WIDTH, buf[y]);
}
}
答案 0 :(得分:1)
你不应该在AVR / Arduinos上使用动态大小的数组。
使用固定大小(例如,您期望的最大y和SCREEN_WIDTH)初始化for()之外的数组。 e.g:
uint16_t buf[128][128];
注意不要超过可用的RAM(它只是2kByte)。