Я работаю над проектом Arduino, и мне было интересно, возможно ли использовать значение из массива в команде goto
.В принципе, если у меня есть массив строк, где каждый элемент соответствует метке в моем коде, есть ли способ поместить массив с соответствующим значением индекса в качестве метки для команды?Я включаю только часть своего неполного кода, чтобы, надеюсь, помочь донести свою точку зрения.
int power = 2;
String Labels[4] = {"chip_1", "chip_2", "chip_3", "end"};
chip_1: //label
power += 1;
for (int i = 0; i <= 2; i++) {
buttonState[i] = digitalRead(buttonPins[i]);
if (buttonState[i] != buttonLastState[i]){
if (buttonState[i] == HIGH) {
Serial.println("Button" + String(i) + "ON");
digitalWrite(buttonPins[i], HIGH);
}
else {
Serial.println("Button" + String(i) + "OFF");
digitalWrite(buttonPins[i], LOW);
}
buttonLastState[i] = buttonState[1];
}
}
goto Labels[power]
chip_2: //next label
В основном у меня есть несколько интегральных схем MCP23017, каждая из которых будет работать по существу одинаково для цикла for на своих соответствующих выводах.Я хочу, чтобы у меня был способ сообщить микроконтроллеру, что нужно активировать циклы for микросхем расширения в определенном порядке.Мой план состоял в том, чтобы иметь массив, который имел разные метки, чтобы я мог изменить порядок меток на основе того, какие из них использовались совсем недавно, и, таким образом, изменить порядок выполнения циклов по мере необходимости.Я не исключал, что это не нужно, но подумал, что было бы интересно попробовать.