Как создать массив и сохранить в нем значения, не зная его размера в Arduino - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь написать код Arduino для получателя, который получает шестнадцатеричные значения от другого Arduino (Transmitter), затем я хочу проверить эти значения и сохранить их в новом массиве, размер которого я не знаю, в то время как передатчик отправляет значения получатель сохранит их.

Значения успешно достигают получателя, но я не знаю, как сохранить их в новом массиве.

Код моего получателя такой:

for (i = 0; i < len; i++)
{
 if (receivedValue[i]==0x60)
          {
    //digitalWrite(LED1,LOW); 
    // store receivedValue[i] in the new array
          }
          else
          {
            if(receivedValue[i]==0x61)
            {
            //digitalWrite(LED3,LOW); 
             // store receivedValue[i] in the new array
            }

            if (receivedValue[i]==0x62)
            {
            //digitalWrite(LED4,LOW); 
              // store receivedValue[i] in the new array
          }

          // any other receivedValue[i] dont do anything
        }
    }

Светодиоды успешно работают как я хочу, но как их хранить в массиве?

1 Ответ

0 голосов
/ 01 мая 2018

Предлагаются два подхода:

  1. Массив, заданный с фиксированным размером

    #define MAX_ITENS 50       // The size of buffer
    uint8_t buffer[MAX_ITENS]; // The Buffer
    uint8_t posBuffer = 0;     // Pointer to actual position
    
    loop() {
        .... 
        // Add data to buffer
        posBuffer++;
    
        if (posBuffer == MAX_ITENS) {
            // Buffer overflow - You can set position to 0 
            // or give some error
        } else {
            buffer[posBuffer] = data; // Save the data
        }
    }
    
  2. Использовать библиотеку динамических массивов, которая мне нравится вот эта .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...