Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Разработки ecoins

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

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

Разработки ecoins

#681

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

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

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

Разработки ecoins

#682

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

Разработки ecoins

#683

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

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

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

Разработки ecoins

#684

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

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

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

Разработки ecoins

#685

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

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

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

Разработки ecoins

#686

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

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

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

Разработки ecoins

#687

Сообщение ecoins » 28.08.2020{, 12:25}

Анонс по разработкам для STM32:
1.Удается загружать скетчи не только в STM32F103x, но и в STM32F401, STM32F411.
2.Произошли значимые изменения по аддонам для STM32.
Раньше мы пользовались аддоном от Роджера Кларка
https://github.com/rogerclarkmelbourne/Arduino_STM32.
Ссылка на уже обновленную версию. В ней похоже уже отказались от загрузки через miple - поэтому основная загрузка через SWD.
3.Значительно продвинулся основной аддон от Atduino IDE
https://github.com/stm32duino/Arduino_C ... -available
4.Оба аддона подразумевают, что также должен быть установлен пакет
STM32CubeProg https://www.st.com/en/development-tools ... eprog.html.
Очень удобная штука - это и программатор, и viewer памяти. Через него Arduino и поддерживает загрузку.
Также правильно указывает размер памяти.
При установленном аддоне глюкует аддон от Роджера Кларка.
Пока остановились на этом аддоне.
5.В версиях с Arduino 1.8.13 (1.9.0 beta) стало удобнее выбирать контроллеры - они сгруппированы по типам.
-----------------------------
Если есть какие-то интересные ссылки или опыт по загрузке STM32 через USB, они помогли бы нам в работе.
---------------------------------------------------------------------------------
http://arduino.ru/forum/obshchii/arduin ... n-ot-stm32 (Arduino IDE + аддон от stm32)
https://blog.kvv213.com/2020/01/kak-proshit-chip-stm32/ (как прошить чип STM32)
http://wiki.amperka.ru/js:ide:dfu-firmware (обновление прошивки через DFU)
https://kkmspb.ru/development/microcont ... t/USB-DFU/ (Обновление прошивки по USB-DFU)
https://istarik.ru/blog/stm32/107.html (как сделать программатор ST-LINK/V2 из дешёвой платы Blue Pill)

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

Разработки ecoins

#688

Сообщение SSSergeich » 06.09.2020{, 23:18}

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

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

Разработки ecoins

#689

Сообщение ecoins » 07.09.2020{, 00:03}

SSSergeich писал(а):
06.09.2020{, 23:18}
Подскажите, не могу через Ваш блок вывести значения на lcd 2004 больше чем 32768, в flprog переменную ставлю как float так и unsigned long integer.
В чем моя ошибка?
float работает, а вывод делал только для int16_t.
Раньше был отдельный блок для uint16_t - убрал, чтобы не плодить блоки. А нужно? Если да, то добавлю. Уточните какие форматы Вам нужны.
В настройках есть возможность выводить 16-разрядное HEX-число.

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

Разработки ecoins

#690

Сообщение ecoins » 13.09.2020{, 11:34}

В защиту mcp23x17
viewtopic.php?t=5765&start=140#p93666 (тема STM32 программирование в FLProg)
masterw писал(а):
12.09.2020{, 21:39}
Пробовал на разных скоростях, все работает нормально на входа выхода процессора, но если добавить mpc23017 то после включения несколько секунд на mpc23017 появляются хаотичные сигналы, после чего может работать нормально, а может вообще зависнуть. Если отключить master, то все работает нормально. RS485 на SN75176. Причем при использовании Software Serial работает стабильнее.
Ingwar писал(а):
13.09.2020{, 00:39}
Пару месяцев бился с проектом, где использовал mpc23017 и тегов более полусотни. RTU пробовал и TCP пофиг. Упаковал все койлы в холд и стало их 13 всего. Но все равно висло через непродолжительное время. Плюнул и поставил MEGA mini. Теперь только регистры. Нахер эти mpc23017
Полагаю, что дело не в mcp23017 - в одном проекте новогодняя гирлянда (восемь mcp23017) на улице работает более шести лет, на стендах (в том числе и STM32F103c) устройства непрерывно работают неделями.
Проблема скорее в особенности использования устройств через i2c. В большинстве случаев после пропадания питания (например плохой контакт с макеткой или в разъеме) регистры устройства надо инициировать заново. Так при сбросе питания в mcp23017 регистры А и В по умолчанию настроены на вход, LCD HD44780 на обмен по 8-разрядной шине (а через i2c обмен идет через тетрадами (4-бита)), погодный сенсор bme280 требуется настраивать и калибровать используя параметры, прошитые на чипе и т.д.).
Стандартные библиотеки Arduino обычно реализуют базовые функции и не предусматривают контроль и перезапуск устройств.
Эти проблемы в значительной мере решены в библиотеках и блоках ecoins.
Сейчас библиотеки работы с устройствами реализованы как самостоятельные. Наверное все же начнем включать в них базовую библиотеку - она более тонко адаптирует обмен с устройствами с учетом особенностей разных контроллеров (AVR328, MEGS2560, DUE, ESP8266, ESP32, STM32F1, STM32F4) и можно будет немного упростить пользовательские блоки в части настройки интерфейса.

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

Разработки ecoins

#691

Сообщение Ingwar » 13.09.2020{, 12:35}

ecoins писал(а):
13.09.2020{, 11:34}
(например плохой контакт с макеткой или в разъеме
ecoins писал(а):
13.09.2020{, 11:34}
в одном проекте новогодняя гирлянда (восемь mcp23017) на улице работает более шести лет
Платы разводил сам. Никаких соплей не было. Допускаю, что проблема в библиотеке, используемой в Flprog или совокупности библиотек.
Когда делал проект, Ваших решений на форуме еще не было.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
fsergei70
Лейтенант
Сообщения: 612
Зарегистрирован: 17.11.2015{, 20:36}
Репутация: 42
Откуда: Ессентуки-Кисловодск
Имя: Сергей

Разработки ecoins

#692

Сообщение fsergei70 » 14.09.2020{, 08:48}

ecoins, Если не сложно разместите свежие версии библиотеки и блоки пользователя в 1 пост,

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

Разработки ecoins

#693

Сообщение ecoins » 14.09.2020{, 10:36}

fsergei70 писал(а):
14.09.2020{, 08:48}
ecoins, Если не сложно разместите свежие версии библиотеки и блоки пользователя в 1 пост,
В первый пост не готов пока разместить - сделаны существенные доработки с новыми свойствами и возможностями.
Тестируется, дорабатывается, пользоваться уже можно,но пользователем без опыта будет немного сложно, предстоит доработать описание.
В частности реализована поддержка STM32F401. Сейчас на ядре от Кларка.
Выложу здесь с тестовой программой:
---------------------
Тест:
2 дисплея LCD, 1 дисплей SPI, 2 mcp23017, ds1820, dht21, bme280, HC0-SR04(пока не работает на ESP),бегущая "1" на 74HC595(SPI),
кнопка с защитой от дребезга, светодиод, ADC, PWM, DAC (ESP32), Touch сенсор(ESP32), датчик Холла(ESP32), диспетчер.
Библиотека RT_HW_LCD HD-44780 поддерживает LCD с прошитой кириллицей.
Выполняется однократный вывод на консоль параметров контроллера (архитектура, плата, основные параметры), доступные пины по типам использования (ADC,PWM и т.д.), тестовые пины, пользовательские пины, адреса устройств в программе, адреса подключенных устройств на шине i2c (сканируется шина).
Поддержка вывода на консоль тестовых параметров и сообщений.
IMG_2763[630].jpg
1.Библиотеки:
2.Блоки:
3.Тестовая программа:
RT_HW_LIB_111_140920_alfa.zip
(180 КБ) 14 скачиваний
БИБЛИОТЕКА BASE_v02.0_14092020.ubl
(6.76 МБ) 15 скачиваний
BASE_test1_v2.06_140920_ALL.zip
(309.63 КБ) 13 скачиваний
Последний раз редактировалось ecoins 14.09.2020{, 20:04}, всего редактировалось 4 раза.

Taser
Рядовой
Сообщения: 7
Зарегистрирован: 05.06.2020{, 00:21}
Репутация: 0
Имя: Sergey

Разработки ecoins

#694

Сообщение Taser » 14.09.2020{, 18:19}

ecoins писал(а):
14.09.2020{, 10:36}

Выложу здесь с тестовой программой:
1.Библиотеки: RT_HW_LIB_111_140920_alfa.zip
2.Блоки: БИБЛИОТЕКА BASE_v02.0_14092020.ubl
3.Тестовая программа: BASE_test1_v2.06_140920_ALL.zip
---------------------
По-моему здесь какая-то ошибка :smile37:
https://prnt.sc/uh3y5v

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

Разработки ecoins

#695

Сообщение ecoins » 14.09.2020{, 20:06}

Taser писал(а):
14.09.2020{, 18:19}
По-моему здесь какая-то ошибка
https://prnt.sc/uh3y5v
Выложил последовательно в конце сообщения - почему в середине получалось не верно, несколько раз попробовал.
Спасибо за поправку.
Сами файлы те же и без изменения.

Отправлено спустя 10 часов 15 минут 49 секунд:
Короткий отчет:
1.На STM32F103C ModBus Slave работает (проверял с KaScada);
2.На STM32F401 не работает. Не воспринимает Serial1.begin(115200,8N_1) - код который генерит FLProg в setup(); Вручную меняется на Serial1.begin(115200) и эта проблема преодолевается. При работе при поступление правильной посылки из KaScada, отвечает байтом E2 и этим все...
----
Протокол ModBus ключевой для автоматизации.
Как бы не пришлось разрабатывать новую библиотеку (на основе старой).
Лучше это делать совместно с разработчиком FLProg, но он вряд ли сейчас на это будет отвлекаться.
----
Думаем. Может есть какие соображения?

Ответить

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