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

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

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

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

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

01byte lev;
02byte lev1;
03void setup() {
04   //  Set MIDI baud rate:
05   Serial.begin(28800);
06}
07 
08void loop() {
09   // play notes from F#-0 (0x1E) to F#-5 (0x5A):
10   //for (int note = 0x1E; note < 0x5A; note ++) {
11     //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
12     //noteOn(0x90, note, 0x45);
13     //delay(100);
14     //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
15 //    noteOn(0x90, note, 0x00);
16     //delay(100);
17   //}
18 
19lev= analogRead(4) / 8;
20lev1= analogRead(4) / 8;
21if (lev<=5)
22if (lev1>=5)noteOn(0x90, 60, 70);
23delay(5);
24}
25 
26//  plays a MIDI note.  Doesn't check to see that
27//  cmd is greater than 127, or that data values are  less than 127:
28void noteOn(int cmd, int pitch, int velocity) {
29   Serial.write(cmd);
30   Serial.write(pitch);
31   Serial.write(velocity);
32}

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

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011
01byte byteRead;
02void setup() {               
03  Serial.begin(115200);
04}
05void loop() {
06  if (Serial.available()) {
07    byteRead = Serial.read();
08     Serial.write(byteRead);
09  }
10}

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

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

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

Vidento
Offline
Зарегистрирован: 02.05.2016
1lev= analogRead(4) / 8;
2lev1= analogRead(4) / 8;
3if (lev<=5)
4if (lev1>=5){noteOn(0x90, 60, 70);
5 digitalWrite(10,HIGH);
6delay(5);
7 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

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