Arduino 2D阵列太大(TFT touch lcd)

时间:2015-11-20 05:25:23

标签: c++ arrays arduino

我目前正在使用带有Arduino Mega 2560的TFTv2 Seeedstudio Shield。当我意识到没有方法可以获得像素的颜色时,我正在屏幕上画画。我的直接想法是进入库文件并添加一个方法,该方法将返回与(x, y)处的像素对应的颜色(一个整数)。屏幕上的像素数为240 * 320 = 76800.当我创建一个索引为76800的数组时,草图编译得很好:

INT16U pixels[76800];

但:

INT16U pixels[320][240];

是禁忌。

我收到一个错误,说数组大小太大了。

我在TFTv2.cpp文件中更改的唯一其他内容是setPixel(int x, int y, int color)方法,我添加了一个名为getColorAt(int x, int y)的方法,该方法返回unsigned int8。我还在TFTv2.h头文件中添加了该方法。以下是这些变化:

标题文件:

INT16U getColorAt(INT8U poX, INT8U poY);

CPP文件:

void TFT::setPixel(INT16U poX, INT16U poY,INT16U color)
{
    setXY(poX, poY);
    pixels[poX][poY] = color; //added this line myself
    sendData(color);
}

INT8U TFT::getColorAt(INT8U poX, INT8U poY)
{
    return pixels[poX][poY];
}

这有什么区别?我认为二维数组会保存相同数量的数据,而单个数组具有相同数量的索引。

任何意见都表示赞赏,如果您需要任何其他信息,请随时询问!

0 个答案:

没有答案