Разработки ecoins
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Продолжение #727
Перечень источников "торможения":
1. После каждой посылки использованные блоки(библиотеки) осуществляют задержки 130 мс - это время надо высвободить.
2. Длительность самой посылки 20мс. Её можно уменьшить перейти со скорости обмена с 9600 на 115200.
3. Запрос в каждом цикле - это избыточно. И лучше сделать так, чтобы сам дисплей присылал переменную с состояниями кнопок и делал это по изменению.
4. И в любом проекте целесообразно планировать вызов по времени плат и блоков - они не выполняются мгновенно...
Перечень источников "торможения":
1. После каждой посылки использованные блоки(библиотеки) осуществляют задержки 130 мс - это время надо высвободить.
2. Длительность самой посылки 20мс. Её можно уменьшить перейти со скорости обмена с 9600 на 115200.
3. Запрос в каждом цикле - это избыточно. И лучше сделать так, чтобы сам дисплей присылал переменную с состояниями кнопок и делал это по изменению.
4. И в любом проекте целесообразно планировать вызов по времени плат и блоков - они не выполняются мгновенно...
- grin-mpx
- Лейтенант
- Сообщения: 477
- Зарегистрирован: 17 июл 2017, 18:39
- Откуда: Днепр. UA
- Имя: Григорий
Разработки ecoins
Сомнительно. Если контроллер в это время чем то занят, например приемом посылки с UART? , то информация с Nextion скорее всего потеряется.ecoins писал(а): 20 окт 2020, 11:51 И лучше сделать так, чтобы сам дисплей присылал переменную с состояниями кнопок и делал это по изменению.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Не потеряется, у UART есть буфера. Будем пробовать и испытывать.grin-mpx писал(а): 20 окт 2020, 14:41 Сомнительно. Если контроллер в это время чем то занят, например приемом посылки с UART? , то информация с Nextion скорее всего потеряется.
Разработки ecoins
Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Сенсор есть, но ПБ не делал. Как нибудь сделаем...o615ye161 писал(а): 21 окт 2020, 17:06 Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
----------
Только что проверил существующий ПБ FLProg.
В принципе он рабочий, но:
1. В каждом цикле вызова в библиотеке два вызова delay(55) - итого 110мс;
2. Если при ожидании ответа от сенсора потеряется один байт, то будет висеть (может бесконечно...).
Обычно так бывает при плохом контакте, но так конечно библиотека работать не должна.
В своих разработках мы всегда предусматриваем тайм-аут и повторный опрос сенсора.
delay() не используем.
---------
У нас сделан хороший ПБ для BME280 - сенсор посложнее, но и лучше, и порядок цен тот же.
Разработки ecoins
В наличии есть только BMP. Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!ecoins писал(а): 21 окт 2020, 18:31Сенсор есть, но ПБ не делал. Как нибудь сделаем...o615ye161 писал(а): 21 окт 2020, 17:06 Скажите пожалуйста ПБ HTU21 GY-21 у вас есть, а то на стандартном блоке Flprog очень часто Mega2560 виснет по шине I2C?
----------
Только что проверил существующий ПБ FLProg.
В принципе он рабочий, но:
1. В каждом цикле вызова в библиотеке два вызова delay(55) - итого 110мс;
2. Если при ожидании ответа от сенсора потеряется один байт, то будет висеть (может бесконечно...).
Обычно так бывает при плохом контакте, но так конечно библиотека работать не должна.
В своих разработках мы всегда предусматриваем тайм-аут и повторный опрос сенсора.
delay() не используем.
---------
У нас сделан хороший ПБ для BME280 - сенсор посложнее, но и лучше, и порядок цен тот же.
Отправлено спустя 15 минут 58 секунд:
Вопрос по диспетчеру задач, если опрос датчика DS18B20 поставить как медленная задача и записать его в массив, а из массива уже читать как быстрая задача, это может оптимизировать работу контроллера?
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Из описания к ПБ " Рекомендуется подключать блок как оперативную, быструю или свободную задачу".o615ye161 писал(а): 22 окт 2020, 00:23 Вопрос по диспетчеру задач, если опрос датчика DS18B20 поставить как медленная задача и записать его в массив, а из массива уже читать как быстрая задача, это может оптимизировать работу контроллера?
На оптимизацию предлагаемый выбор особо не влияет - все делается в самой библиотеке.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Если с Nano работает, а с MEGA2560 зависает, то проблема глубже:o615ye161 писал(а): 22 окт 2020, 00:23 Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!
1. Возможно на MEGA2560 похуже реализовано физическое подключение (плохой контакт).
2.Системная проблема настройки C++ для MEGA2560. Долго занимался этой проблемой - тесты работали на Nano,DUE,ESP8266,ESP32,STM32 , на MEGA2560 то работали, то зависали. В итоге удалось обнаружить проблему.
Она связана с оператором switch(){} - особенно когда там множественный выбор. Компилятор ошибается с адресацией (применяет короткую вместо полной).
В библиотеках ecoins мы отказались от применения этого оператора, тем более у него есть еще системные недостатки - об этом продолжаются дискуссии на форумах.
Исследования показания, что альтернативный метод не медленнее оператора switch().
Разработки ecoins
Зависание происходит еще от наводок на I2C, но сам блок HTU эти глюки увеличивает, удалось значительно сократить количество зависаний путем внедрения в схему 4 неполярных конденсатора емкостью 1nF и одного резистора на 10kO.Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCDecoins писал(а): 22 окт 2020, 16:01Если с Nano работает, а с MEGA2560 зависает, то проблема глубже:o615ye161 писал(а): 22 окт 2020, 00:23 Было-бы очень здорово если вы переработалибы библиотеку и сделали ПБ HTU21! Тогда с Mega2560 будет работать поприятнее, а так очень часто зависает, причём зависает именно Mega2560 на nano такого не замечал, приходится постоянно перезагружать контроллер!
1. Возможно а MEGA2560 похуже реализовано физическое подключение (плохой контакт).
2.Системная проблема настройки C++ для MEGA2560. Долго занимался этой проблемой - тесты работали на Nano,DUE,ESP8266,ESP32,STM32 , на MEGA2560 то работали, то зависали. В итоге удалось обнаружить проблему.
Она связана с оператором switch(){} - особенно когда там множественный выбор. Компилятор ошибается с адресацией (применяет короткую вместо полной).
В библиотеках ecoins мы отказались от применения этого оператора, тем более у него есть еще системные недостатки - об этом продолжаются дискуссии на форумах.
Исследования показания, что альтернативный метод не медленнее оператора switch().
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Разработки ecoins
ЕРЕСЬo615ye161 писал(а): 22 окт 2020, 18:21 удалось значительно сократить количество зависаний путем внедрения в схему 4 неполярных конденсатора емкостью 1nF и одного резистора на 10kO.Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD

Я хочу быть добрее, но люди сами нарываются.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Разработки ecoins
Это вредитель.
Соединить - SDA и SCL через хрен знаешь что. Для "ключа морзянки" может и поможет.
Я хочу быть добрее, но люди сами нарываются.
-
- Капитан
- Сообщения: 708
- Зарегистрирован: 06 фев 2016, 11:01
- Откуда: Ярославль
- Имя: Сергей
Разработки ecoins
Это нужно для сглаживания помех, по другому не работает, с фильтрами уже трое суток работает без глюков, для начала проверьте, а потом высказывайте, а то не проверил и высказывает свои теории! Я делюсь реально рабочей схемой.
-
- Полковник
- Сообщения: 4005
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 153 раза
Разработки ecoins
Для уверенности мы подтягиваем SCL и SDA резисторами 10к к питанию.o615ye161 писал(а): 22 окт 2020, 18:21 .Может кому то будет полезно, но обязательно на шине I2C должен висеть какой то датчик или LCD
Разработки ecoins
Подтяжка есть, один датчик на проводе длинной 12м HTU, второй 6м BMP280, хочешь не хочешь помеха прилетает!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось o615ye161 22 окт 2020, 22:03, всего редактировалось 1 раз.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Разработки ecoins
Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
Разработки ecoins
проблема отсутствии знаний и желания их получить (Ingwar писал(а): 22 окт 2020, 22:02 Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
шина I2C очень критична к емкости проводников, отсюда - чем длиннее провода тем больше емкость, соответственно надо уменьшать сопротивление подтягивающих резисторов. А не дополнительные кондеры вешать
https://radioprog.ru/post/497
Разработки ecoins
Даже если провод 35см, и это устройство находится там где есть наводки от сети, всеравно происходят зависания, умничать все могут ну пока не один не предложил рабочую схему, только сопли размазываете по тазику, иногда фильтры помогают там где стандартные решения не работают!Nikan писал(а): 22 окт 2020, 22:44проблема отсутствии знаний и желания их получить (Ingwar писал(а): 22 окт 2020, 22:02 Думаю проблема в схемотехнике. А создание таких "фильтров" не что иное поиск эмпирическим методов костылей, вместо грамотного расключения.
шина I2C очень критична к емкости проводников, отсюда - чем длиннее провода тем больше емкость, соответственно надо уменьшать сопротивление подтягивающих резисторов. А не дополнительные кондеры вешать
https://radioprog.ru/post/497
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя