I'm declaring a 2D array of integers and incrementing a counter from 0-7. Then I'm trying to read back the corresponding elements of each row of the array separately. I'm getting the correct values back from the second row, but random values from the first.
Here's the code:
const int ditArray[2][8] = {
{300, 300, 300, 300, 300, 300, 300, 1000},
{1, 0, 2, 0, 3, 0, 4, 0}
};
//Initialise other array-related stuff
int currentElement = 0;
void setup() {
//Initialise comms to the serial monitor
Serial.begin(9600);
}
void loop() {
//Get elements from array
Serial.print("From [currentElement][0]: ");
Serial.println(ditArray[currentElement][0]);
Serial.print("From [1][currentElement]: ");
Serial.println(ditArray[1][currentElement]);
Serial.print("currentElement: ");
Serial.println(currentElement);
Serial.println();
//Increment the array
if (currentElement >= 7) {
currentElement = 0;
}
else {
currentElement = currentElement + 1;
}
//Stability delay
delay(1000);
}
This is returning the following:
From [currentElement][0]: 300
From [1][currentElement]: 1
currentElement: 0
From [currentElement][0]: 1
From [1][currentElement]: 0
currentElement: 1
From [currentElement][0]: 2573
From [1][currentElement]: 2
currentElement: 2
From [currentElement][0]: 27717
From [1][currentElement]: 0
currentElement: 3
From [currentElement][0]: 28015
From [1][currentElement]: 3
currentElement: 4
From [currentElement][0]: 28005
From [1][currentElement]: 0
currentElement: 5
From [currentElement][0]: 27717
From [1][currentElement]: 4
currentElement: 6
From [currentElement][0]: 15616
From [1][currentElement]: 0
currentElement: 7
As you can see, ditArray[1][currentElement] works but ditArray[currentElement][0] doesn't.
I'm really confused. I've been trawling the forums for hours now but I just haven't been able to find anyone else with the same problem. Any insight would be greatly appreciated, I'm fairly new to programming in general so I'm sure it's a beginners mistake that I just can't see!