Задержка при передаче данных по USB
- Войдите на сайт для отправки комментариев
Пнд, 02/05/2016 - 16:20
Добрый день. Хочу выяснить причину задержки при передаче данных от котроллера через USB в ПК.
Использую плату Arduino Nano 3.0 с CH340 вместо FTDI.
Хочу реализовать программу для передачи простых команд от входов АЦП через виртуальный СОМ порт в софт.
01 | byte lev; |
02 | byte lev1; |
03 | void setup () { |
04 | // Set MIDI baud rate: |
05 | Serial .begin(28800); |
06 | } |
07 |
08 | void 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 |
19 | lev= analogRead(4) / 8; |
20 | lev1= analogRead(4) / 8; |
21 | if (lev<=5) |
22 | if (lev1>=5)noteOn(0x90, 60, 70); |
23 | delay(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: |
28 | void noteOn( int cmd, int pitch, int velocity) { |
29 | Serial .write(cmd); |
30 | Serial .write(pitch); |
31 | Serial .write(velocity); |
32 | } |
Arduino передает данные с задержкой примерно в 0. 5 сек.
Как можно заставить Ардуино передавать данные через последовательный порт без задержки?
01
byte
byteRead;
02
void
setup
() {
03
Serial
.begin(115200);
04
}
05
void
loop
() {
06
if
(
Serial
.available()) {
07
byteRead =
Serial
.read();
08
Serial
.write(byteRead);
09
}
10
}
Измеряете задержку на слух?
И какая задержка?
Хоть визуально в мотиторе порта. Данные приходят через пол секунды после срабатывания логической операции в программе.
1
lev= analogRead(4) / 8;
2
lev1= analogRead(4) / 8;
3
if
(lev<=5)
4
if
(lev1>=5){noteOn(0x90, 60, 70);
5
digitalWrite(10,HIGH);
6
delay(5);
7
digitalWrite(10,LOW);}
Подключил светодиод. Срабатывает моментально после передачи сигнала в порт. Посмотрим как работает софт.
Если на слух, то такая проблема у многих, гугли midi USB задержка.
Вы запускали мой пример?
http://arduino.ru/forum/apparatnye-voprosy/zaderzhka-pri-peredache-danny...
Ну где там задержка?
Я на слух её не вижу.
Похоже, что Serial.avaliable в состоянии False. Программа приостановит развитие событий.
Я же не шучу.
Я действительно залил ЭТО в УНО .
Где задержка?
Приходит мгновенный ответ.
У вас она есть или нет?
Задержка присутствовала из- за работы драйвера. После полной переустановки софта получил возможность читать команды с желаемой скоростю.