2016-10-25 2 views
0

новинка здесь. Я пытаюсь объединить элементы массива в одно целое.Объединение Array Elements Arduino

Я хочу объединить элементы данных с 11 по 13 в один номер, хранящийся в объединенном массиве. Желательным результатом было бы объединитьArray [1] = 123.

uint8_t data[32]; 
uint8_t combinedArray[2]; 
data[11] = {'1'}; 
data[12] = {'2'}; 
data[13] = {'3'}; 

Любая помощь была бы высоко оценена. Я считаю, что необходимо преобразовать тип данных, чтобы объединить его.

ответ

0

Вы можете использовать var вместо uint8_t?

Присвоить combinedArray так:

combinedArray[1] = data[11] + data[12] + data[13]

Вы на самом деле уже используют строки в данных []. '1' является строкой, 1 - числом.

0

Вы должны быть в состоянии сделать

uint8_t data[32]; 
uint8_t combinedArray[2]; 
data[11] = {'1'}; 
data[12] = {'2'}; 
data[13] = {'3'}; 
String result = data[11] + data[12] + data[13]; 
//then you can convert that to a char array by doing result.toChars(); 
//or converty the result by doing Integer.parseInt(result); 
//you WILL have to use chars instead because they will concatenate correctly 
//because uint8_t is not a character its a number so when you concatenate    
//them you add the two ascii values together 
0

Простой десятичной (в ASCII) в десятичное (числовое) преобразование должно быть достаточно:

combinedArray[1] = 0;    // value must be defined 
for (uint8_t * ptr = data+11; ptr != data+14; ++ptr) { 
    combinedArray[1] *= 10;   // move previous value by one digit to the left (ie. 12 => 120) 
    combinedArray[1] += *ptr - '0'; // substract ascii value of '0' from character to get value and add it to the result 
} 

При использовании символов для установки элементов в data массив ошибка, то вы должны удалить - '0', чтобы он работал с правильными значениями:
Теперь у вас есть символ «1» в data[11] = {'1'}; со значением 49 (значение ASCII символа «1»).