вывести в послед порт массив

Nevskiy
Offline
Зарегистрирован: 05.03.2014

Какой функцией вывести в последовательный порт  arduino (скорость 115200) массив размером около 120 байт непрерывным потоком без пауз между отдельными символами  ?

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013
byte buf[120] = "\xFF\xFF\xFF .... остальные 120 данных";
Serial.begin(115200);
Serial.write(buf,120);

write()

Nevskiy
Offline
Зарегистрирован: 05.03.2014

NeiroN пишет:
byte buf[120] = "\xFF\xFF\xFF .... остальные 120 данных"; Serial.begin(115200); Serial.write(buf,120); write()

Функцию write() знаю, но гарантирует ли она вывод без пауз между символами ?  Если будут паузы больше 1 мсек, то передаваемому блоку данных будет  ппц 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Дак подключи логоанализатор и посмотри - Аппаратные порты без задержек передают(на то они и аппаратные). Стандартный промежуток между байтами 8.5 µs - стоповый бит.(Мега 2560)

void setup()
{
  byte buf[120];
  for(byte i=0;i<120;i++){
   buf[i]=i; 
  }
  Serial1.begin(115200);
  Serial1.write(buf,120);
}
void loop(){}

А у вас она работать не будет - карма плохая.

Nevskiy
Offline
Зарегистрирован: 05.03.2014

NeiroN пишет:

Дак подключи логоанализатор и посмотри - Аппаратные порты без задержек передают(на то они и аппаратные). Стандартный промежуток между байтами 8.5 µs - стоповый бит.(Мега 2560)

А у вас она работать не будет - карма плохая.

Спасибо, но нет у меня анализатора (пож расскажите  какая модель анализатора и почему выбрана именно она, тоже хочу купить) Можно растянуть картинку по X ?

и кармы увы вообще нет, даже плохой.

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

http://www.aliexpress.com/snapshot/311692647.html

потому что дешево и сердито.