Страница 4 из 80

Разработки ecoins

Добавлено: 09.07.2019{, 14:05}
krom23
Всё фунциклирует, не на той скорости порта смотрел(115200).

Разработки ecoins

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

Разработки ecoins

Добавлено: 09.07.2019{, 18:45}
aidar_i
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

Добавлено: 09.07.2019{, 21:29}
ecoins
Поправил тест
5001.Тест для STM32JPG.JPG
5001.Тест для STM32JPG.JPG (32.84 КБ) 1652 просмотра

Разработки ecoins

Добавлено: 10.07.2019{, 02:56}
jorj22
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

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

Разработки ecoins

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

Разработки ecoins

Добавлено: 10.07.2019{, 16:38}
eric25
Запилили видео работы программы и библиотек - загрузка в контроллеры AVR328, Mega2560, ESP8266, ESP32, STM32, Arduino Due




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

Библиотеки RT https://yadi.sk/d/WobFkXdTGW0yew
и блоки FLprog https://yadi.sk/d/cFWQyM8x4gC-kQ

Разработки ecoins

Добавлено: 10.07.2019{, 17:37}
aidar_i
Видео не работает, зашел в ютуб , подписался, но видео и там не работает.

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

Разработки ecoins

Добавлено: 10.07.2019{, 17:49}
eric25
aidar_i писал(а):
10.07.2019{, 17:37}
Видео не работает, зашел в ютуб , подписался, но видео и там не работает.
Работаю над этим

Разработки ecoins

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

Разработки ecoins

Добавлено: 10.07.2019{, 18:57}
MegaF
плохо , смотреть не возможно.

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

Добавлено: 10.07.2019{, 20:36}
ecoins
Часть 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 КБ) 197 скачиваний

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

Разработки ecoins

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

По внешней памяти - не понял вопроса, о какой памяти Вы пишете?