這裏有一堆這樣的問題,我不能很好的指出這個問題 - 我希望得到一個更清晰的答案(例如,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