Разработки ecoins
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
К вопросу в #52:
Результаты проверки быстродействия на оператор digitalWrite():[attachment=0]5010_Фото быстродействия контроллеров на digitalWrite.JPG[/attachment
Графики в следующей последовательности:Nano,STM32F103C,ESP32,ESP8266
Следующие цифры:
Nano -3.3мкс
STM32 - 1мкс
ESP32,ESP8266 - примерно 300ns.
Результаты проверки быстродействия на оператор digitalWrite():[attachment=0]5010_Фото быстродействия контроллеров на digitalWrite.JPG[/attachment
Графики в следующей последовательности:Nano,STM32F103C,ESP32,ESP8266
Следующие цифры:
Nano -3.3мкс
STM32 - 1мкс
ESP32,ESP8266 - примерно 300ns.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Разработки ecoins
У вас в последней строке: РС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
Большое спасибо! В третьем и четвером канале присутствуют импульсы разной скважности, с чем это связано?ecoins писал(а): 09 июл 2019, 14:10 К вопросу в #52:
Результаты проверки быстродействия на оператор digitalWrite():5010_Фото быстродействия контроллеров на digitalWrite.JPG[/attachment
Графики в следующей последовательности:Nano,STM32F103C,ESP32,ESP8266
Следующие цифры:
Nano -3.3мкс
STM32 - 1мкс
ESP32,ESP8266 - примерно 300ns.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
По поводу импульсов в 3-4 канале. Могу предположить, что это связано с работой внутренних программ, связанных с обслуживанием таймеров. Собственно это есть на всех контроллерах, но на ESP32 и ESP8266 заметнее из-за их высокого быстродействия.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
Об особенностях ESP32 и ЕSP8266 при написании библиотек с учётом их использования в среде FLProg.
Чтобы видеть переменные в разных блоках, связанные одной библиотекой (например вывод в LCD разных строк), приходиться прибегать к средствам адресной арифметики C++. Так вот из-за большого объема загружаемых скетчей для ESP32 и ESP8266 (к ним прикрепляются большие куски внутренних системных билиотек) адресное пространство скетча превышает некоторый порог, из-за чего могут возникать ошибки в адресации. Это проявляется на этапе выполнения скетчей в форме постоянной перезагрузки контроллера при выполнении некоторых операций, связанных с адресной арифметикой. Один и тот же скетч будет прекрасно работать на AVR328, Меga, DUE, STM32, и может периодически перезапускаться на ESP32 и ESP8266.
Проблема преодолима путём разных ухищрений, но её приходится принимать во внимание при написании библиотек с учётом использования их в среде FLProg . Если писать только на C++, то там проще из-за доступности всех переменных.
Такая вот особенность...
Чтобы видеть переменные в разных блоках, связанные одной библиотекой (например вывод в LCD разных строк), приходиться прибегать к средствам адресной арифметики C++. Так вот из-за большого объема загружаемых скетчей для ESP32 и ESP8266 (к ним прикрепляются большие куски внутренних системных билиотек) адресное пространство скетча превышает некоторый порог, из-за чего могут возникать ошибки в адресации. Это проявляется на этапе выполнения скетчей в форме постоянной перезагрузки контроллера при выполнении некоторых операций, связанных с адресной арифметикой. Один и тот же скетч будет прекрасно работать на AVR328, Меga, DUE, STM32, и может периодически перезапускаться на ESP32 и ESP8266.
Проблема преодолима путём разных ухищрений, но её приходится принимать во внимание при написании библиотек с учётом использования их в среде FLProg . Если писать только на C++, то там проще из-за доступности всех переменных.
Такая вот особенность...
Разработки ecoins
Запилили видео работы программы и библиотек - загрузка в контроллеры AVR328, Mega2560, ESP8266, ESP32, STM32, Arduino Due
https://youtu.be/LezWJONPso8
P/S/ Качество ставьте 1080р (пины лучше видно)
Библиотеки RT https://yadi.sk/d/WobFkXdTGW0yew
и блоки FLprog https://yadi.sk/d/cFWQyM8x4gC-kQ
https://youtu.be/LezWJONPso8
P/S/ Качество ставьте 1080р (пины лучше видно)
Библиотеки RT https://yadi.sk/d/WobFkXdTGW0yew
и блоки FLprog https://yadi.sk/d/cFWQyM8x4gC-kQ
Последний раз редактировалось eric25 11 июл 2019, 15:03, всего редактировалось 2 раза.
________________________________________________________-
Участник "нашей команды" ecoins)
Участник "нашей команды" ecoins)
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Разработки ecoins
Видео не работает, зашел в ютуб , подписался, но видео и там не работает.
Отправлено спустя 7 минут 6 секунд:
Вопрос по библиотекам: Вы ранее выкладывали и сейчас выкладываете, они отличаются чем то?
Какую принять? RT_00_HW_Main_v2.4 или RT_00_HW_Main_v3.0.
Или удалить прежние и поставить эти? Тогда удалите выложенные прежде.
Отправлено спустя 7 минут 6 секунд:
Вопрос по библиотекам: Вы ранее выкладывали и сейчас выкладываете, они отличаются чем то?
Какую принять? RT_00_HW_Main_v2.4 или RT_00_HW_Main_v3.0.
Или удалить прежние и поставить эти? Тогда удалите выложенные прежде.
Разработки ecoins
Работаю над этимaidar_i писал(а): 10 июл 2019, 17:37 Видео не работает, зашел в ютуб , подписался, но видео и там не работает.
________________________________________________________-
Участник "нашей команды" ecoins)
Участник "нашей команды" ecoins)
-
- Полковник
- Сообщения: 3360
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 14 раз
- Поблагодарили: 100 раз
- Контактная информация:
Разработки ecoins
Сейчас все нормально. Но просьба, звук перезаписать. Неразборчивая речь из за качества записи, чтобы что то понять нужно сильно напрягаться, так и не смог до конца досмотреть.
PS. Убрал эквалайзером басы, вроде, уже слушать легче.
PS. Убрал эквалайзером басы, вроде, уже слушать легче.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
По библиотекам. Новые версии появляться будут, пока они совместимы - в них только улучшается код, оформление и добавляются новые функции.
Стараемся, чтобы библиотеки были читаемыми для немного владеющих C++.
На вопросы готовы отвечать, что-то может быть добавлено.
Стараемся, чтобы библиотеки были читаемыми для немного владеющих C++.
На вопросы готовы отвечать, что-то может быть добавлено.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
Разработки ecoins
Вопрос такой ,не могу сообразить как теперь программировать в этой программе ,получается только вашими блоками можно или все что есть в арсенале или я ничего не понялecoins писал(а): 10 июл 2019, 19:08 По библиотекам. Новые версии появляться будут, пока они совместимы - в них только улучшается код, оформление и добавляются новые функции.
Стараемся, чтобы библиотеки были читаемыми для немного владеющих C++.
На вопросы готовы отвечать, что-то может быть добавлено.

-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
Программировать можно используя все что есть в арсенале + наши пользовательские блоки, но:
1. Наши блоки автоматически идентифицируют контроллеры на базе AVR328, Mega2560, DUE, ESP32, STM32F103C, ESP8266.
список может быть расширен.
2. Только наши блоки обеспечивают перенастройку пинов и адресов внешних устройств под нужный тип контроллера.
3. Наши блоки для работы с внешними устройствами толерантны к наличию их в программе, даже если их физически нет в контроллере -
ошибок компиляции не будет. Для избежания излишних коллизий, достаточно чтобы не работающее устройство или пин имели адрес
<0 (обычно -1).
4. Блоки для работы с внешними устройствами созданы с учетом работы в режиме реального времени - в них нет delay() и они не "тормозят" программу, как например обычные блоки Lcd-HD44780, HC-SR04, MCP23017, DHT22 и т.п.
5. Наши блоки имеют удобные функции для работы со строками - бывают полезно при отладке программ.
6. Наши блоки обеспечивают планирование вызова плат в планируемое время с учетом некоторого приоритета.
7. И еще есть всякие полезности.
1. Наши блоки автоматически идентифицируют контроллеры на базе AVR328, Mega2560, DUE, ESP32, STM32F103C, ESP8266.
список может быть расширен.
2. Только наши блоки обеспечивают перенастройку пинов и адресов внешних устройств под нужный тип контроллера.
3. Наши блоки для работы с внешними устройствами толерантны к наличию их в программе, даже если их физически нет в контроллере -
ошибок компиляции не будет. Для избежания излишних коллизий, достаточно чтобы не работающее устройство или пин имели адрес
<0 (обычно -1).
4. Блоки для работы с внешними устройствами созданы с учетом работы в режиме реального времени - в них нет delay() и они не "тормозят" программу, как например обычные блоки Lcd-HD44780, HC-SR04, MCP23017, DHT22 и т.п.
5. Наши блоки имеют удобные функции для работы со строками - бывают полезно при отладке программ.
6. Наши блоки обеспечивают планирование вызова плат в планируемое время с учетом некоторого приоритета.
7. И еще есть всякие полезности.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки 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.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. Заключение.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
Разработки ecoins
[ref]ecoins[/ref], Чтобы не задавать несколько вопросов и проверить себя на "уровень вхождения", попрошу выложить пример с использованием минимально необходимого кол-ва Ваших блоков (без консолей, датчиков, i2c и т. д. с поддержкой всех контроллеров) и блоков Flprog. Хотя бы "блинк".
И еще, можно ли использовать Ваше решение с "быстрыми" входами/выходами?
И еще, можно ли использовать Ваше решение с "быстрыми" входами/выходами?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
Быстрые выходы - это актуально только на 8-ми разрядных контроллерах, на остальных это почти не имеет значение.
Наш блок улучшает скорость работы с пином на выход за счет того, что запись в пин происходит только при изменении выдаваемого значения.
По примеру типа "blink" принято - оно так и планировалось, от простого к более сложному.
А в целом все оказывается и не сложно.
Наш блок улучшает скорость работы с пином на выход за счет того, что запись в пин происходит только при изменении выдаваемого значения.
По примеру типа "blink" принято - оно так и планировалось, от простого к более сложному.
А в целом все оказывается и не сложно.
Разработки ecoins
[ref]ecoins[/ref], будьте добры, первыложите базовый пример, а то там недоработочка, а как её исправлять пока не совсем понятно.
И ещё вопрос, как обстоят дела со внешней памятью, в дереве проекта если включу внешнюю память, система воспримет это?У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 4012
- Зарегистрирован: 12 фев 2016, 11:40
- Откуда: Шатура
- Имя: Энвер
- Благодарил (а): 137 раз
- Поблагодарили: 157 раз
Разработки ecoins
Плата на которую Вы указали - отключена (не компируется).
Блок, который вы увидели были сделан для будущих функций и ни на что не влияет - выходы никуда не подключены.
По внешней памяти - не понял вопроса, о какой памяти Вы пишете?
Блок, который вы увидели были сделан для будущих функций и ни на что не влияет - выходы никуда не подключены.
По внешней памяти - не понял вопроса, о какой памяти Вы пишете?
Последний раз редактировалось ecoins 10 июл 2019, 22:37, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя