Hi,
I tried to use a 2D array combined with a for-loop. Nothing special.
But it seems like I'm unable to write data into the array (pointer?). For example:
Array[0][0] = 100.0;
Serial.print(Array[0][0]); //-> returns 0 instead of 100.0
Here is the piece of code that doesn't work:
int counter_1;
int counter_2;
int plotter_max = 90;
int plotter_min = -90;
float acc_y, acc_x, acc_z,
gy_y, gy_x, gy_z,
acc_pitch_calc, acc_roll_calc, acc_yaw_calc,
acc_pitch_fil_new, acc_roll_fil_new, acc_yaw_fil_new,
acc_pitch_fil_old, acc_roll_fil_old, acc_yaw_fil_old,
pitch_multiplied, roll_multiplied, yaw_multiplied,
pitch_normalized, roll_normalized, yaw_normalized,
pitch_mapped, roll_mapped, yaw_mapped,
pitch_to_servo, roll_to_servo, yaw_to_servo,
pitch, roll, yaw,
last_pitch, last_roll, last_yaw;
const int max_lines = 6;
const int max_columns = 3;
const int multiplied_line = 0;
const int normalized_line = 1;
const int mapped_line = 2;
const int to_servo_line = 3;
const int actual_value_line = 4;
const int last_value_line = 5;
float alignment_array[max_lines][max_columns] = {
{pitch_multiplied, roll_multiplied, yaw_multiplied},
{pitch_normalized, roll_normalized, yaw_normalized},
{pitch_mapped, roll_mapped, yaw_mapped},
{pitch_to_servo, roll_to_servo, yaw_to_servo},
{pitch, roll, yaw},
{last_pitch, last_roll, last_yaw}
};
void setup(){
Serial.begin(9600);
}
void loop(){
pitch = 123.0;
for (counter_1 = 0; counter_1 < max_columns; counter_1++) {
alignment_array[multiplied_line][counter_1] = alignment_array[actual_value_line][counter_1] * 100.0;
if (counter_1 == 0 || counter_1 == 2) {
alignment_array[mapped_line][counter_1] = map(alignment_array[multiplied_line][counter_1], 0, 18000, 18000, 0);
}
else {
if (alignment_array[actual_value_line][counter_1] > 0.0 && alignment_array[actual_value_line][counter_1] < 90.0) {
alignment_array[mapped_line][counter_1] = map(alignment_array[multiplied_line][counter_1], 9000, 0, 0, 9000);
}
else if (alignment_array[actual_value_line][counter_1] < 0.0 && alignment_array[actual_value_line][counter_1] > -90.0) {
alignment_array[mapped_line][counter_1] = map(alignment_array[multiplied_line][counter_1], 0, -9000, 9000, 18000);
}
}
alignment_array[normalized_line][counter_1] = alignment_array[mapped_line][counter_1] / 100.0;
}
Serial.print('\t');
Serial.print(pitch);
Serial.print('\t');
Serial.print(alignment_array[0][0]);
Serial.print('\t');
Serial.print(roll_multiplied);
Serial.print('\t');
Serial.print(yaw_multiplied);
Serial.println('\t');
}
I'm using a Nano 33 BLE.