Разработки ecoins

Библиотеки для разных контроллеров

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#561

Сообщение tolochko » 11.05.2020{, 21:19}

Здравствуйте ecoins
Как у нас дела с блоком LCD
Очень нужен особенно с вх. EN

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#562

Сообщение ecoins » 12.05.2020{, 14:31}

Вход EN теперь работает следующим образом: при EN=1->EN=0 сразу очищается поле. При EN=0->EN=1 через три такта (обращения к блоку) начинается штатный вывод: 1 раз выводится безусловно, далее периодически осуществляется вывод при изменении переменной.
-----
В действительности сделано много еще.
Работает вывод строковой переменной без буферирования этой переменной. Вывод осуществляется при изменении контрольной суммы строковой переменной.
Вывод текстов из PROGMEМ и вывод переменных (int,hex,float) реализован без использования строковых переменных - код стал компактнее, быстрее, меньше задействовано RAM.
Мерцание, которое вызывается входом blink=1 для всех блоков реализуется с одной периодичностью =400мс.
------
Сейчас идет тестирование и доработка. Это еще пару дней.
Если важно, то можно выложить текущую рабочую версию.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#563

Сообщение tolochko » 12.05.2020{, 16:11}

Не надо я готов подождать
Пока на скаде все видно

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#564

Сообщение ecoins » 18.05.2020{, 21:16}

Новая версия библиотеки - в основном обновлено (переделан) LCD HD44780
Библиотека пользовательских блоков:
Библиотека ECOINS_v2.001_18.05.2020_work.ubl
(1.95 МБ) 100 скачиваний
Библиотеки для Arduino IDE:
RT_HW_LIB_60_180520_work.zip
(97.98 КБ) 95 скачиваний
Большой пример на FLProg - пришлось упаковать:
Test_New_Lib_v10_18.05.20_test_Console.zip
(431.88 КБ) 89 скачиваний
--------------------------------
Что нового.
1.Аккуратнее сделана работа c PROGMEM - это в библиотеке RT_HW_Boards.h. Ранее изредка возникали проблемы при одновременной работе этой библиотеки и библиотеки на LCD. Проблемы были именно на MEGA2560 - на Nano,DUE,ESP,STM32 все было нормально. Это проблема на просторах интернета всплывала, много времени пришлось потратить - сейчас должно работать.
В библиотеке дисплея RT_HW_LCD_HD44780 полностью отказались от PROGMEM - не нашел пока способа косвенной адресации - для ESP8266 библиотека для работы с PROGMEM сделана иначе, "костыли" вставлять не решился, пришлось много чего переработать. А жаль. На всех контроллерах кроме ESP все работало и удалось избавиться от работы со String (много места отнимает). Пришлось искать компромисс.
2.Вывод численных переменных в LCD. Перед каждой переменной можно добавить заголовок, в конце суффикс (один символ). Расширенные блоки имеют вход "blink" - мерцание и вход EN - блокировка. Когда EN 1->0 поле очищается.
2.Вывод текстовых,булевых и символьных переменных в расширенных блоках LCD также предусматривает входы "blink" и EN.
--------
В тестовом примере на MEGA2560 работают:
1. На шине i2c два LCD HD44780 (16x2 и 20x4) на которых отображается динамически меняющиеся данные.
2. На шине i2c два 16-разрядных регистра MCP23017 c динамически меняющиеся данные.
3. На шине SPI сдвиговый регистр 74HC595 c динамически меняющиеся данные.
4. На шине SPI еще один LCD HD44780 16X2 c динамически меняющиеся данные. Это самый быстрый способ работы с LCD.
5. Через 6 пинов напрямую подключен еще один LCD. Всего в примере 4 дисплея, возможна одновременная работа до 15 дисплеев.
6. Еще работами с пинами...
7. Еще работа с консолью - очень удобный инструмент для отладки обладающий существенно большими возможностями чем блок UART в FLProg.
8. и т.п.
------------
IMG_2697.JPG
---------
И ничего не тормозит и можно добавлять много плат с задачами.
-------
Проект грузится в ESP8266,ESP32,STM32F103, Arduino DUE, Mega2560.
Если отключить часть плат для экономии памяти грузится и в Nano.
При этом проект переделывать не надо и все работает, тип контроллера определяется при загрузке в Arduino IDE.

Аватара пользователя
bichek
Рядовой
Сообщения: 15
Зарегистрирован: 11.05.2020{, 13:12}
Репутация: 0
Откуда: Семикаракорск Ростовской обл.
Имя: Александр

Разработки ecoins

#565

Сообщение bichek » 18.05.2020{, 21:54}

ecoins писал(а):
18.05.2020{, 21:16}
Библиотека пользовательских блоков:
Мужики,а где же описание блоков.В предыдущем релизе было описание блоков. :smile453:

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#566

Сообщение ecoins » 18.05.2020{, 22:11}

viewtopic.php?t=5426#p72349
В 1-ом посте - описание блоков в целом остались прежними.
Со временем руководства будут дополняться, исправляться, улучшаться...

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#567

Сообщение olddolin » 19.05.2020{, 20:22}

ecoins, Доброго здоровья! В 701й версии тестили библиотеки? Чет ругается на неправильные в папке 60.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#568

Сообщение ecoins » 19.05.2020{, 23:45}

olddolin писал(а):
19.05.2020{, 20:22}
ecoins, Доброго здоровья! В 701й версии тестили библиотеки? Чет ругается на неправильные в папке 60.
Какой у Вас контроллер и не понял что-такое папка 60?
Неплохо бы файл прислать, которым тестируется.
Если контроллер Nano, то там всплыли нюансы и они сейчас поправляются.

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#569

Сообщение olddolin » 20.05.2020{, 05:15}

Файл ваш тестовый, к сожалению я не дома, по памяти пишу. У вас пвпки библиотек под номерами RT_10 и прочие, есть и с цифрой 60
Я не заливаю в контроллер, просто компилирую.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#570

Сообщение ecoins » 20.05.2020{, 10:12}

У Вас наверное контроллер Nano, там действительно была внесена неточность.
Прикладываю исправленную библиотеку.
RT_HW_LIB_61_180520_work.zip
Также прикладываю тестовый пример для Arduino Nano
Test_New_Lib_v11_Nano_19.05.20_test_Console.zip
и полный
Test_New_Lib_v11_19.05.20_test_Console.zip
-----
К большому сожалению так до конца и не удалось решить полностью проблему PROGMEM для Mega2560.
Предполагаю, что проблема лежит в области компилятора C++ - для ESP,DUE,STM32 в Arduino IDE используется другая версия компилятора.
На примерах это проявляется в следующем - если загрузить усеченный пример в MEGA2560 (тот что для Nano) скетч грузится, но MEGA2560 встает в режим перезагрузки - такое обычно бывает из-за ошибки адресации к памяти. Другой пример грузится и работает.
Проблема не совсем связано с размером скетча - может повлиять изменение порядка размещения плат. В большинстве случаев работает, но иногда начинаются проблемы.
PROGMEM используется в библиотеке RT_HW_BOARDS.h. Эта библиотека сейчас используется только в блоках настройки параметров и работы с пинами. Если эти пользовательские блоки не использовать, проблем не должно быть вообще.
Проблема системная и пока мы размышляем над её преодолением.
Если у кого-то есть подсказки, помогите!
-------
Успехов.

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#571

Сообщение olddolin » 20.05.2020{, 10:50}

А куда вы приложили исправления, что-то не видно файлов?
контроллер я не менял, мега у вас в тестовом проекте.
Прилагаю лог.
Документ Microsoft Office Word.docx
(10.64 КБ) 54 скачивания
Компьютер с виндой 10, версия фл 701 портабле единственная на компе.
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#572

Сообщение ecoins » 20.05.2020{, 14:05}

olddolin писал(а):
20.05.2020{, 10:50}
А куда вы приложили исправления, что-то не видно файлов
Прикрепляю:
RT_HW_LIB_61_180520_work.zip
(100.22 КБ) 81 скачивание
Test_New_Lib_v12_Nano_20.05.20_test_Console.zip
(524.59 КБ) 70 скачиваний
Test_New_Lib_v12_20.05.20_test_Console.zip
(520.79 КБ) 94 скачивания
----
Не совсем понял, почему не прикрепились файлы прошлый раз.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#573

Сообщение ecoins » 20.05.2020{, 14:12}

olddolin писал(а):
20.05.2020{, 10:50}
R
Контроллер я не менял, мега у вас в тестовом проекте.
Прилагаю лог.
Документ Microsoft Office Word.docx
(10.64 КБ) 2 скачивания
Компьютер с виндой 10, версия фл 701 портабле единственная на компе.
Проверил в версии FLPROG 7.01 portable 64, windows 10.
По логу у Вас FLProg возможно стоит старая библиотека пользовательских блоков и потому в блоке вывода String не совпадает порядок переменных.
Библиотеку прикрепил.
------
Грузил в Nano (отдельный проект - прикреплен), MEGA2560,DUE,ESP8266,ESP32,STM32F103RE (расширенный проект без отключения части плат - прикреплен).

Аватара пользователя
olddolin
Сержант
Сообщения: 245
Зарегистрирован: 08.09.2017{, 19:47}
Репутация: 14
Откуда: Тверь
Имя: Вадим

Разработки ecoins

#574

Сообщение olddolin » 20.05.2020{, 15:52}

Пошло дело, спасибо! Будем изучать
Электронщик как врач, ему нужно постоянно учиться чтобы соответствовать времени.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#575

Сообщение ecoins » 22.05.2020{, 18:01}

Ситуация на заметку: если кому-нибудь потребуется использовать выходы DAC на контроллере Arduino Due!
Используйте только DAC1 (pin67).
Реализация ЦАП (DAC) весьма не тривиальна и при работе с DAC0 малых величинах (<100) контроллер не просто зависает, но и портит скетч - приходиться его перепрошивать.
Сейчас мы используем только DAC1 (пин 67) - пока проблем не было. Проверяли и на 8-ми и на 12 разрядах разрешения.
Здесь https://forum.arduino.cc/index.php/topi ... msg1134372 пользователи делятся с аналогичными проблемами, но к выводам приходят не верным.
По моим исследованиям (это уже 3-й заход на проблему за последний год) проблемы лежат в реализации кода в библиотеке Arduino IDE.
----------

Avazbek
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2019{, 09:32}
Репутация: 1
Имя: Avazbek

Разработки ecoins

#576

Сообщение Avazbek » 22.05.2020{, 22:07}

Здравствуйте можете обьяснить зачем такая заморочка с входом EN ? Нельзя ли сделать привычней?

Отправлено спустя 6 минут 43 секунды:
Не получается построить многоуровневое меню с штатном блоком меню

Отправлено спустя 2 минуты 37 секунд:
Нельзя ли придерживаться стандарту.

Отправлено спустя 2 минуты 48 секунд:
Простой заменой штатного блока lcd на ваш не получается

Отправлено спустя 36 минут 5 секунд:
И зачем блоки вывода строки без входа EN для чего ? Кроме демонстрации на что ещё годится?

Avazbek
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2019{, 09:32}
Репутация: 1
Имя: Avazbek

Разработки ecoins

#577

Сообщение Avazbek » 22.05.2020{, 23:08}

Можно ли сделать так чтобы использовать вход en по прямому назначению ? Если нет назовите его по другому on/off start/stop . И пожалуйста не забудьте написать описания в параметрах блока .Если конечно вы его не делали для личного пользования

Отправлено спустя 12 минут 10 секунд:
av писал(а):
22.05.2020{, 22:59}
Avazbek, это плата за увеличение скорости работы дисплея и производительности микроконтроллера. Как говорится за все надо платить :yes:
Получается урезанием функционала увеличиваем скорость? Так я понял, берём штук 15 lcd1602 и леплю меню из блоков вывода строки без входа en . Для каждого пункта меню свой lcd1602 , зато на arduino нано и без тормозов да???

Отправлено спустя 14 минут 48 секунд:
Ещё в настройках блока есть пункт про какой то период в тиках если не ошибаюсь. Что за период ? Что за тики и как главное высчитать?

Отправлено спустя 9 минут :
Вход blynk тоже сомнительный функционал по моему . Ну может в некоторых местах можно и поморгать, чисто ради косметики . В острой необходимости можно и штатными средствами реализовать,если конечно вход еn будет правильно работать

Отправлено спустя 17 минут 31 секунду:
Извините конечно я уважаю ваш труд . Я хочу пользоваться вашими блоками , жду новые релизы .Но что-то не получается.Мало информативность отталкивает наверное не только меня . Конечно у вас специфический склад ума для вас все просто и ясно , для рядового пользователя florog совсем не ясно

Отправлено спустя 12 минут 34 секунды:
Например собираюсь сделать универсальный контроллер, как мне сделать многоуровневый меню с вашим блоком lcd ? Lcd собираюсь использовать один?

Avazbek
Рядовой
Сообщения: 21
Зарегистрирован: 24.10.2019{, 09:32}
Репутация: 1
Имя: Avazbek

Разработки ecoins

#578

Сообщение Avazbek » 23.05.2020{, 00:18}

Например такой
https://alexgyver.ru/gyvercontrol/

Отправлено спустя 4 минуты 45 секунд:
av писал(а):
23.05.2020{, 00:15}
Avazbek, а чем вас штатные блоки не устраивают ? Сам делал множество меню на штатных блоках с энкодером на Ардуино нано и глюков не наблюдалось. Просто нужно правильно распределять блоки по платам и использовать выполнение по условию.
штатные блоки устраивают , всё делаю на них . Но я ждал от команды ecoins нечто совершенное

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#579

Сообщение ecoins » 23.05.2020{, 08:24}

Avazbek писал(а):
22.05.2020{, 22:55}
Здравствуйте можете обьяснить зачем такая заморочка с входом EN ? Нельзя ли сделать привычней?
Блок EN отключает блок, при этом очищает ранее записанное поле.
Это сделано по рекомендации пользователя memberlist.php?mode=viewprofile&u=5742 Dryundel.
Avazbek писал(а):
22.05.2020{, 22:55}
Нельзя ли придерживаться стандарту.
Если Вы уточните содержание стандарта, то возможно мы что-то поправим.
О стандартной библиотеке LCD (возможно стандарты вытекают из неё) - она очень древняя, скорее это больше демонстрация возможности LCD, работает только со строковыми переменными, а в блок стандартный блок FLProg является источников "тормозов" проекта - об этом уже много раз писалось.
Avazbek писал(а):
22.05.2020{, 22:55}
И зачем блоки вывода строки без входа EN для чего ? Кроме демонстрации на что ещё годится?
Во многих проектах требуется простое отображение данных на Lcd и блоки без дополнительных входов EN и blink использовать удобнее и быстрее.
Такие блоки предпочитают дети в нашей Академии и разработчики проектов.
В последнем случае иногда даже подключается отдельный Lcd (благо библиотека поддерживает одновременную работу 15 дисплеев) на которые выводятся отладочные данные. Особенно удобно наблюдать за булевыми переменными - минимальная скорость обновления 50мс, но такую скорость уже глаз не замечает, обычно устанавливается период обновления от 150 мс и выше.

ecoins
Полковник
Сообщения: 2921
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#580

Сообщение ecoins » 23.05.2020{, 08:31}

av писал(а):
23.05.2020{, 00:27}
Возможно команда сделает более универсальные блоки на новой версии редактора ПБ.
Да, со временем, после отработки новой версии (пока есть проблемы и с совместимостью, и с одновременной работой старой и новой версии) блоки будут сделаны новые.
Однако не вполне ясно, что имеется под "универсальными блоками"?
Стандартные блоки работают со строковыми переменными - такой блок lcd.String предусмотрен и работает. Работать со строками не самое верное решение (много памяти и много времени отнимают), но он по смыслу должен полностью заменять стандартный блок.

Закрыто

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