arduino中的二维数组

时间:2013-09-08 19:53:41

标签: arrays arduino

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

1 个答案:

答案 0 :(得分:1)

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

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

uint16_t buf[128][128];

注意不要超过可用的RAM(它只是2kByte)。