【发布时间】:2015-03-01 06:27:23
【问题描述】:
我有几个 const int 二维数组全局存储在 PROGMEM 中。例如:
const int image1[][17]PROGMEM = {
{1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0},
{1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0},
{1,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0}
}
我想在一个函数中读出这个二维图像数组。应在参数中指定要读取的图像。
void printImage(image)
{
// do something with element i,j of image
pgm_read_byte(image[i][j])
}
我对指针等的使用不是很熟练,但我知道这是这样做的方法。你能告诉我如何让它工作吗?
我现在是怎么做的;我有没有任何参数的函数 printImage1(),并且在我使用的主体函数中:
pgm_read_byte(&image1[i][j])
读出image1。对于 image2、image3 等。我复制函数 printImage1 并将 image1 从上面更改为 image2、image3 等。这是冗余编程,这就是为什么我想只使用一个函数 printImage 在参数中指定图像。
【问题讨论】:
-
所有图片的尺寸都一样吗?