这里有一堆这样的问题,我不能很好的指出这个问题 - 我希望得到一个更清晰的答案(例如,Array of pointers to arrays很接近,我可以'使它与typedef一起工作)。解引用阵列数组的元素
该代码为一组LED定义了一组动画序列。要输出的值是根据序列,硬件模型和序列中的阶段来选择的。我很想重复每个序列的for循环,但我可能会再次使用它并可能在这里学到一些东西。
基于打印值,我没有得到我期望的*(序列[模式])[模型] [前期] [ix]。我错过了什么?
void sequence(unsigned char reset, t_mode mode, unsigned char delaydiv4)
{
typedef signed char seq_t[2][8][10];
const seq_t centreSequence = {
{
{ZERO_LEFT_2, ZERO_RIGHT_2, -1},
.
{-1},
},
{
{ONE_LEFT_2, ONE_RIGHT_2, -1},
.
{-1},
},
};
const seq_t leftSequence = {
{
{ZERO_RIGHT_2, -1},
.
{ZERO_LEFT_TOP, ZERO_LEFT_BOT, -1},
},
{
{ONE_RIGHT_2, -1},
.
{ONE_LEFT_TOP, ONE_LEFT_BOT, -1},
},
};
const seq_t rightSequence = {
{
{ZERO_RIGHT_2, -1},
.
.
{ZERO_LEFT_TOP, ZERO_LEFT_BOT, -1},
},
{
{ONE_RIGHT_2, -1},
.
.
{ONE_LEFT_TOP, ONE_LEFT_BOT, -1},
},
};
const seq_t* sequences[] = {&leftSequence, &rightSequence, ¢reSequence};
static unsigned char stage;
static unsigned char prevstage;
const unsigned char model = 0;
if (reset != 0)
{
stage = 1;
prevstage = 0;
}
for (unsigned ix=0; sequences[mode][model][prevstage][ix] != -1; ++ix)
{
digitalWrite(*(sequences[mode])[model][prevstage][ix], 0);
}
好图......你正在使用的工具。 –
@GrijeshChauhan油漆:D变化快,免费! – amfad33
*非常不同! :| – amfad33