C ++ Серийное время записи слишком долго. Увеличить частоту? - PullRequest
0 голосов
/ 02 мая 2020

Я пытаюсь записать сериал в Arduino, используя c ++. Цель состоит в том, чтобы использовать контроллер DS4 на p c и отправлять данные в последовательный порт. Часть чтения и все остальное действительно быстро, но как только я вызываю serial writeline, у меня получается почти полсекундная задержка, чтобы отправить 1 целое число. Я попробовал Serial write, но у него слишком большая задержка перед отправкой, так что это тоже не полезно. Мне нужно как минимум 10-20 последовательных записей в секунду. Возможно ли это?

Спасибо

while (true) {
        SDL_JoystickUpdate();
        //Console::WriteLine(SDL_JoystickGetAxis(joy, 0) + " " + SDL_JoystickGetAxis(joy, 1) + " " + SDL_JoystickGetAxis(joy, 2) + " " +SDL_JoystickGetAxis(joy, 3) + " " + SDL_JoystickGetAxis(joy, 4) + SDL_JoystickGetAxis(joy, 5) + " " + SDL_JoystickGetAxis(joy, 6) );
        //int input = Convert::ToInt32(Console::ReadLine());
        //Console::WriteLine(port.ReadBufferSize);
        int value = ((float(SDL_JoystickGetAxis(joy, 0) + 32768) / 32768) * 90);
        Console::WriteLine(value);
        if (std::abs(left_Axis_Last_Value - value) > 10) {
            left_Axis_Last_Value = value;
            unsigned char buffer[] = { 255,3, 254, 0, 0 };
            port.WriteLine(Convert::ToString(value));
        }
    }
    return 0;

ОБНОВЛЕНИЕ КОДА ARDUINO: В самом простом виде, но все равно занимает максимум 2 команды в секунду.

void loop()
{
 if(Serial.available() > 0){
   Serial.println(Serial.parseInt());
 }
}
...