Задержка курсора после выхода из IDE arduino

Ситуация, при использовании данного скетча после загрузки на плату И пока открыта IDE курсор мышки двигается без запаздывания и индикатор TX на плате горит в тот момент пока происходит движение. Закрываю IDE, двигаю курсор мышки, TX мигает два раза с промежутком мигания где то в 2 секунды и только через 4-5 секунд после этого отзывается еле еле курсор мышки и то очень слабо. Вощем не силён я в сишных кодах, но если я правильно понял, то IDE управляет курсором через светодиод?.. Мой код (сгенерирован есесно нейросетью, “ура”) привожу ниже.

#include <hidboot.h>
#include <usbhub.h>
#include <Mouse.h>
// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>


class MouseRptParser : public MouseReportParser
{
protected:
    void OnMouseMove(MOUSEINFO *mi);
    void OnLeftButtonUp(MOUSEINFO *mi);
    void OnLeftButtonDown(MOUSEINFO *mi);
    void OnRightButtonUp(MOUSEINFO *mi);
    void OnRightButtonDown(MOUSEINFO *mi);
    void OnMiddleButtonUp(MOUSEINFO *mi);
    void OnMiddleButtonDown(MOUSEINFO *mi);
    void OnOtherButtonUp(uint8_t button, MOUSEINFO *mi);
    void OnOtherButtonDown(uint8_t button, MOUSEINFO *mi);
};

void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
{
    Serial.print("dx=");
    Serial.print(mi->dX, DEC);
    Serial.print(" dy=");
    Serial.println(mi->dY, DEC);

    Mouse.move(mi->dX, mi->dY);
}

void MouseRptParser::OnLeftButtonUp(MOUSEINFO *mi)
{
    Serial.println("L Butt Up");
    Mouse.release(MOUSE_LEFT);
}

void MouseRptParser::OnLeftButtonDown(MOUSEINFO *mi)
{
    Serial.println("L Butt Dn");
    Mouse.press(MOUSE_LEFT);
}

void MouseRptParser::OnRightButtonUp(MOUSEINFO *mi)
{
    Serial.println("R Butt Up");
    Mouse.release(MOUSE_RIGHT);
}

void MouseRptParser::OnRightButtonDown(MOUSEINFO *mi)
{
    Serial.println("R Butt Dn");
    Mouse.press(MOUSE_RIGHT);
}

void MouseRptParser::OnMiddleButtonUp(MOUSEINFO *mi)
{
    Serial.println("M Butt Up");
    Mouse.release(MOUSE_MIDDLE);
}

void MouseRptParser::OnMiddleButtonDown(MOUSEINFO *mi)
{
    Serial.println("M Butt Dn");
    Mouse.press(MOUSE_MIDDLE);
}

void MouseRptParser::OnOtherButtonUp(uint8_t button, MOUSEINFO *mi)
{
    Serial.print("Button ");
    Serial.print(button, DEC);
    Serial.println(" Up");

    if (button == 3) {
        Mouse.release(MOUSE_LEFT);
    } else if (button == 4) {
        Mouse.release(MOUSE_RIGHT);
    }
}

void MouseRptParser::OnOtherButtonDown(uint8_t button, MOUSEINFO *mi)
{
    Serial.print("Button ");
    Serial.print(button, DEC);
    Serial.println(" Dn");

    if (button == 3) {
        Mouse.press(MOUSE_LEFT);
    } else if (button == 4) {
        Mouse.press(MOUSE_RIGHT);
    } else if (button == 5) {
        Mouse.move(0, 0, 1); // Прокрутка колесика вверх
    } else if (button == 6) {
        Mouse.move(0, 0, -1); // Прокрутка колесика вниз
    }
}

USB Usb;
USBHub Hub(&Usb);
HIDBoot<USB_HID_PROTOCOL_MOUSE> HidMouse(&Usb);

MouseRptParser Prs;

void setup()
{
    
    Serial.begin(9600);
    
    #if !defined(__MIPSEL__)
    while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
    #endif
    Serial.println("Start");
    

    if (Usb.Init() == -1)
        Serial.println("OSC did not start.");

    //delay(200);

    HidMouse.SetReportParser(0, &Prs);
}

void loop()

{
  
  Usb.Task();
    
  
}

Хз пчм код не вставился полностью, остальная часть кода

void MouseRptParser::OnOtherButtonDown(uint8_t button, MOUSEINFO *mi)
{
    Serial.print("Button ");
    Serial.print(button, DEC);
    Serial.println(" Dn");

    if (button == 3) {
        Mouse.press(MOUSE_LEFT);
    } else if (button == 4) {
        Mouse.press(MOUSE_RIGHT);
    } else if (button == 5) {
        Mouse.move(0, 0, 1); // Прокрутка колесика вверх
    } else if (button == 6) {
        Mouse.move(0, 0, -1); // Прокрутка колесика вниз
    }
}

USB Usb;
USBHub Hub(&Usb);
HIDBoot<USB_HID_PROTOCOL_MOUSE> HidMouse(&Usb);

MouseRptParser Prs;

void setup()
{
    
    Serial.begin(9600);
    
    #if !defined(__MIPSEL__)
    while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
    #endif
    Serial.println("Start");
    

    if (Usb.Init() == -1)
        Serial.println("OSC did not start.");

    //delay(200);

    HidMouse.SetReportParser(0, &Prs);
}

void loop()

{
  
  Usb.Task();
    
  
}

Нихт.

А как тогда?

ИДЕ может слать данные в COM-порт…

Ну это логично что она берёт на себя управление какой то частью процесса, это и по TX индикатору видно, вопрос как это развидеть и пофиксить? :thinking:

крутое слово, по другому и не скажешь. А по усски это как?

Запустите вместо IDE - какой-нибудь терминал

У меня сто лет назад был случай торможения Micro Pro. Если Serial инициализировался, но не был открыт IDE monitor, прошивка начинала работать через пень-колоду.

Это в итоговый код попадает или нет ???

Пофиксили как то?

Да выполняется

Ну так если вы в коде требуете наличие ответа от терминала - обеспечьте ему терминал на нужной скорости !!!

Вы точно читали весь текст в начале темы? Особенно в части понимания мною сишного кода… Если бы я разбирался в нём так же хорошо как в питоне ябы суда наверное не писал, а отправился бы читать документацию к библиотекам :neutral_face:

Ну так спросите там где брали код !

Тут что не ясно -

А почему ты не отправился читать учебник по сишному коду?

Запустить что, другую IDE, какую, существуют другие IDE для работы с ардуино платами (ide общего назначения конечно же пропускаем)? Дальше что? Написать управление мышкой от туда? Если вы имели в виду это то есть нюанс, мне критически не нужно, что бы мышкой управлял экзешник который передаёт данные на плату через порт, мышь подключена через USB Shield который идёт в плату леонардо и дальше в комп. Мышь должна управлять непосредственно с платы.

Ну обвинять нас в вшей тупости - это уже смешно !!!

Пишешь сообщение, говоришь что не разбираешься, просишь помочь, называют тупым, вау…

Например PUTTY…