Hello,
I have a problem with the dynamic memory of arduino atmega328...
I need to use a table with some data. For that i created a 2D array.
In this array, i need to search the position of a specific value.
To do that, i program some code... but this code use a lot of dynamic memory.
Do you have any idea, how to do the same function but with less memory?
char matrix[][4] = {
{0, 0, 0, 0},
{1, 0, 0, 1},
{2, 0, 0, 2},
{3, 0, 0, 3},
{4, 0, 0, 4},
{5, 0, 0, 5},
{6, 0, 0, 6},
{7, 0, 0, 7},
{8, 0, 0, 8},
{9, 0, 0, 9},
{10, 0, 0, 10},
{11, 0, 0, 11},
{12, 0, 0, 12},
{13, 0, 0, 13},
{14, 0, 0, 14},
{15, 0, 0, 16},
{16, 0, 0, 17},
{17, 0, 0, 18},
{18, 0, 0, 19},
{19, 0, 0, 20},
{20, 0, 0, 21},
{21, 0, 0, 22},
{22, 0, 0, 24},
{23, 0, 0, 25},
{24, 0, 0, 26},
{25, 0, 0, 27},
{26, 0, 0, 28},
{27, 0, 0, 30},
{28, 0, 0, 31},
{29, 0, 0, 32},
{30, 0, 0, 34},
{31, 0, 0, 35},
{32, 0, 0, 36},
{33, 0, 0, 38},
{34, 0, 0, 39},
{35, 0, 0, 41},
{36, 0, 0, 42},
{37, 0, 0, 44},
{38, 0, 0, 45},
{39, 0, 0, 47},
{40, 0, 0, 49},
{40, 30, 0, 50},
{41, 0, 0, 51},
{41, 30, 0, 52},
{42, 0, 0, 52},
{42, 30, 0, 53},
{43, 0, 0, 54},
{43, 30, 0, 55},
{44, 0, 0, 56},
{44, 30, 0, 57},
{45, 0, 0, 58},
{45, 30, 0, 59},
{46, 0, 1, 0},
{46, 30, 1, 1},
{47, 0, 1, 2},
{47, 30, 1, 3},
{48, 0, 1, 5},
{48, 30, 1, 6},
{49, 0, 1, 7},
{49, 30, 1, 8},
{50, 0, 1, 9},
{50, 30, 1, 10},
{51, 0, 1, 12},
{51, 30, 1, 13},
{52, 0, 1, 14},
{52, 30, 1, 15},
{53, 0, 1, 17},
{53, 30, 1, 18},
{54, 0, 1, 20},
{54, 30, 1, 22},
{55, 0, 1, 23},
{55, 30, 1, 24},
{56, 0, 1, 26},
{56, 30, 1, 27},
{57, 0, 1, 29},
{57, 30, 1, 31},
{58, 0, 1, 33},
{58, 30, 1, 34},
{59, 0, 1, 36},
{59, 30, 1, 38},
{60, 0, 1, 41},
{60, 15, 1, 42},
{60, 30, 1, 43},
{60, 45, 1, 44},
{61, 0, 1, 45},
{61, 15, 1, 46},
{61, 30, 1, 47},
{61, 45, 1, 48},
{62, 0, 1, 49},
{62, 15, 1, 50},
{62, 30, 1, 51},
{62, 45, 1, 53},
{63, 0, 1, 54},
{63, 15, 1, 55},
{63, 30, 1, 56},
{63, 45, 1, 57},
{64, 0, 1, 59},
{64, 15, 2, 0},
{64, 30, 2, 2},
{64, 45, 2, 3},
{65, 0, 2, 4},
{65, 15, 2, 6},
{65, 30, 2, 7},
{65, 45, 2, 8},
{66, 0, 2, 10},
{66, 15, 2, 11},
{66, 30, 2, 13},
{66, 45, 2, 14},
{67, 0, 2, 16},
{67, 15, 2, 18},
{67, 30, 2, 1},
{67, 45, 2, 21},
{68, 0, 2, 23},
{68, 15, 2, 25},
{68, 30, 2, 26},
{68, 45, 2, 28},
{69, 0, 2, 30},
{69, 15, 2, 32},
{69, 30, 2, 34},
{69, 45, 2, 36},
{70, 0, 2, 38},
{70, 10, 2, 40},
{70, 20, 2, 41},
{70, 30, 2, 43},
{70, 40, 2, 44},
{70, 50, 2, 46},
{71, 0, 2, 47},
{71, 10, 2, 49},
{71, 20, 2, 50},
{71, 30, 2, 52},
{71, 40, 2, 53},
{71, 50, 2, 55},
{72, 0, 2, 57},
{72, 10, 2, 59},
{72, 20, 3, 0},
{72, 30, 3, 2},
{72, 40, 3, 4},
{72, 50, 3, 6},
{73, 0, 3, 8},
{73, 10, 3, 10},
{73, 20, 3, 12},
{73, 30, 3, 14},
{73, 40, 3, 16},
{73, 50, 3, 18},
{74, 0, 3, 20},
{74, 10, 3, 22},
{74, 20, 3, 24},
{74, 30, 3, 26},
{74, 40, 3, 29},
{74, 50, 3, 31},
{75, 0, 3, 33},
{75, 10, 3, 36},
{75, 20, 3, 38},
{75, 30, 3, 41},
{75, 40, 3, 43},
{75, 50, 3, 46},
{76, 0, 3, 49},
{76, 10, 3, 51},
{76, 20, 3, 54},
{76, 30, 3, 57},
{76, 40, 4, 0},
{76, 50, 4, 3},
{77, 0, 4, 6},
{77, 10, 4, 9},
{77, 20, 4, 13},
{77, 30, 4, 16},
{77, 40, 4, 19},
{77, 50, 4, 23},
{78, 0, 4, 27},
{78, 10, 4, 30},
{78, 20, 4, 34},
{78, 30, 4, 38},
{78, 40, 4, 42},
{78, 50, 4, 46},
{79, 0, 4, 50},
{79, 10, 4, 55},
{79, 20, 4, 59},
{79, 30, 5, 4},
{79, 40, 5, 8},
{79, 50, 5, 13},
{80, 0, 5, 18},
{80, 5, 5, 21},
{80, 10, 5, 23},
{80, 15, 5, 26},
{80, 20, 5, 29},
{80, 25, 5, 31},
{80, 30, 5, 34},
{80, 35, 5, 37},
{80, 40, 5, 40},
{80, 45, 5, 43},
{80, 50, 5, 46},
{80, 55, 5, 49},
{81, 0, 5, 52},
{81, 5, 5, 55},
{81, 10, 5, 58},
{81, 15, 6, 1},
{81, 20, 6, 4},
{81, 25, 6, 8},
{81, 30, 6, 11},
{81, 35, 6, 14},
{81, 40, 6, 18},
{81, 45, 6, 21},
{81, 50, 6, 25},
{81, 55, 6, 28},
{82, 0, 6, 32},
{82, 5, 6, 36},
{82, 10, 6, 40},
{82, 15, 6, 44},
{82, 20, 6, 48},
{82, 25, 6, 52},
{82, 30, 6, 56},
{82, 35, 7, 0},
{82, 40, 7, 5},
{82, 45, 7, 9},
{82, 50, 7, 13},
{82, 55, 7, 18},
{83, 0, 7, 23},
{83, 5, 7, 27},
{83, 10, 7, 32},
{83, 15, 7, 37},
{83, 20, 7, 42},
{83, 25, 7, 48},
{83, 30, 7, 53},
{83, 35, 7, 58},
{83, 40, 8, 4},
{83, 45, 8, 9},
{83, 50, 8, 15},
{83, 55, 8, 21},
{84, 0, 8, 27},
{84, 5, 8, 33},
{84, 10, 8, 39},
{84, 15, 8, 45},
{84, 20, 8, 52},
{84, 25, 8, 59},
{84, 30, 9, 6},
{84, 35, 9, 13},
{84, 40, 9, 20},
{84, 45, 9, 28},
{84, 50, 9, 35},
{84, 55, 9, 42},
{85, 0, 9, 50},
{85, 5, 9, 58},
{85, 10, 10, 7},
{85, 15, 10, 16},
{85, 20, 10, 25},
{85, 25, 10, 34},
{85, 30, 10, 43},
{85, 35, 10, 53},
{85, 40, 11, 3},
{85, 45, 11, 13},
{85, 50, 11, 23},
{85, 55, 11, 33},
{86, 0, 11, 44},
{86, 5, 11, 55},
{86, 10, 12, 6},
{86, 15, 12, 17},
{86, 20, 12, 29},
{86, 25, 12, 41},
{86, 30, 12, 53},
{86, 35, 13, 6},
{86, 40, 13, 20},
{86, 45, 13, 34},
{86, 50, 13, 49},
{86, 55, 14, 5},
{87, 0, 14, 21},
{87, 5, 14, 38},
{87, 10, 14, 55},
{87, 15, 15, 12},
{87, 20, 15, 30},
{87, 25, 15, 48},
{87, 30, 16, 7},
{87, 35, 16, 26},
{87, 40, 16, 46},
{87, 45, 17, 7},
{87, 50, 17, 29},
{87, 55, 17, 52},
{88, 0, 18, 16},
{88, 5, 18, 41},
{88, 10, 19, 7},
{88, 15, 19, 34},
{88, 20, 20, 2},
{88, 25, 20, 31},
{88, 30, 21, 1},
{88, 35, 21, 32},
{88, 40, 22, 4},
{88, 45, 22, 38},
{88, 50, 23, 14},
{88, 55, 23, 52},
{89, 0, 24, 32},
{89, 5, 25, 14},
{89, 10, 25, 58},
{89, 15, 26, 44},
{89, 20, 27, 32},
{89, 25, 28, 22},
{89, 30, 29, 4},
{89, 35, 30, 8},
{89, 40, 31, 4},
{89, 45, 32, 2},
{89, 50, 33, 2},
{89, 55, 34, 5},
{90, 0, 35, 10}
};
char value = 7;
int found;
int xi;
void setup() {
Serial.begin(9600);
}
void loop() {
for (xi == 0; xi < 300; xi++) {
if (value == matrix[xi][0]) {
found = xi;
break;
}
}
Serial.println(found);
Serial.println("--------");
delay(1000);
}
Thank you,
Greetings