Задержка при передаче данных по USB

Vidento
Offline
Зарегистрирован: 02.05.2016

Добрый день. Хочу выяснить причину задержки при передаче данных от котроллера через USB в ПК.

Использую плату Arduino Nano 3.0 с CH340 вместо FTDI.

Хочу реализовать программу для передачи простых команд от входов АЦП через виртуальный СОМ порт в софт. 

byte lev;
byte lev1;
void setup() {
   //  Set MIDI baud rate:
   Serial.begin(28800);
}

void loop() {
   // play notes from F#-0 (0x1E) to F#-5 (0x5A):
   //for (int note = 0x1E; note < 0x5A; note ++) {
     //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
     //noteOn(0x90, note, 0x45);
     //delay(100);
     //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
 //    noteOn(0x90, note, 0x00);
     //delay(100);
   //}

lev= analogRead(4) / 8;
lev1= analogRead(4) / 8;
if (lev<=5)
if (lev1>=5)noteOn(0x90, 60, 70);
delay(5);
}

//  plays a MIDI note.  Doesn't check to see that
//  cmd is greater than 127, or that data values are  less than 127:
void noteOn(int cmd, int pitch, int velocity) {
   Serial.write(cmd);
   Serial.write(pitch);
   Serial.write(velocity);
}

Arduino передает данные с задержкой примерно в 0. 5 сек.

Как можно заставить Ардуино передавать данные через последовательный порт без задержки?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

byte byteRead;
void setup() {                
  Serial.begin(115200);
}
void loop() {
  if (Serial.available()) {
    byteRead = Serial.read();
     Serial.write(byteRead);
  }
}

Измеряете задержку на слух?
И какая задержка?

Vidento
Offline
Зарегистрирован: 02.05.2016

Хоть визуально в мотиторе порта. Данные приходят через пол секунды после срабатывания логической операции в программе.

Vidento
Offline
Зарегистрирован: 02.05.2016


lev= analogRead(4) / 8;
lev1= analogRead(4) / 8;
if (lev<=5)
if (lev1>=5){noteOn(0x90, 60, 70);
 digitalWrite(10,HIGH);
delay(5);
 digitalWrite(10,LOW);}

Подключил светодиод. Срабатывает моментально после передачи сигнала в порт. Посмотрим как работает софт.

Jatixo
Offline
Зарегистрирован: 13.01.2016

Если на слух, то такая проблема у многих, гугли midi USB задержка.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Вы запускали мой пример?
http://arduino.ru/forum/apparatnye-voprosy/zaderzhka-pri-peredache-danny...

Ну где там задержка?
Я на слух её  не вижу.

Vidento
Offline
Зарегистрирован: 02.05.2016

Похоже, что Serial.avaliable в состоянии False. Программа приостановит развитие событий.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Я же не шучу.
Я действительно залил ЭТО в УНО .
Где задержка?
Приходит мгновенный ответ.
У вас она есть или нет?
 

Vidento
Offline
Зарегистрирован: 02.05.2016

Задержка присутствовала из- за  работы драйвера. После полной переустановки софта получил возможность читать команды с желаемой скоростю.