【问题标题】:Too many Initializers for 2D array (Arduino IDE)二维数组的初始化程序太多(Arduino IDE)
【发布时间】:2014-08-09 10:56:05
【问题描述】:

我目前正在开发一个 8x8 LED 矩阵程序,并且遇到了使用 8x10 矩阵引擎的代码。

EDIT 'A' 和 'R' 是给定的已定义字符串:

#define A     {B00000000,B00111100,B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010,B00000000}

#define R {B00000000,B00111100,B01000010,B01000010,B01000010,B01111100,B01000100,B01000010,B01000010,B00000000}

我目前正在尝试更改此行(8x10 矩阵数组)

const int numPatterns = 16;//this is the number of patterns you want to display
byte patterns[numPatterns][10]={A,R,A,R,A,R,A,R,A,R,A,R};// the patterns order

对此:

const int numPatterns = 16;//this is the number of patterns you want to display
byte patterns[numPatterns][8]={A,R,A,R,A,R,A,R,A,R};// the patterns order

但是,它继续给我一个错误,我尝试自己理解其他语言中的二维数组的概念,除了我在这个 IDE 中的基本经验,它似乎不喜欢对二维数组进行任何真正的更改。

【问题讨论】:

  • 我已经编辑了我的帖子,希望现在更有意义。

标签: arrays matrix arduino initializer


【解决方案1】:

这行得通:

#define A {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
#define R {21, 22, 23, 24, 25, 26, 27, 28, 29, 30}

const int numPatterns = 16;//this is the number of patterns you want to display
byte patterns[numPatterns][10]={A,R,A,R,A,R,A,R,A,R,A,R};// the patterns order

将“10”更改为“8”会导致错误消息。

这也有效:

#define A {1, 2, 3, 4, 5, 6, 7, 8}
#define R {21, 22, 23, 24, 25, 26, 27, 28}

const int numPatterns = 16;//this is the number of patterns you want to display
byte patterns[numPatterns][8]={A,R,A,R,A,R,A,R,A,R,A,R};// the patterns order

每个 A 和 R 中的元素数必须适合数组声明中的第二维。要减少到 8 x 8,您还必须将模式中“A”或“R”元素的总数限制为不超过 8 个。

【讨论】:

  • 抱歉忘了写“A”和“R”是什么,我怀疑这是否解决了我的问题,因为您正在重新定义“A”和“R”(我不发布他们的定义是不好的)跨度>
  • Patricia 把它钉在了头上,你的 A 和 R 元素太多了。 patterns[numPatterns][8] 的“8”部分表示 A 和 R 必须有 8 个元素,而您找到的代码定义了 10 个。
  • @user3739406 8 元素数组中的元素不能像 10 元素数组中那样多。您要么需要保持数组大小,要么重新定义 A 和 R 以适应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 2012-11-29
相关资源
最近更新 更多