Разработки ecoins

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

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

Разработки ecoins

#661

Сообщение ecoins » 21.07.2020{, 23:02}

Gordon0007 писал(а):
21.07.2020{, 15:37}
ecoins, Добрый день, хотел узнать как там движутся ваши дела и что есть нового для контроллеров и оптимизации. Просто у меня тут получилась неприятность когда я хотел перейти с Меги2650 на ESP32, некоторые ПБ не работают совместно с ESP32, что конечно печально.
Это преодолимо. Подробнее ответил в личке.

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

Разработки ecoins

#662

Сообщение ecoins » 14.08.2020{, 14:50}

Новый комплект библиотек и пользовательских блоков от ecoins
------------------------------------------------------
RT_HW_LIB_100_140820_alfa.zip
(179.87 КБ) 127 скачиваний
БИБЛИОТЕКА BASE_v01.2_14082020.zip
(809.53 КБ) 120 скачиваний
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
(5.98 МБ) 85 скачиваний
--------------------------------------------------------------
IMG_2734.JPG
[attachment=0]
Последний раз редактировалось ecoins 14.08.2020{, 19:56}, всего редактировалось 1 раз.

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

Разработки ecoins

#663

Сообщение ecoins » 14.08.2020{, 14:56}

Важное и трудное: удалось преодолеть проблемы с MEGA2560 - в некоторых случаях контроллер уходил в перезагрузку.
Проблема оказалась достаточно серьезная и связана с неудачной оптимизацией компилятора.
Решением оказалось отказ от "длинных" операторов switch.
У этого оператора С++ есть еще ряд недостатков - об этом есть обсуждения в специализированных форумах.
В новых библиотеках этот оператор вообще исключен. В быстродействии только выграно.

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

Разработки ecoins

#664

Сообщение ecoins » 14.08.2020{, 14:59}

Остаются вопросы к реализации протокола ModBus как со стороны FLProg, так и со стороны KaScada.
Разработчика FLProg беспокоить не хочется - возможно со временем сами сделаем дополнительную реализацию.
С разработчиком KaScada обсужу результаты исследований.

Fedot
Рядовой
Сообщения: 22
Зарегистрирован: 22.09.2018{, 11:42}
Репутация: 3
Откуда: Татарстан, Казань
Имя: Александр

Разработки ecoins

#665

Сообщение Fedot » 14.08.2020{, 18:24}

А почему библиотека RT_HW_LIB_100_140820_alfa.zip всего 150 байт?

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

Разработки ecoins

#666

Сообщение ecoins » 14.08.2020{, 19:58}

Fedot писал(а):
14.08.2020{, 18:24}
А почему библиотека RT_HW_LIB_100_140820_alfa.zip всего 150 байт?
Из-за нашей невнимательности. Извините.
Добавил в архивах библиотеки C++ и библиотеки пользовательских блоков

Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16.08.2020{, 20:41}
Репутация: 0
Имя: Trivius

Разработки ecoins

#667

Сообщение Trivius » 16.08.2020{, 21:16}

Добрый вечер. Прошу помощи, при компиляции ругается (исп. блок дисплея). Добавил все либы в папку с либами. на стандартном боке с подключением без I2C не тормозило. Мега2560.
'RT_HW_LCD_HD44780_DEVICE' does not name a type; did you mean 'RT_HW_LCD_HD44780_MAX_DEVICE'?
СпойлерПоказать
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'?
Нашел лишнюю либу 0.3 в Portable, удалил. Скомпилировал. теперь ищу, почему не выводит int, прога не выполняется

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

Разработки ecoins

#668

Сообщение ecoins » 17.08.2020{, 10:13}

Проверил, вроде работает.
Отдельно работоспособность можно проверить тестом непосредственно через Arduino IDE (подменю "Примеры").
Набросал небольшой тест - там задействована только библиотека LCD.
СпойлерПоказать
тест_lcd_flprog.png
Тест_lcd_простой_flprog.flp
(105.88 КБ) 53 скачивания
И тоже скетч для Arduino.
test_lcd_simple_flprog.ino
(2 КБ) 50 скачиваний
Все проверено на Mega2560 и Arduino 1.8.13, FLProg 6.3.1.
На Arduino 1.8.12 тоже должно работать.
Успехов.

Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16.08.2020{, 20:41}
Репутация: 0
Имя: Trivius

Разработки ecoins

#669

Сообщение Trivius » 17.08.2020{, 15:04}

Спасибо, попробую. Скорее всего у меня старые библиотеки, ставил из шапки, потом прочитав тему до конца, увидел версию 2.2. сегодня попробую переустановить заново ide, залить либы 2.2, потом отпишусь.

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

Разработки ecoins

#670

Сообщение ecoins » 17.08.2020{, 15:19}

Trivius писал(а):
17.08.2020{, 15:04}
Спасибо, попробую. Скорее всего у меня старые библиотеки, ставил из шапки, потом прочитав тему до конца, увидел версию 2.2. сегодня попробую переустановить заново ide, залить либы 2.2, потом отпишусь.
В базовой и LCD библиотеках изменения существенные. Пока в шапку выносить их не будем - пока наращиваем функционал.

Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16.08.2020{, 20:41}
Репутация: 0
Имя: Trivius

Разработки ecoins

#671

Сообщение Trivius » 17.08.2020{, 20:19}

Снес ide, загрузил 2.02 версию всего - работает! ребята, поклон вам!
Мой тестовый скетч "шаговик ищем ноль - туда-обратно - ищем ноль, и снова туда-обратно" работает :smile9:
теперь буду просить кого-то слепить блок шаговика на FastAccelStepper (25khz), И курить Ваш менеджер задач))) Спасибо!!! Не слушайте никого - ваша работа важна!
Вложения
111.png

Аватара пользователя
belyx
Сержант
Сообщения: 247
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

Разработки ecoins

#672

Сообщение belyx » 17.08.2020{, 23:58}

ecoins писал(а):
17.08.2020{, 15:19}
Пока в шапку выносить их не будем - пока наращиваем функционал.
А может и надо выносить, но с пометкой типа в разработке,неокончательная.И ссылка на пост.
А после - просто менять её статус-финал. И ссылка на пост.

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

Разработки ecoins

#673

Сообщение ecoins » 18.08.2020{, 17:10}

Trivius писал(а):
17.08.2020{, 20:19}
Мой тестовый скетч "шаговик ищем ноль - туда-обратно - ищем ноль, и снова туда-обратно" работает
теперь буду просить кого-то слепить блок шаговика на FastAccelStepper (25khz),
На 25 кHz полагаю нужен более мощной контроллер.
Если будете использовать STM32F103C,R мы наверное займемся библиотекой и блоком приоритетно - что-то из текущего отложим.

Trivius
Рядовой
Сообщения: 11
Зарегистрирован: 16.08.2020{, 20:41}
Репутация: 0
Имя: Trivius

Разработки ecoins

#674

Сообщение Trivius » 18.08.2020{, 19:56}

Спасибо! Но под мегу шилд готов. Мне по факту нужно всего 8 кгц... Придется покупать другой драйвер с режимом целого шага.

andrey26
Рядовой
Сообщения: 8
Зарегистрирован: 02.01.2020{, 18:12}
Репутация: 0
Имя: Андрей

Разработки ecoins

#675

Сообщение andrey26 » 25.08.2020{, 20:41}

Подскажите пожалуйста, как блок настроиьт ваш оптимизированный max6675 не пойму как входы назначить. ?

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

#676

Сообщение SSSergeich » 25.08.2020{, 22:47}

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

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











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
Полковник
Сообщения: 2924
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#677

Сообщение ecoins » 27.08.2020{, 09:47}

andrey26 писал(а):
25.08.2020{, 20:41}
Подскажите пожалуйста, как блок настроить ваш оптимизированный max6675 не пойму как входы назначить. ?
В параметрах пользователя выбирается тип интерфейса:
S - аппаратный интерфейс. В этом случае на вход cs подается номер пина cs (константа). Входы skl и so не задействованы.
P - программный интерфейс. На все три входа подаются номера пинов.

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

Разработки ecoins

#678

Сообщение ecoins » 27.08.2020{, 09:48}

SSSergeich писал(а):
25.08.2020{, 22:47}
ecoins, попробовал использовать этот ПБ и получаю ошибку
Набросал скетч. Проверил. Работает. Нужно использовать другой блок.
Позже огтпишусь.

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

Разработки ecoins

#679

Сообщение ecoins » 27.08.2020{, 13:20}

SSSergeich писал(а):
25.08.2020{, 22:47}
coins, попробовал использовать этот ПБ и получаю ошибку
Выкладываю тестовый проект и скетч. В них отключены платы работы с ШД - у меня библиотеки не установлены.
Библиотеку LCD и пользовательские блоки размещены в посте 668.
Успехов.
Вложения
Тест ШД 04 test_v02_270820.flp
(707.39 КБ) 65 скачиваний
pr53.ino
(8.99 КБ) 41 скачивание

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

Разработки ecoins

#680

Сообщение SSSergeich » 28.08.2020{, 11:20}

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

Закрыто

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