Библиотеки для разных контроллеров
Подскажите, не могу через Ваш блок вывести значения на lcd 2004 больше чем 32768, в flprog переменную ставлю как float так и unsigned long integer.
float работает, а вывод делал только для int16_t.SSSergeich писал(а): ↑06.09.2020{, 23:18}Подскажите, не могу через Ваш блок вывести значения на lcd 2004 больше чем 32768, в flprog переменную ставлю как float так и unsigned long integer.
В чем моя ошибка?
masterw писал(а): ↑12.09.2020{, 21:39}Пробовал на разных скоростях, все работает нормально на входа выхода процессора, но если добавить mpc23017 то после включения несколько секунд на mpc23017 появляются хаотичные сигналы, после чего может работать нормально, а может вообще зависнуть. Если отключить master, то все работает нормально. RS485 на SN75176. Причем при использовании Software Serial работает стабильнее.
Полагаю, что дело не в mcp23017 - в одном проекте новогодняя гирлянда (восемь mcp23017) на улице работает более шести лет, на стендах (в том числе и STM32F103c) устройства непрерывно работают неделями.Ingwar писал(а): ↑13.09.2020{, 00:39}Пару месяцев бился с проектом, где использовал mpc23017 и тегов более полусотни. RTU пробовал и TCP пофиг. Упаковал все койлы в холд и стало их 13 всего. Но все равно висло через непродолжительное время. Плюнул и поставил MEGA mini. Теперь только регистры. Нахер эти mpc23017
Платы разводил сам. Никаких соплей не было. Допускаю, что проблема в библиотеке, используемой в Flprog или совокупности библиотек.
В первый пост не готов пока разместить - сделаны существенные доработки с новыми свойствами и возможностями.
Выложил последовательно в конце сообщения - почему в середине получалось не верно, несколько раз попробовал.
Подскажите пожалуйста где найти блоки для LCD2004 1602?ecoins писал(а): ↑15.09.2020{, 06:22}Выложил последовательно в конце сообщения - почему в середине получалось не верно, несколько раз попробовал.
Спасибо за поправку.
Сами файлы те же и без изменения.
Отправлено спустя 10 часов 15 минут 49 секунд:
Короткий отчет:
1.На STM32F103C ModBus Slave работает (проверял с KaScada);
2.На STM32F401 не работает. Не воспринимает Serial1.begin(115200,8N_1) - код который генерит FLProg в setup(); Вручную меняется на Serial1.begin(115200) и эта проблема преодолевается. При работе при поступление правильной посылки из KaScada, отвечает байтом E2 и этим все...
----
Протокол ModBus ключевой для автоматизации.
Как бы не пришлось разрабатывать новую библиотеку (на основе старой).
Лучше это делать совместно с разработчиком FLProg, но он вряд ли сейчас на это будет отвлекаться.
----
Думаем. Может есть какие соображения?
Сейчас выложу обновленные библиотеки. Специальной библиотеки для LCD 20x4 нет - кол-во колонок и строк задается в блоке инициализации. По умолчанию установлено 16x2.
спасибо за блоки и за труд, вот только как в этом теперь разобраться? у вас видео или скеч пример есть?ecoins писал(а): ↑13.10.2020{, 13:47}Сейчас выложу обновленные библиотеки. Специальной библиотеки для LCD 20x4 нет - кол-во колонок и строк задается в блоке инициализации. По умолчанию установлено 16x2.
Отправлено спустя 33 минуты 41 секунду:
Обновленные библиотеки:
1.Библиотеки C++
RT_HW_LIB_115_131020_alfa.zip
2.Библиотека пользовательских блоков
БИБЛИОТЕКА BASE_v02.2_6.3.1_13102020.zip
----------------------
Проделана большая рутинная работа по доработке библиотек и пользовательских блоков, но есть и новое:
1.Добавлена библиотека для обращения к UART по его номеру от 0 до 7. Номер 7 соответствует SoftSerial.
Это открывает возможность создания протокол коммуникаций независимых от платформы. Одной из видимой целью сейчас это
ModBus.
2. Теперь работает сонар HC-SR04 по прерываниям и на ESP8266.
Дело в том, что после версии 2.5.0 требований к программам прерываний изменились и проекты соответственно выходили с ошибкой компиляции.
Теперь с проблемой разобрались и решение её заложили в библиотеку.
3. Мы поддерживаем проект в ДЮАИР проект "детские "машинки".
Для этого были созданы пользовательские блоки на C++ - они получились громоздкими и их сложно развивать.
Поэтому была разработана специальная библиотека RT_HW_CAR - теперь работать с машинками и проще, и добавлять новые возможности легче.
---
В следующем посте выложу проекты машинок.
В посте #698 пункты 2-4.
"Планировщик задачи и упраление консолью", эту плату обязательно нужно делать в проекте?ecoins писал(а): ↑14.10.2020{, 13:26}Поступил вопрос по работе с блоком ds1820 библиотеки ecoins.
Этот блок не требует указывать MAC-адрес ds1820, но работает только с одним сенсором (один пин, один сенсор).
Работает побыстрее стандартного, без "тормозов".
Ниже тест с выводом на lcd и консоль. Не "тормозит", основной цикл loop 18mcs.
IMG_2886.jpg
Test_DS1820_1.png
Test_DS1820_1.flp
--------------
И совсем простой тест - вывод на стандартный UART
Test_DS1820_2.png
Test_DS1820_2.flp
-------------
Пин должен быть подтянут к питанию резистором примерно 4.7к.
------------
Успехов.
Выбор определяется пользователем с учетом особенностей блока. Обычно рекомендации указаны в пользовательских блоков разработанные ecoins.
Спасибо за пояснение!ecoins писал(а): ↑14.10.2020{, 14:40}Выбор определяется пользователем с учетом особенностей блока. Обычно рекомендации указаны в пользовательских блоков разработанные ecoins.
Примеры:
1. Обработка строковых переменных. Это затратные по времени операции, но ведь их и не надо выполнять постоянно. Тоже можно рекомендовать и для вывода на консоль длинных сообщений. Поэтому эти операции правильнее выполнять в плате, которая вызывается как медленная задача (период 1 сек или 250мс).
2. Стандартный блок опроса аналоговых входов занимает примерно 150mcs. Длительная операция и запись в PWM. Эти задачи можно выполнять в плате оперативная задача(50 или 10мс), или как быстрая задача(100 или 25мс).
3. Работа с блоком LCD состоит из многих микроопераций. Эти блоки всегда нужно вызывать в плате "свободная задача". Если выполнять их как оперативная или быстрая задача, то визуально будет видно торможение вывода (хотя это и не столь критично).
---------------------------
Можно вызывать все как быстрые задачи - если будет что-то "тормозить" (например LCD), то станет понятно что и как полезно передвинуть.
Визуально хорошо видно на логическом анализаторе, для чего в проектах цикл loop можно наблюдать на пине с именем "контроль" (или на другом по выбору пользователя).
---------------------------
Важно сразу в проектах предусматривать возможность планирования вызова плат на выполнение по времени.
Диспетчер компактный и быстрый и соответственно использует небольшое кол-во процессорных ресурсов (память и время).
И по мере разработки проекта расставлять условия вызова плат - в эти условия могут входить не только период вызова, но и значения каких-то пользовательских переменных.