Умный Дом по Ethernet

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 14 июн 2013, 16:58

а IO_SIZE сколько пишите

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 14 июн 2013, 17:18

нет не BUFFER_SIZE а IO_SIZE вы его оставили 13 или меняли

ellab
Сообщения: 35
Зарегистрирован: 11 июн 2013, 16:47

Re: Умный Дом по Ethernet

Сообщение ellab » 14 июн 2013, 17:19

писал 14. и adc6, adc7 не видно.
Последний раз редактировалось ellab 14 июн 2013, 17:23, всего редактировалось 1 раз.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 14 июн 2013, 17:22

а если писать больше

ellab
Сообщения: 35
Зарегистрирован: 11 июн 2013, 16:47

Re: Умный Дом по Ethernet

Сообщение ellab » 14 июн 2013, 17:24

Попробую. Ребенка из садика заберу и будем пробовать. Спасибо вам.

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: Умный Дом по Ethernet

Сообщение Urbas81 » 14 июн 2013, 17:42

ellab писал(а):писал 14. и adc6, adc7 не видно.
Это то, о чем я вчера писал, я укоротил до минимума названия и убрал вывод версии прошивки, правда я еще изменил цвет надписей, но еле вписался чтоб все влезло.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 14 июн 2013, 17:48

я думаю что дело сдесь не в размере буфера а в размере tcp пакета сейчас гляну

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 17 июн 2013, 08:29

добрый день после правки кода страница приобрела вид
правлено
#define name 30
char *n[name] = {"garage", "kvartira", "dom", "BASSEIN", "VANNAY", "JDHDHF NF", "FKVEMGUVM", ".FVH0", "AFFGGG1", "882888","FIGA","6GRTGRTYR", "JTYTHH7", ".0THBHFJ","JHTHTFB7", "RGVHTR.0" "VANNAY", "JDHDHF NF", "FKVEMGUVM", ".FVH0", "AFFGGG1", "882888","FIGA","6GRTGRTYR", "JTYTHH7", ".0THBHFJ","JHTHTFB7", "MAGADEVISE","AB-LOG.RU"};
#define BUFFER_SIZE 1024
и сдесь
// fill in tcp data at position pos. pos=0 means start of
// tcp data. Returns the position at which the string after
// this string could be filled.
uint16_t fill_tcp_data_p(uint8_t *buf,uint16_t pos, const prog_char *progmem_s)
{
char c;
// fill in tcp data at position pos
//
// with no options the data starts after the checksum + 2 more bytes (urgent ptr)
while ((c = pgm_read_byte(progmem_s++))) {
buf[TCP_CHECKSUM_L_P+3+pos]=c;
if ( pos < 1024)
pos++;
}
return(pos);
}

// fill a binary string of len data into the tcp packet
uint16_t fill_tcp_data_len(uint8_t *buf,uint16_t pos, const uint8_t *s, uint8_t len)

// fill in tcp data at position pos
//
// with no options the data starts after the checksum + 2 more bytes (urgent ptr)
while (len) {
buf[TCP_CHECKSUM_L_P+3+pos]=*s;
if ( pos < 1024)
pos++;
s++;
len--;
}
return(pos);
}{
в кратце мало увеличить BUFFER_SIZE кроме пожирания памяти это ничего не даст
нужно изменить вот это if ( pos < 1024) в вашем варианте сдесь было 500 т е как только длинна будет равна 500 байт буфер перестанет увеличиваться и сколько бы вы не писали BUFFER_SIZE длинна пакета данных будет 500 байт все что больше усекается пробуйте если что пишите
Это то, о чем я вчера писал, я укоротил до минимума названия и убрал вывод версии прошивки, правда я еще изменил цвет надписей, но еле вписался чтоб все влезло.
можете вернуть все назад

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Умный Дом по Ethernet

Сообщение Dron » 19 июн 2013, 13:14

а у меня следующий вопрос возник к уважаемым Гуру и энтузиастам:
adc6, adc7 железно работают только как АЦП? или из них всё-таки можно сделать ещё 2 полноценных контакта? если можно, как это реализовать?

Urbas81
Сообщения: 313
Зарегистрирован: 28 авг 2012, 14:22

Re: Умный Дом по Ethernet

Сообщение Urbas81 » 19 июн 2013, 13:18

Dron писал(а):а у меня следующий вопрос возник к уважаемым Гуру и энтузиастам:
adc6, adc7 железно работают только как АЦП? или из них всё-таки можно сделать ещё 2 полноценных контакта? если можно, как это реализовать?
Кажется только АЦП.

Dron
Сообщения: 207
Зарегистрирован: 08 мар 2013, 13:00

Re: Умный Дом по Ethernet

Сообщение Dron » 19 июн 2013, 13:20

кстати, ещё идея для экономии места в вэб-данных (3 байта на строку):
вместо <br>на каждой строке -- один раз в начале вывода написать <pre>, закрывать этот тэг не нужно. и для переноса строки просто выводить символ переноса строки.

пример:

Код: Выделить всё

plen=fill_tcp_data_p(buf,plen,PSTR("<pre><a href=/"));
plen=fill_tcp_data(buf,plen,password);
plen=fill_tcp_data_p(buf,plen,PSTR("/?pt=..>..</a>
"));
...
[code]plen=fill_tcp_data_p(buf,plen,PSTR("<a href=/"));
plen=fill_tcp_data(buf,plen,password);
plen=fill_tcp_data_p(buf,plen,PSTR("/?pt=..>..</a>
"));
ps: под виндой получится экономия всего 2 байта на строку, будьте внимательны =-) винда переносит строку 2мя байтами

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 19 июн 2013, 15:55

кстати, ещё идея для экономии места в вэб-данных
это да страница которую я привел выше занимает (вдумайтесь)1024 байта-1кб гиганская цифра и печатает только названия портов и это только размер данных , размер самого пакета еще боьше

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 19 июн 2013, 16:29

alexsis_76 писал(а):
кстати, ещё идея для экономии места в вэб-данных
это да страница которую я привел выше занимает (вдумайтесь)1024 байта-1кб гиганская цифра и печатает только названия портов и это только размер данных , размер самого пакета еще боьше
а место в RAM'е для переменных/констант и стэка останется?

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 19 июн 2013, 16:40

да вроде работает
сам стэк находится в памяти программ кстати константы типа uint8_t myip[4] = {192,168,0,14}; лучше размещать там же используя PROGMEM объясню почему при прошивке это все записывается во флеш память а при инициализации копируется в озу и остается там никому не нужной пока контроллер работает таким образом строка существует в двух местах , так не проще ли загружать ее из памяти программ сразу не копируя в озу

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 19 июн 2013, 19:44

alexsis_76 писал(а):да вроде работает
сам стэк находится в памяти программ кстати константы типа uint8_t myip[4] = {192,168,0,14}; лучше размещать там же используя
...
Вы, видимо, электронщик? Тогда Вам простительно. А вот про константы во флэше абсолютно с Вами согласен.

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 19 июн 2013, 19:53

Тогда Вам простительно
что

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 19 июн 2013, 20:57

alexsis_76 писал(а):
Тогда Вам простительно
что
Ваше утверждение о том, что "сам стэк находится в памяти программ"

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 20 июн 2013, 01:06

сам стэк находится в памяти программ"
а где он находится

dimonix
Сообщения: 368
Зарегистрирован: 19 фев 2012, 22:01
Откуда: Сколково

Re: Умный Дом по Ethernet

Сообщение dimonix » 20 июн 2013, 11:26

alexsis_76 писал(а):
сам стэк находится в памяти программ"
а где он находится
взято отсюда "http://ru.wikipedia.org/wiki/Стек"
стек — непрерывная область памяти, адресуемая специальными регистрами [..]. До использования стека он должен быть инициализирован так, чтобы регистры [...] указывали на область реальной оперативной памяти (стек в ПЗУ, естественно, работать не может).

alexsis_76

Re: Умный Дом по Ethernet

Сообщение alexsis_76 » 20 июн 2013, 12:28

все что Вы говорите верно для больших компьютеров для микроконтроллеров все немного по другому оперативки там мало 2K Bytes Internal SRAM (ATmega48PA/88PA/168PA/328P) atmega328 имеет всего 2к поэтому инструкции загружаются из памяти программ и сразу выполняются
В процессе выполнения одной инструкции следующая предварительно считывается из памяти программ.позволяет
подумайте хватит ли 2к для одновременной загрузки програмного кода и переменных вот
http://www.gaw.ru/html.cgi/txt/doc/micr ... 28/1_2.htm
стек в ПЗУ, естественно, работать не может
я и не говорил что он там работает я говорил что он там находится(хранится)

Ответить