0

我正在尝试制作 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]);
    }
}
4

1 回答 1

1

您不应该在 AVR/Arduinos 上使用动态大小的数组。

使用固定大小(例如,您期望的最大 y 和 SCREEN_WIDTH)初始化 for() 之外的数组。例如:

uint16_t buf[128][128];

并注意不要超过可用的 RAM(它就像 2kByte)。

于 2013-09-09T15:56:49.290 回答