Разработки ecoins

ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Gordon0007 писал(а): 21 июл 2020, 15:37 ecoins, Добрый день, хотел узнать как там движутся ваши дела и что есть нового для контроллеров и оптимизации. Просто у меня тут получилась неприятность когда я хотел перейти с Меги2650 на ESP32, некоторые ПБ не работают совместно с ESP32, что конечно печально.
Это преодолимо. Подробнее ответил в личке.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Новый комплект библиотек и пользовательских блоков от ecoins
------------------------------------------------------
RT_HW_LIB_100_140820_alfa.zip
БИБЛИОТЕКА BASE_v01.2_14082020.zip
1.RT_HW_BASE.h - обеспечивает мультиплатформенность (AVR328,MEGA2560,DUE,ESP8266,ESP32,STM32F1)
Функции для работы с реальным временем, пинами, консолью. Cчетчики, утилиты.
2.RT_HW_LCD44780.h - одновременная работа нескольких дисплеев через интерфейсы i2c,SPI, прямое подключение через шесть пинов. Прозрачно (просто пишется русский текст) поддерживает дисплеев со встроенной кириллицей.
3.RT_HW_DS1820.h - опрос одного сенсора ds1820. Не требует получение адреса сенсора. Соответственно можно менять сенсоры без перенастройки программы.
4.RT_HW_BME280 - точный сенсор BOSH - температура, влажности, атмосферное давление. Подключение пока только через i2c.
5.RT_HW_MAX6675 - сенсор температуры 0-1023градусов.
6.RT_HW_SR04 - ультразвуковой дальномер. Подключение через 1 или 2 пина. Поддерживает работу с прерываниями на пинах echo с прерываниями.
7.RT_HW_MCP23017.h - дискретный ввод-вывод.
----------------------------------------------------------
Тест быстродействия. Реакция на пульте KaScada быстрая.
BASE_test_Sensors_v2.03_140820_MEGA.flp
--------------------------------------------------------------
IMG_2734.JPG
[attachment=0]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось ecoins 14 авг 2020, 19:56, всего редактировалось 1 раз.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Важное и трудное: удалось преодолеть проблемы с MEGA2560 - в некоторых случаях контроллер уходил в перезагрузку.
Проблема оказалась достаточно серьезная и связана с неудачной оптимизацией компилятора.
Решением оказалось отказ от "длинных" операторов switch.
У этого оператора С++ есть еще ряд недостатков - об этом есть обсуждения в специализированных форумах.
В новых библиотеках этот оператор вообще исключен. В быстродействии только выграно.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Остаются вопросы к реализации протокола ModBus как со стороны FLProg, так и со стороны KaScada.
Разработчика FLProg беспокоить не хочется - возможно со временем сами сделаем дополнительную реализацию.
С разработчиком KaScada обсужу результаты исследований.
Fedot
Рядовой
Сообщения: 30
Зарегистрирован: 22 сен 2018, 11:42
Откуда: Татарстан, Казань
Имя: Александр
Благодарил (а): 1 раз

Разработки ecoins

Сообщение Fedot »

А почему библиотека RT_HW_LIB_100_140820_alfa.zip всего 150 байт?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Fedot писал(а): 14 авг 2020, 18:24 А почему библиотека RT_HW_LIB_100_140820_alfa.zip всего 150 байт?
Из-за нашей невнимательности. Извините.
Добавил в архивах библиотеки C++ и библиотеки пользовательских блоков
Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16 авг 2020, 20:41
Имя: Trivius

Разработки ecoins

Сообщение Trivius »

Добрый вечер. Прошу помощи, при компиляции ругается (исп. блок дисплея). Добавил все либы в папку с либами. на стандартном боке с подключением без I2C не тормозило. Мега2560.
'RT_HW_LCD_HD44780_DEVICE' does not name a type; did you mean 'RT_HW_LCD_HD44780_MAX_DEVICE'?[spoiler]pr3:23:1: error: 'RT_HW_LCD_HD44780_DEVICE' does not name a type; did you mean 'RT_HW_LCD_HD44780_MAX_DEVICE'?

pr3:26:1: error: 'RT_HW_LCD_HD44780_DIRECT' does not name a type; did you mean 'RT_HW_LCD_HD44780_LCD'?

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino: In function 'void setup()':

pr3:52:5: error: 'z_263935512_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:52:5: note: suggested alternative: 'lcd_263935512_1'

pr3:53:5: error: 'id_223749422_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:53:5: note: suggested alternative: 'lcd_223749422_1'

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino: In function 'void loop()':

pr3:205:9: error: 'z_263935512_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:205:9: note: suggested alternative: 'lcd_263935512_1'

pr3:207:27: error: 'class RT_HW_LCD_HD44780' has no member named 'setID_device'; did you mean 'setDevice'?

pr3:210:21: error: 'z_263935512_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:210:21: note: suggested alternative: 'lcd_263935512_1'

pr3:211:23: error: 'class RT_HW_LCD_HD44780' has no member named 'direct'

pr3:216:9: error: 'id_223749422_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:216:9: note: suggested alternative: 'lcd_223749422_1'

pr3:218:27: error: 'class RT_HW_LCD_HD44780' has no member named 'setID_direct'; did you mean 'setIdText'?

pr3:221:23: error: 'class RT_HW_LCD_HD44780' has no member named 'printInt16'; did you mean 'printIdVal'?

pr3:221:34: error: 'id_223749422_1' was not declared in this scope

C:\Users\екшмшгы\AppData\Local\Temp\flprog\pr3\pr3.ino:221:34: note: suggested alternative: 'lcd_223749422_1'

Несколько библиотек найдено для "RT_HW_LCD_HD44780.h"
Используется: c:\Program
Не используется: c:\Program
Не используется: c:\Program
Не используется: c:\Program
Не используется: c:\Program
exit status 1
'RT_HW_LCD_HD44780_DEVICE' does not name a type; did you mean 'RT_HW_LCD_HD44780_MAX_DEVICE'?

[/spoiler]

Нашел лишнюю либу 0.3 в Portable, удалил. Скомпилировал. теперь ищу, почему не выводит int, прога не выполняется
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Проверил, вроде работает.
Отдельно работоспособность можно проверить тестом непосредственно через Arduino IDE (подменю "Примеры").
Набросал небольшой тест - там задействована только библиотека LCD.
[spoiler]
тест_lcd_flprog.png
[/spoiler]
Тест_lcd_простой_flprog.flp
И тоже скетч для Arduino.
test_lcd_simple_flprog.ino
Все проверено на Mega2560 и Arduino 1.8.13, FLProg 6.3.1.
На Arduino 1.8.12 тоже должно работать.
Успехов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16 авг 2020, 20:41
Имя: Trivius

Разработки ecoins

Сообщение Trivius »

Спасибо, попробую. Скорее всего у меня старые библиотеки, ставил из шапки, потом прочитав тему до конца, увидел версию 2.2. сегодня попробую переустановить заново ide, залить либы 2.2, потом отпишусь.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Trivius писал(а): 17 авг 2020, 15:04 Спасибо, попробую. Скорее всего у меня старые библиотеки, ставил из шапки, потом прочитав тему до конца, увидел версию 2.2. сегодня попробую переустановить заново ide, залить либы 2.2, потом отпишусь.
В базовой и LCD библиотеках изменения существенные. Пока в шапку выносить их не будем - пока наращиваем функционал.
Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16 авг 2020, 20:41
Имя: Trivius

Разработки ecoins

Сообщение Trivius »

Снес ide, загрузил 2.02 версию всего - работает! ребята, поклон вам!
Мой тестовый скетч "шаговик ищем ноль - туда-обратно - ищем ноль, и снова туда-обратно" работает :smile9:
теперь буду просить кого-то слепить блок шаговика на FastAccelStepper (25khz), И курить Ваш менеджер задач))) Спасибо!!! Не слушайте никого - ваша работа важна!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
belyx
Сержант
Сообщения: 251
Зарегистрирован: 24 июл 2016, 20:38
Откуда: Витебск Беларусь
Благодарил (а): 7 раз

Разработки ecoins

Сообщение belyx »

ecoins писал(а): 17 авг 2020, 15:19 Пока в шапку выносить их не будем - пока наращиваем функционал.
А может и надо выносить, но с пометкой типа в разработке,неокончательная.И ссылка на пост.
А после - просто менять её статус-финал. И ссылка на пост.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

Trivius писал(а): 17 авг 2020, 20:19 Мой тестовый скетч "шаговик ищем ноль - туда-обратно - ищем ноль, и снова туда-обратно" работает
теперь буду просить кого-то слепить блок шаговика на FastAccelStepper (25khz),
На 25 кHz полагаю нужен более мощной контроллер.
Если будете использовать STM32F103C,R мы наверное займемся библиотекой и блоком приоритетно - что-то из текущего отложим.
Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16 авг 2020, 20:41
Имя: Trivius

Разработки ecoins

Сообщение Trivius »

Спасибо! Но под мегу шилд готов. Мне по факту нужно всего 8 кгц... Придется покупать другой драйвер с режимом целого шага.
andrey26
Рядовой
Сообщения: 8
Зарегистрирован: 02 янв 2020, 18:12
Имя: Андрей

Разработки ecoins

Сообщение andrey26 »

Подскажите пожалуйста, как блок настроиьт ваш оптимизированный max6675 не пойму как входы назначить. ?
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

Сообщение SSSergeich »

[ref]ecoins[/ref], попробовал использовать этот ПБ и получаю ошибку

Код: Выделить всё











pr7:40:1: error: 'RT_HW_LCD_HD44780_DATA_INT16' does not name a type; did you mean 'RT_HW_LCD_HD44780_DIRECT'?

 RT_HW_LCD_HD44780_DATA_INT16 id_201963489_2;

 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

 RT_HW_LCD_HD44780_DIRECT

pr7:45:1: error: 'RT_HW_LCD_HD44780_DATA_INT16' does not name a type; did you mean 'RT_HW_LCD_HD44780_DIRECT'?

 RT_HW_LCD_HD44780_DATA_INT16 id_201963489_1;

 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

 RT_HW_LCD_HD44780_DIRECT

pr7:50:1: error: 'RT_HW_LCD_HD44780_DATA_INT16' does not name a type; did you mean 'RT_HW_LCD_HD44780_DIRECT'?

 RT_HW_LCD_HD44780_DATA_INT16 id_201963489_3;

 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

 RT_HW_LCD_HD44780_DIRECT

C:\Users\User\AppData\Local\Temp\flprog\pr7\pr7.ino: In function 'void loop()':

pr7:308:42: error: 'class RT_HW_LCD_HD44780' has no member named 'device_setID'; did you mean 'device'?

  case 0: Wire.begin(); RT_HW_Lcd_hd44780.device_setID( 1 ,z_44187041_2, 20 , 4 , addr_44187041_2 ); break;

                                          ^~~~~~~~~~~~

                                          device

pr7:309:28: error: 'class RT_HW_LCD_HD44780' has no member named 'begin'

  case 2: RT_HW_Lcd_hd44780.begin(z_44187041_2,0);

                            ^~~~~

pr7:316:8: error: 'id_201963489_2' was not declared in this scope

 switch(id_201963489_2.dir){default: case 1:break; case 0:if(EN_201963489_2){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_2, 2 , 1 , 10 , 'L' , 2 , 'L' , 5 , 'D' , "x=" );}break;

        ^~~~~~~~~~~~~~

C:\Users\User\AppData\Local\Temp\flprog\pr7\pr7.ino:316:8: note: suggested alternative: 'EN_201963489_2'

 switch(id_201963489_2.dir){default: case 1:break; case 0:if(EN_201963489_2){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_2, 2 , 1 , 10 , 'L' , 2 , 'L' , 5 , 'D' , "x=" );}break;

        ^~~~~~~~~~~~~~

        EN_201963489_2

pr7:316:95: error: 'class RT_HW_LCD_HD44780' has no member named 'setID_int16'; did you mean 'setID_direct'?

 switch(id_201963489_2.dir){default: case 1:break; case 0:if(EN_201963489_2){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_2, 2 , 1 , 10 , 'L' , 2 , 'L' , 5 , 'D' , "x=" );}break;

                                                                                               ^~~~~~~~~~~

                                                                                               setID_direct

pr7:317:57: error: 'class RT_HW_LCD_HD44780' has no member named 'makeRun_int16'

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_2,EN_201963489_2); RT_HW_Lcd_hd44780.print_int16(id_201963489_2, val_201963489_2 );break;};

                                                         ^~~~~~~~~~~~~

pr7:317:121: error: 'class RT_HW_LCD_HD44780' has no member named 'print_int16'; did you mean 'printInt16'?

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_2,EN_201963489_2); RT_HW_Lcd_hd44780.print_int16(id_201963489_2, val_201963489_2 );break;};

                                                                                                                         ^~~~~~~~~~~

                                                                                                                         printInt16

pr7:322:8: error: 'id_201963489_1' was not declared in this scope

 switch(id_201963489_1.dir){default: case 1:break; case 0:if(EN_201963489_1){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_1, 2 , 2 , 10 , 'L' , 5 , 'L' , 5 , 'D' , "step=" );}break;

        ^~~~~~~~~~~~~~

C:\Users\User\AppData\Local\Temp\flprog\pr7\pr7.ino:322:8: note: suggested alternative: 'EN_201963489_1'

 switch(id_201963489_1.dir){default: case 1:break; case 0:if(EN_201963489_1){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_1, 2 , 2 , 10 , 'L' , 5 , 'L' , 5 , 'D' , "step=" );}break;

        ^~~~~~~~~~~~~~

        EN_201963489_1

pr7:322:95: error: 'class RT_HW_LCD_HD44780' has no member named 'setID_int16'; did you mean 'setID_direct'?

 switch(id_201963489_1.dir){default: case 1:break; case 0:if(EN_201963489_1){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_1, 2 , 2 , 10 , 'L' , 5 , 'L' , 5 , 'D' , "step=" );}break;

                                                                                               ^~~~~~~~~~~

                                                                                               setID_direct

pr7:323:57: error: 'class RT_HW_LCD_HD44780' has no member named 'makeRun_int16'

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_1,EN_201963489_1); RT_HW_Lcd_hd44780.print_int16(id_201963489_1, val_201963489_1 );break;};

                                                         ^~~~~~~~~~~~~

pr7:323:121: error: 'class RT_HW_LCD_HD44780' has no member named 'print_int16'; did you mean 'printInt16'?

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_1,EN_201963489_1); RT_HW_Lcd_hd44780.print_int16(id_201963489_1, val_201963489_1 );break;};

                                                                                                                         ^~~~~~~~~~~

                                                                                                                         printInt16

pr7:328:8: error: 'id_201963489_3' was not declared in this scope

 switch(id_201963489_3.dir){default: case 1:break; case 0:if(EN_201963489_3){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_3, 2 , 3 , 10 , 'L' , 3 , 'L' , 5 , 'D' , "a0=" );}break;

        ^~~~~~~~~~~~~~

C:\Users\User\AppData\Local\Temp\flprog\pr7\pr7.ino:328:8: note: suggested alternative: 'EN_201963489_3'

 switch(id_201963489_3.dir){default: case 1:break; case 0:if(EN_201963489_3){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_3, 2 , 3 , 10 , 'L' , 3 , 'L' , 5 , 'D' , "a0=" );}break;

        ^~~~~~~~~~~~~~

        EN_201963489_3

pr7:328:95: error: 'class RT_HW_LCD_HD44780' has no member named 'setID_int16'; did you mean 'setID_direct'?

 switch(id_201963489_3.dir){default: case 1:break; case 0:if(EN_201963489_3){RT_HW_Lcd_hd44780.setID_int16( 1 ,id_201963489_3, 2 , 3 , 10 , 'L' , 3 , 'L' , 5 , 'D' , "a0=" );}break;

                                                                                               ^~~~~~~~~~~

                                                                                               setID_direct

pr7:329:57: error: 'class RT_HW_LCD_HD44780' has no member named 'makeRun_int16'

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_3,EN_201963489_3); RT_HW_Lcd_hd44780.print_int16(id_201963489_3, val_201963489_3 );break;};

                                                         ^~~~~~~~~~~~~

pr7:329:121: error: 'class RT_HW_LCD_HD44780' has no member named 'print_int16'; did you mean 'printInt16'?

                                case 2:RT_HW_Lcd_hd44780.makeRun_int16(id_201963489_3,EN_201963489_3); RT_HW_Lcd_hd44780.print_int16(id_201963489_3, val_201963489_3 );break;};

                                                                                                                         ^~~~~~~~~~~

                                                                                                                         printInt16

exit status 1
'RT_HW_LCD_HD44780_DATA_INT16' does not name a type; did you mean 'RT_HW_LCD_HD44780_DIRECT'?
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

andrey26 писал(а): 25 авг 2020, 20:41 Подскажите пожалуйста, как блок настроить ваш оптимизированный max6675 не пойму как входы назначить. ?
В параметрах пользователя выбирается тип интерфейса:
S - аппаратный интерфейс. В этом случае на вход cs подается номер пина cs (константа). Входы skl и so не задействованы.
P - программный интерфейс. На все три входа подаются номера пинов.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

SSSergeich писал(а): 25 авг 2020, 22:47 ecoins, попробовал использовать этот ПБ и получаю ошибку
Набросал скетч. Проверил. Работает. Нужно использовать другой блок.
Позже огтпишусь.
ecoins
Полковник
Сообщения: 4005
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 152 раза

Разработки ecoins

Сообщение ecoins »

SSSergeich писал(а): 25 авг 2020, 22:47 coins, попробовал использовать этот ПБ и получаю ошибку
Выкладываю тестовый проект и скетч. В них отключены платы работы с ШД - у меня библиотеки не установлены.
Библиотеку LCD и пользовательские блоки размещены в посте 668.
Успехов.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06 фев 2016, 11:01
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

Сообщение SSSergeich »

ecoins писал(а): 27 авг 2020, 13:20
SSSergeich писал(а): 25 авг 2020, 22:47 coins, попробовал использовать этот ПБ и получаю ошибку
Выкладываю тестовый проект и скетч. В них отключены платы работы с ШД - у меня библиотеки не установлены.
Библиотеку LCD и пользовательские блоки размещены в посте 668.
Успехов.
Спасибо, заработало!
Закрыто

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя