roboforum.ru

Технический форум по робототехнике.

задержка Serial.print ?

задержка Serial.print ?

Myp » 22 дек 2010, 10:35

в программе вывожу данные через Serial.print
в итоге имею то что программа уже 10 раз в цикле выполняется, а в терминал только только показания от первого цикла доходят.
короче такое ощущение что то что я вывожу в порт гдето буферизуется и потихоньку выводится.
вот такой простой код
Код: Выделить всёРазвернуть
Servo1.write(0);                  // send servo to 0 degree position
  delay(2000);                      // give servo enough time to get there
  for (int i=0; i<=180; i++){
    Servo1.write(i);                // send next degree pulse to servo
    delay(50);                      // let things settle down
    Serial.print(i);

в итоге серва уже давно повернулась и остановилась а данные в терминале всё идут и идут.
если повторять его в цикле то через некоторое количество минут происходит какойто "срыв" и данные в теминал идут рывками и значения скачут.
даже скорость 115200 не помогает.
в чём косяк?

Re: задержка Serial.print ?

dccharacter » 22 дек 2010, 13:12

Ээээ. Цикл не закрыт? "}"

Re: задержка Serial.print ?

Myp » 22 дек 2010, 13:31

ага, и инклюда нета и т.д.
это просто кусок кода для иллюстрации чего я делаю )

серва согласно этому коду отрабатывает правильно а вот в компорт значения выводятся с задержкой и чем дальше тем дольше задержка

Re: задержка Serial.print ?

=DeaD= » 22 дек 2010, 13:37

Надо смотреть исходный код Serial, возможно там реально из буфера по прерыванию тягается всё, а прерывание редко.

Re: задержка Serial.print ?

dccharacter » 22 дек 2010, 13:41

У меня все работало без бубнов. Посмотри осциллографом как данные идут, может терминал так хреново отображает (ну т.е. проблема на стороне коспьютера). А загружается скетч нормально в ардуину???

О, кстати, лучше чем осцилл - возьми скетч из екзаплов, который с сериалом работает и посмотри на его поведение.

Добавлено спустя 2 минуты 47 секунд:
=DeaD= писал(а):Надо смотреть исходный код Serial, возможно там реально из буфера по прерыванию тягается всё, а прерывание редко.

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

Re: задержка Serial.print ?

Myp » 22 дек 2010, 15:00

небыло печали - купила баба порося ORduino ...

хотел ардуину заиметь, чтоб провода понавтыкал в макетку и всё.
так ведь стало хуже чем самому всё програмить.

ЗЫ
ордуина имеет на борту преобразователь usb-uart и в системе виртуальный компорт в который осциллографом не потыкаешь.

раз говорят что компорт в ОРдуине должен работать нормально то буду копать в сторону глюков на компе.

Re: задержка Serial.print ?

=DeaD= » 22 дек 2010, 15:11

Осциллографом можно тыкать в пины RX/TX, если осцик реальный.

Re: задержка Serial.print ?

dccharacter » 22 дек 2010, 16:04

надо взять скетч из примеров...

Re: задержка Serial.print ?

Myp » 23 дек 2010, 11:41

короче это ардуиновский встроенный терминал глючит
адски просто тормозит при приёме данных по компорту, выводит данные со скоростью печатной машинки.
посторонний терминал с радостью выдаёт мне простыни данных которые я даже прочитать не успеваю.
западло, удобно прям в IDE ардуины терминалом пользоваться...

Re: задержка Serial.print ?

dccharacter » 23 дек 2010, 11:57

Переставить IDE и Java

Терминал, кстати, поганый. Можно взять PuTTy, но там тоже поганый :-)

Самый классный, из тех, которые я видел - терминал PicKit. Но есть еще круче - только у меня не взлетело, потому что ось 64 бит. Терминал от SysInternals: http://technet.microsoft.com/en-us/sysi ... s/bb896644

Re: задержка Serial.print ?

Myp » 23 дек 2010, 12:23

ню ню, вот пользователю ардуины тока портмоном и пользоваться :D
нам ардуино юзерам надо чтоб нажал кнопочку в гуи и всё, цифирки побежали.

кстати это так и должно быть? когда терминал запускаю ордуино ребутится...

Re: задержка Serial.print ?

dccharacter » 23 дек 2010, 12:29

Myp писал(а):ню ню, вот пользователю ардуины тока портмоном и пользоваться :D
нам ардуино юзерам надо чтоб нажал кнопочку в гуи и всё, цифирки побежали.

кстати это так и должно быть? когда терминал запускаю ордуино ребутится...


Нет, чего-то не то...
Если просто цифирки - путти вещь хорошая....

Re: задержка Serial.print ?

Myp » 23 дек 2010, 12:38

и стандартный терминал ребутит и обычный виндовый терминал тоже ребутит.
жму кнопку соединиться и ордуина ребутится.
отключается нормально.

Re: задержка Serial.print ?

dccharacter » 23 дек 2010, 13:08

Myp писал(а):и стандартный терминал ребутит и обычный виндовый терминал тоже ребутит.
жму кнопку соединиться и ордуина ребутится.
отключается нормально.

дрова, ява, ардуино иде...

Re: задержка Serial.print ?

=DeaD= » 23 дек 2010, 13:16

Вообще ребут дуины должен быть по сигналу с DTR - это нужно для бутлоадера. Может быть терминал его дергает - тогда перегружаться будет.


Rambler\'s Top100 Mail.ru counter