Разработки ecoins

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

krom23
Лейтенант
Сообщения: 410
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 11
Откуда: Калуга
Имя: Андрей

Разработки ecoins

#61

Сообщение krom23 » 09.07.2019{, 14:05}

Всё фунциклирует, не на той скорости порта смотрел(115200).

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

Разработки ecoins

#62

Сообщение ecoins » 09.07.2019{, 14:10}

К вопросу в #52:
Результаты проверки быстродействия на оператор digitalWrite():[attachment=0]5010_Фото быстродействия контроллеров на digitalWrite.JPG[/attachment
Графики в следующей последовательности:Nano,STM32F103C,ESP32,ESP8266
Следующие цифры:
Nano -3.3мкс
STM32 - 1мкс
ESP32,ESP8266 - примерно 300ns.
Вложения
5010_Фото быстройдействия контроллеров на digitalWrite.JPG
5010_Test_speed_digitalWrite.ino
(3.62 КБ) 8 скачиваний

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

Разработки ecoins

#63

Сообщение aidar_i » 09.07.2019{, 18:45}

eric25 писал(а):
09.07.2019{, 13:35}
Соответствие пинов на STM
У вас в последней строке: РС13 = 32 IRQ = 29 это не ошибка? Дб не 32? PB13 тоже имеет такое значение.
PS.Открыл скетч, там ошибка, вместо РС13 Вы поставили РВ13.

Отправлено спустя 7 минут 24 секунды:
Исправил, вот получил:
PA00=0 IRQ=0
PA04=4 IRQ=4
PA15=15 IRQ=15
PB0=16 IRQ=16
PB1=17 IRQ=17
PB2=18 IRQ=18
PB3=19 IRQ=19
PB9=25 IRQ=25
PB10=26 IRQ=26
PB11=27 IRQ=27
PB12=28 IRQ=28
PB13=29 IRQ=29
PB14=30 IRQ=30
PB15=31 IRQ=31
PC13=32 IRQ=32

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

Разработки ecoins

#64

Сообщение ecoins » 09.07.2019{, 21:29}

Поправил тест
5001.Тест для STM32JPG.JPG
5001.Тест для STM32JPG.JPG (32.84 КБ) 322 просмотра
Вложения
5001_Test_pins_for_STM32.ino
(1.89 КБ) 6 скачиваний

jorj22
Рядовой
Сообщения: 31
Зарегистрирован: 03.07.2018{, 16:08}
Репутация: 0
Имя: Юрий

Разработки ecoins

#65

Сообщение jorj22 » 10.07.2019{, 02:56}

ecoins писал(а):
09.07.2019{, 14:10}
К вопросу в #52:
Результаты проверки быстродействия на оператор digitalWrite():5010_Фото быстродействия контроллеров на digitalWrite.JPG[/attachment
Графики в следующей последовательности:Nano,STM32F103C,ESP32,ESP8266
Следующие цифры:
Nano -3.3мкс
STM32 - 1мкс
ESP32,ESP8266 - примерно 300ns.
Большое спасибо! В третьем и четвером канале присутствуют импульсы разной скважности, с чем это связано?

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

Разработки ecoins

#66

Сообщение ecoins » 10.07.2019{, 04:40}

По поводу импульсов в 3-4 канале. Могу предположить, что это связано с работой внутренних программ, связанных с обслуживанием таймеров. Собственно это есть на всех контроллерах, но на ESP32 и ESP8266 заметнее из-за их высокого быстродействия.

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

Разработки ecoins

#67

Сообщение ecoins » 10.07.2019{, 05:01}

Об особенностях ESP32 и ЕSP8266 при написании библиотек с учётом их использования в среде FLProg.
Чтобы видеть переменные в разных блоках, связанные одной библиотекой (например вывод в LCD разных строк), приходиться прибегать к средствам адресной арифметики C++. Так вот из-за большого объема загружаемых скетчей для ESP32 и ESP8266 (к ним прикрепляются большие куски внутренних системных билиотек) адресное пространство скетча превышает некоторый порог, из-за чего могут возникать ошибки в адресации. Это проявляется на этапе выполнения скетчей в форме постоянной перезагрузки контроллера при выполнении некоторых операций, связанных с адресной арифметикой. Один и тот же скетч будет прекрасно работать на AVR328, Меga, DUE, STM32, и может периодически перезапускаться на ESP32 и ESP8266.
Проблема преодолима путём разных ухищрений, но её приходится принимать во внимание при написании библиотек с учётом использования их в среде FLProg . Если писать только на C++, то там проще из-за доступности всех переменных.
Такая вот особенность...

eric25
Рядовой
Сообщения: 13
Зарегистрирован: 14.02.2017{, 14:43}
Репутация: 0
Имя: Андрей

Разработки ecoins

#68

Сообщение eric25 » 10.07.2019{, 16:38}

Запилили видео работы программы и библиотек - загрузка в контроллеры AVR328, Mega2560, ESP8266, ESP32, STM32, Arduino Due




P/S/ Качество ставьте 1080р (пины лучше видно)

Библиотеки RT https://yadi.sk/d/WobFkXdTGW0yew
и блоки FLprog https://yadi.sk/d/cFWQyM8x4gC-kQ
Последний раз редактировалось eric25 11.07.2019{, 15:03}, всего редактировалось 2 раза.
________________________________________________________-
Участник "нашей команды" ecoins)

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

Разработки ecoins

#69

Сообщение aidar_i » 10.07.2019{, 17:37}

Видео не работает, зашел в ютуб , подписался, но видео и там не работает.

Отправлено спустя 7 минут 6 секунд:
Вопрос по библиотекам: Вы ранее выкладывали и сейчас выкладываете, они отличаются чем то?
Какую принять? RT_00_HW_Main_v2.4 или RT_00_HW_Main_v3.0.
Или удалить прежние и поставить эти? Тогда удалите выложенные прежде.

eric25
Рядовой
Сообщения: 13
Зарегистрирован: 14.02.2017{, 14:43}
Репутация: 0
Имя: Андрей

Разработки ecoins

#70

Сообщение eric25 » 10.07.2019{, 17:49}

aidar_i писал(а):
10.07.2019{, 17:37}
Видео не работает, зашел в ютуб , подписался, но видео и там не работает.
Работаю над этим
________________________________________________________-
Участник "нашей команды" ecoins)

aidar_i
Капитан
Сообщения: 982
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 89
Откуда: Уфа
Имя: Айдар
Контактная информация:

Разработки ecoins

#71

Сообщение aidar_i » 10.07.2019{, 18:25}

Сейчас все нормально. Но просьба, звук перезаписать. Неразборчивая речь из за качества записи, чтобы что то понять нужно сильно напрягаться, так и не смог до конца досмотреть.
PS. Убрал эквалайзером басы, вроде, уже слушать легче.

MegaF
Рядовой
Сообщения: 36
Зарегистрирован: 05.09.2018{, 10:09}
Репутация: 4
Имя: farad

Разработки ecoins

#72

Сообщение MegaF » 10.07.2019{, 18:57}

плохо , смотреть не возможно.

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

Разработки ecoins

#73

Сообщение ecoins » 10.07.2019{, 19:08}

По библиотекам. Новые версии появляться будут, пока они совместимы - в них только улучшается код, оформление и добавляются новые функции.
Стараемся, чтобы библиотеки были читаемыми для немного владеющих C++.
На вопросы готовы отвечать, что-то может быть добавлено.

vovka1973
Лейтенант
Сообщения: 478
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 8
Откуда: kazahstan

Разработки ecoins

#74

Сообщение vovka1973 » 10.07.2019{, 19:22}

ecoins писал(а):
10.07.2019{, 19:08}
По библиотекам. Новые версии появляться будут, пока они совместимы - в них только улучшается код, оформление и добавляются новые функции.
Стараемся, чтобы библиотеки были читаемыми для немного владеющих C++.
На вопросы готовы отвечать, что-то может быть добавлено.
Вопрос такой ,не могу сообразить как теперь программировать в этой программе ,получается только вашими блоками можно или все что есть в арсенале или я ничего не понял :smile37:
Изображение

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

Разработки ecoins

#75

Сообщение ecoins » 10.07.2019{, 19:59}

Программировать можно используя все что есть в арсенале + наши пользовательские блоки, но:
1. Наши блоки автоматически идентифицируют контроллеры на базе AVR328, Mega2560, DUE, ESP32, STM32F103C, ESP8266.
список может быть расширен.
2. Только наши блоки обеспечивают перенастройку пинов и адресов внешних устройств под нужный тип контроллера.
3. Наши блоки для работы с внешними устройствами толерантны к наличию их в программе, даже если их физически нет в контроллере -
ошибок компиляции не будет. Для избежания излишних коллизий, достаточно чтобы не работающее устройство или пин имели адрес
<0 (обычно -1).
4. Блоки для работы с внешними устройствами созданы с учетом работы в режиме реального времени - в них нет delay() и они не "тормозят" программу, как например обычные блоки Lcd-HD44780, HC-SR04, MCP23017, DHT22 и т.п.
5. Наши блоки имеют удобные функции для работы со строками - бывают полезно при отладке программ.
6. Наши блоки обеспечивают планирование вызова плат в планируемое время с учетом некоторого приоритета.
7. И еще есть всякие полезности.

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

Разработки ecoins

#76

Сообщение ecoins » 10.07.2019{, 20:36}

Часть 1 описания библиотеки RT_HW_Main.h
Описание библиотеки RT_HW_Main.h v.3.x
1. Введение.
1.1. Назначение библиотеки.
Библиотека RT_HW_Main.h создана для разработки пользовательских блоков в системе визуального программирования FLProg для Arduino:
https://flprog.ru - автор/разработчик Сергей Глушенко.
Библиотека написана на C++ и может использоваться самостоятельно в среде Arduino.
Перед испытанием в среде FLProg, библиотека тестируется в среде Arduino и сопровождается примерами в формате ".ino".
1.2. Разработчики библиотеки.
Команда ecoins - ecoins@mail.ru, ecoins1994@gmail.com
1.3. Цели создания библиотеки:
1.3.1. Создание проектных инструментов для создания программного обеспечения, поддерживающего режим реального времени проектов в среде Arduino.
1.3.2. Предоставление инструментов (в виде функций библиотеки) для проектирования пользовательских блоков в FLProg.
1.3.3. Реализация функций, устраняющих несовместимость некоторых функций различных контроллеров, которая по каким-то причинам не реализована в Arduino IDE, например, различная разрядность при работе с аналоговыми сигналами, PWM, особенности работы с интерфейсами UART, i2c и т.п.
1.4. Структура библиотеки.
Библиотека состоит из одного заголовочного файла RT_HW_Main.h и четырех файлов с функциями RT_HW_BOARD.cpp, RT_HW_STRING.cpp, RT_HW_Time.cpp, RT_HW_Task.cpp.
Фактически это четыре разные библиотеки, объединенные одним заголовочным файлом.
1.5. Последствия включение в программный код вызова библиотеки.
Библиотека включается в программу строкой #include "RT_HW_Main.h"
Этот вызов создает 4 объекта (их не надо объявлять в программе), к функциям и параметрам которых открыт доступ через:
* RT_HW_Board.xxx - библиотека для идентификации контроллеров и работы пинами;
* RT_HW_String.xxx - библиотека утилит для работы со строковыми переменными;
* RT_HW_Time.xxx - библиотека функций для работы с временем - измерение, задержки, периодический вызов и т.п.;
* RT_HW_Task.xxx - планировщик (диспетчер задач) по времени и сопутствующие функции.
Вызов #include "RT_HW_Main.h" может быть многократным -это ни на что не влияет.
1.6. Данные для используемых функций.
Некоторые функции требуют хранение внутренних параметров (флаги, счетчики и т.п.). Для таких функций предусматривается создание своего объекта с данными. Таким образом удается избегать дублирование программного кода при использовании однотипных устройств - в данной библиотеке это некоторые функции при работе с пинами.
1.7. Совместимость с другими библиотеками.
Библиотека не влияет на работу сторонних библиотек.
Библиотеки ecoins, написанные для других устройств (датчики, платы и т.п.), имеют имена, которые имеют формат RT_HW_xxx и используют общие подходы к написанию кода.
Другие библиотеки могут использовать функции данной библиотеки, но в большинстве случаев они содержат необходимые фрагменты кода из данной библиотеки. Это незначительно увеличивает размер программного кода, но зато сохраняет автономность дополнительных библиотек.

Последующие главы (в работе):
2. Описание библиотеки RT_HW_Board.xxx
3. Описание библиотеки RT_HW_String.xxx
4. Описание библиотеки RT_HW_Time.xxx
5. Описание библиотеки RT_HW_Task.xxx
6. Заключение.
Описание библиотеки RT_HW_Main.txt
(3.25 КБ) 27 скачиваний

Ingwar
Лейтенант
Сообщения: 603
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 25
Откуда: Ленобласть
Имя: Игорь

Разработки ecoins

#77

Сообщение Ingwar » 10.07.2019{, 21:11}

ecoins, Чтобы не задавать несколько вопросов и проверить себя на "уровень вхождения", попрошу выложить пример с использованием минимально необходимого кол-ва Ваших блоков (без консолей, датчиков, i2c и т. д. с поддержкой всех контроллеров) и блоков Flprog. Хотя бы "блинк".
И еще, можно ли использовать Ваше решение с "быстрыми" входами/выходами?
С точки зрения геометрической прогрессии, если посмотреть сверху,
то снизу покажется, что сбоку ничего не видно.

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

Разработки ecoins

#78

Сообщение ecoins » 10.07.2019{, 21:20}

Быстрые выходы - это актуально только на 8-ми разрядных контроллерах, на остальных это почти не имеет значение.
Наш блок улучшает скорость работы с пином на выход за счет того, что запись в пин происходит только при изменении выдаваемого значения.
По примеру типа "blink" принято - оно так и планировалось, от простого к более сложному.
А в целом все оказывается и не сложно.

krom23
Лейтенант
Сообщения: 410
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 11
Откуда: Калуга
Имя: Андрей

Разработки ecoins

#79

Сообщение krom23 » 10.07.2019{, 21:34}

ecoins, будьте добры, первыложите базовый пример, а то там недоработочка, а как её исправлять пока не совсем понятно.
Скриншот 11111111.png
И ещё вопрос, как обстоят дела со внешней памятью, в дереве проекта если включу внешнюю память, система воспримет это?

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

Разработки ecoins

#80

Сообщение ecoins » 10.07.2019{, 22:35}

Плата на которую Вы указали - отключена (не компируется).
Блок, который вы увидели были сделан для будущих функций и ни на что не влияет - выходы никуда не подключены.

По внешней памяти - не понял вопроса, о какой памяти Вы пишете?
Последний раз редактировалось ecoins 10.07.2019{, 22:37}, всего редактировалось 1 раз.

Ответить

Вернуться в «Библиотеки пользователей»

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

Сейчас этот форум просматривают: verbilo и 1 гость