Разработки ecoins

ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

Продолжение #727
Перечень источников "торможения":
1. После каждой посылки использованные блоки(библиотеки) осуществляют задержки 130 мс - это время надо высвободить.
2. Длительность самой посылки 20мс. Её можно уменьшить перейти со скорости обмена с 9600 на 115200.
3. Запрос в каждом цикле - это избыточно. И лучше сделать так, чтобы сам дисплей присылал переменную с состояниями кнопок и делал это по изменению.
4. И в любом проекте целесообразно планировать вызов по времени плат и блоков - они не выполняются мгновенно...
Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17 июл 2017, 18:39
Откуда: Днепр. UA
Имя: Григорий

Разработки ecoins

Сообщение grin-mpx »

ecoins писал(а): 20 окт 2020, 11:51 И лучше сделать так, чтобы сам дисплей присылал переменную с состояниями кнопок и делал это по изменению.
Сомнительно. Если контроллер в это время чем то занят, например приемом посылки с UART? , то информация с Nextion скорее всего потеряется.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

grin-mpx писал(а): 20 окт 2020, 14:41 Сомнительно. Если контроллер в это время чем то занят, например приемом посылки с UART? , то информация с Nextion скорее всего потеряется.
Не потеряется, у UART есть буфера. Будем пробовать и испытывать.
vovka1973
Подполковник
Сообщения: 1202
Зарегистрирован: 14 фев 2016, 14:16
Откуда: kazahstan
Благодарил (а): 32 раза
Поблагодарили: 6 раз

Разработки ecoins

Сообщение vovka1973 »

ecoins писал(а): 20 окт 2020, 15:11 Не потеряется, у UART есть буфера. Будем пробовать и испытывать.
ждем от вас блоков :smile9:
Изображение
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 21 окт 2020, 17:06 Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
Сенсор есть, но ПБ не делал. Как нибудь сделаем...
----------
Только что проверил существующий ПБ FLProg.
В принципе он рабочий, но:
1. В каждом цикле вызова в библиотеке два вызова delay(55) - итого 110мс;
2. Если при ожидании ответа от сенсора потеряется один байт, то будет висеть (может бесконечно...).
Обычно так бывает при плохом контакте, но так конечно библиотека работать не должна.
В своих разработках мы всегда предусматриваем тайм-аут и повторный опрос сенсора.
delay() не используем.
---------
У нас сделан хороший ПБ для BME280 - сенсор посложнее, но и лучше, и порядок цен тот же.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 21 окт 2020, 18:31
o615ye161 писал(а): 21 окт 2020, 17:06 Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
Сенсор есть, но ПБ не делал. Как нибудь сделаем...
----------
Только что проверил существующий ПБ FLProg.
В принципе он рабочий, но:
1. В каждом цикле вызова в библиотеке два вызова delay(55) - итого 110мс;
2. Если при ожидании ответа от сенсора потеряется один байт, то будет висеть (может бесконечно...).
Обычно так бывает при плохом контакте, но так конечно библиотека работать не должна.
В своих разработках мы всегда предусматриваем тайм-аут и повторный опрос сенсора.
delay() не используем.
---------
У нас сделан хороший ПБ для BME280 - сенсор посложнее, но и лучше, и порядок цен тот же.
В наличии есть только BMP. Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!

Отправлено спустя 15 минут 58 секунд:
Вопрос по диспетчеру задач, если опрос датчика DS18B20 поставить как медленная задача и записать его в массив, а из массива уже читать как быстрая задача, это может оптимизировать работу контроллера?
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 22 окт 2020, 00:23 Вопрос по диспетчеру задач, если опрос датчика DS18B20 поставить как медленная задача и записать его в массив, а из массива уже читать как быстрая задача, это может оптимизировать работу контроллера?
Из описания к ПБ " Рекомендуется подключать блок как оперативную, быструю или свободную задачу".
На оптимизацию предлагаемый выбор особо не влияет - все делается в самой библиотеке.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 22 окт 2020, 00:23 Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!
Если с Nano работает, а с MEGA2560 зависает, то проблема глубже:
1. Возможно на MEGA2560 похуже реализовано физическое подключение (плохой контакт).
2.Системная проблема настройки C++ для MEGA2560. Долго занимался этой проблемой - тесты работали на Nano,DUE,ESP8266,ESP32,STM32 , на MEGA2560 то работали, то зависали. В итоге удалось обнаружить проблему.
Она связана с оператором switch(){} - особенно когда там множественный выбор. Компилятор ошибается с адресацией (применяет короткую вместо полной).
В библиотеках ecoins мы отказались от применения этого оператора, тем более у него есть еще системные недостатки - об этом продолжаются дискуссии на форумах.
Исследования показания, что альтернативный метод не медленнее оператора switch().
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 22 окт 2020, 16:01
o615ye161 писал(а): 22 окт 2020, 00:23 Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!
Если с Nano работает, а с MEGA2560 зависает, то проблема глубже:
1. Возможно а MEGA2560 похуже реализовано физическое подключение (плохой контакт).
2.Системная проблема настройки C++ для MEGA2560. Долго занимался этой проблемой - тесты работали на Nano,DUE,ESP8266,ESP32,STM32 , на MEGA2560 то работали, то зависали. В итоге удалось обнаружить проблему.
Она связана с оператором switch(){} - особенно когда там множественный выбор. Компилятор ошибается с адресацией (применяет короткую вместо полной).
В библиотеках ecoins мы отказались от применения этого оператора, тем более у него есть еще системные недостатки - об этом продолжаются дискуссии на форумах.
Исследования показания, что альтернативный метод не медленнее оператора switch().
Зависание происходит еще от наводок на I2C, но сам блок HTU эти глюки увеличивает, удалось значительно сократить количество зависаний путем внедрения в схему 4 неполярных конденсатора емкостью 1nF и одного резистора на 10kO.Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Разработки ecoins

Сообщение nalnik »

o615ye161 писал(а): 22 окт 2020, 18:21 удалось значительно сократить количество зависаний путем внедрения в схему 4 неполярных конденсатора емкостью 1nF и одного резистора на 10kO.Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD
ЕРЕСЬ :smile453:
Я хочу быть добрее, но люди сами нарываются.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

Сообщение SSSergeich »

nalnik писал(а): 22 окт 2020, 18:28 ЕРЕСЬ :smile453:
ПЛАЦЕБО! :yes:
Аватара пользователя
nalnik
Подполковник
Сообщения: 1320
Зарегистрирован: 14 май 2016, 17:12
Откуда: Кисловодск
Имя: Александр

Разработки ecoins

Сообщение nalnik »

SSSergeich писал(а): 22 окт 2020, 18:50ПЛАЦЕБО!
Это вредитель.
Соединить - SDA и SCL через хрен знаешь что. Для "ключа морзянки" может и поможет.
Я хочу быть добрее, но люди сами нарываются.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

Сообщение SSSergeich »

nalnik писал(а): 22 окт 2020, 19:05Это вредитель.
надо верить в чудеса!
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

Это нужно для сглаживания помех, по другому не работает, с фильтрами уже трое суток работает без глюков, для начала проверьте, а потом высказывайте, а то не проверил и высказывает свои теории! Я делюсь реально рабочей схемой.
ecoins
Полковник
Сообщения: 4006
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 153 раза

Разработки ecoins

Сообщение ecoins »

o615ye161 писал(а): 22 окт 2020, 18:21 .Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD
Для уверенности мы подтягиваем SCL и SDA резисторами 10к к питанию.
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

ecoins писал(а): 22 окт 2020, 21:33
o615ye161 писал(а): 22 окт 2020, 18:21 .Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD
Для уверенности мы подтягиваем SCL и SDA резисторами 10к к питанию.
Подтяжка есть, один датчик на проводе длинной 12м HTU, второй 6м BMP280, хочешь не хочешь помеха прилетает!
Изображение
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось o615ye161 22 окт 2020, 22:03, всего редактировалось 1 раз.
Ingwar
Полковник
Сообщения: 1928
Зарегистрирован: 28 окт 2015, 22:47
Откуда: Ленобласть
Имя: Игорь
Поблагодарили: 2 раза

Разработки ecoins

Сообщение Ingwar »

o615ye161 писал(а): 22 окт 2020, 20:36 по другому не работает,
o615ye161 писал(а): 22 окт 2020, 20:36 Я делюсь реально рабочей схемой.
Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29 дек 2016, 00:49
Откуда: москва

Разработки ecoins

Сообщение Nikan »

Ingwar писал(а): 22 окт 2020, 22:02 Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
проблема отсутствии знаний и желания их получить (
шина I2C очень критична к емкости проводников, отсюда - чем длиннее провода тем больше емкость, соответственно надо уменьшать сопротивление подтягивающих резисторов. А не дополнительные кондеры вешать

https://radioprog.ru/post/497
o615ye161
Сержант
Сообщения: 226
Зарегистрирован: 19 дек 2019, 14:47
Имя: Сергей

Разработки ecoins

Сообщение o615ye161 »

Nikan писал(а): 22 окт 2020, 22:44
Ingwar писал(а): 22 окт 2020, 22:02 Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
проблема отсутствии знаний и желания их получить (
шина I2C очень критична к емкости проводников, отсюда - чем длиннее провода тем больше емкость, соответственно надо уменьшать сопротивление подтягивающих резисторов. А не дополнительные кондеры вешать

https://radioprog.ru/post/497
Даже если провод 35см, и это устройство находится там где есть наводки от сети, всеравно происходят зависания, умничать все могут ну пока не один не предложил рабочую схему, только сопли размазываете по тазику, иногда фильтры помогают там где стандартные решения не работают!
Закрыто

Вернуться в «Команда ecoins»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя