여기에 많은 질문이 있습니다. 이걸 제대로 처리 할 수는 없지만 - 더 명확한 대답을 원합니다 (예 : Array of pointers to arrays 가까이 있습니다. typedef와 함께 작동하게하십시오).배열 배열 원소를 역 참조하는 것
이 코드는 일련의 LED에 대한 일련의 애니메이션 시퀀스를 정의합니다. 출력 될 값은 순서, 하드웨어 모델 및 순서의 단계에 따라 선택됩니다. 나는 각 시퀀스에 대해 for 루프를 반복하도록 유혹을 받았지만, 아마도 이것을 다시 사용하고 여기서도 배울 수있을 것이다.
값을 인쇄 할 때, 나는 예상 한 것을 얻지 못했다. (시퀀스 [모드]) [모델] [prevstage] [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