Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.06.2014, 19:14   #1
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Как лучше данные отправлять?

Подскажите как будет правильней отправить данные?
Так:

Цитата:
Serial.write(255);
Serial.write(254);
Serial.write(chas);
Serial.write(minuta);
Serial.write(secunda);
Serial.write(253);
Serial.write(252);
Или так:

Цитата:
server[2]=chas;
server[3]=minuta;
server[4]=secunda;
server[0]=255;
server[1]=254;
server[5]=253;
server[6]=252;
Serial.write(server, 7);
stD вне форума   Ответить с цитированием
Старый 24.06.2014, 19:43   #2
lvovitch
Senior Member
 
Регистрация: 14.04.2010
Сообщений: 239
Вес репутации: 0
lvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond reputelvovitch has a reputation beyond repute
По умолчанию Re: Как лучше данные отправлять?

Цитата:
Сообщение от mebitek Посмотреть сообщение
Подскажите как будет правильней отправить данные?
Так:



Или так:
Думаю, что второй вариант лучше. По крайней мере у меня так сделано.
lvovitch вне форума   Ответить с цитированием
Старый 24.06.2014, 20:50   #3
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Я тоже до сего момента использовал второй вариант, а сегодня измерил время:

Цитата:
unsigned long timme;
byte server[5];

void setup()
{
Serial.begin(57600);
}

void loop()
{
server[2]=255;
server[3]=245;
server[4]=234;
server[0]=255;
server[1]=254;

timme = micros();
Serial.write(server, 5);
// Serial.write(255);
// Serial.write(254);
// Serial.write(5);
// Serial.write(253);
// Serial.write(252);
timme=micros()-timme;
Serial.println("vrem ");
Serial.println(timme);
delay(500);
}
Второй вариант 64-68 мкс.

Первый вариант 52-56 мкс.

То есть отправка быстрее происходит в первом варианте, чем тогда он лучше?

Или он лучше для принимающей стороны, может кто поподробнее растолкует?

Последний раз редактировалось stD; 24.06.2014 в 20:54.
stD вне форума   Ответить с цитированием
Старый 24.06.2014, 21:53   #4
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Второй вариант это тоже самое что и первый, только в цикле.
Могу для тестов предложить еще один вариант, но только для Arduino на Atmega328

PHP код:
#include "CyberLib.h"

uint16_t timme;
uint8_t server[6] = {'C''y''b''e''r'' '};

void setup()
{
 
Serial.begin(57600);
 
UART_Init(57600);
}

void loop()
{
timme micros();
UART_SendArray(server6);
timme=micros()-timme;
Serial.println(timme);
delay(500);

Admin вне форума   Ответить с цитированием
Старый 24.06.2014, 23:29   #5
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Сделал на кардуине (купленой у Тебя ))) года 3-4 назад), результат 532 мкс. То есть в 10 раз дольше.

Цитата:
#include "CyberLib.h"

uint16_t timme;
uint8_t server[5];

void setup()
{
Serial.begin(57600);
UART_Init(57600);
}

void loop()
{
server[0]=255;
server[1]=254;
server[2]=250;
server[3]=245;
server[4]=243;

timme = micros();
UART_SendArray(server, 5);
timme=micros()-timme;
Serial.println();
Serial.println(timme);

delay(500);
}
stD вне форума   Ответить с цитированием
Старый 24.06.2014, 23:59   #6
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Где то ты ошибся
Я сейчас проверил твой второй вариант с использованием Serial.write(server, 5);
Скорость тоже 532мкс
Admin вне форума   Ответить с цитированием
Старый 25.06.2014, 19:45   #7
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Я тоже думаю что-то слишком быстро, но как тогда вот это обьяснить?

stD вне форума   Ответить с цитированием
Старый 25.06.2014, 19:54   #8
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Подумал может это время отправки одного байта (незнаю каким образом), но тоже не сходится: 532 / 5 = 8, а не пять.
stD вне форума   Ответить с цитированием
Старый 25.06.2014, 20:01   #9
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

У тебя почему то обрезается последняя цифра
Admin вне форума   Ответить с цитированием
Старый 25.06.2014, 20:06   #10
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1310
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Как лучше данные отправлять?

Либо первая, ибо вот:



PHP код:
timme micros();
Serial.print(9);
Serial.print(9);
Serial.print(9);
Serial.print(9);
Serial.print(9);
timme=micros()-timme;
Serial.println(timme); 
364 мкс.
stD вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:19. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика