Разработки ecoins

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

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

Разработки ecoins

#361

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

Нет, не выложена.
Условно она в состоянии альфа-версии.
Я могу выслать еe Вам на почту.
Библиотека с подробными комментариями, пользовательские блоки имеют описания.

Аватара пользователя
3JlOU64
Рядовой
Сообщения: 9
Зарегистрирован: 03.10.2015{, 20:17}
Репутация: 0
Откуда: Саратов

Разработки ecoins

#362

Сообщение 3JlOU64 » 26.09.2019{, 09:39}

ecoins писал(а):
25.09.2019{, 14:48}
Не хотите прислать то, что Вы грузите в контроллер?
Ну и правильно. Мы начинаем подготовку к выгрузке новой библиотеки.
вот этот проект, а смысл присылать вам ваш же проект. в нем был изменен лишь адрес дисплея LCD???

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

Разработки ecoins

#363

Сообщение ecoins » 26.09.2019{, 12:04}

3JlOU64 писал(а):
26.09.2019{, 09:39}
Ну
Доберусь до компьютера - проверю.

bdw5
Рядовой
Сообщения: 19
Зарегистрирован: 26.12.2018{, 22:04}
Репутация: 0
Откуда: минск
Имя: дмитрий

Разработки ecoins

#364

Сообщение bdw5 » 26.09.2019{, 17:52}

ecoins писал(а):
26.09.2019{, 02:02}
Нет, не выложена.
Условно она в состоянии альфа-версии.
Я могу выслать еe Вам на почту.
Библиотека с подробными комментариями, пользовательские блоки имеют описания.
Мне рано. я пару дней назад наткнулся на вашу ветку, и сразу заказал stm 32---- всё ради неё родимой . жду от китайцев. Вам отдельная благодарность. поражаюсь. p.s. хотелось бы посмотреть на тех детей :shok:

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

Разработки ecoins

#365

Сообщение ecoins » 26.09.2019{, 19:04}

3JlOU64 писал(а):
26.09.2019{, 09:39}
ecoins писал(а):
25.09.2019{, 14:48}
Не хотите прислать то, что Вы грузите в контроллер?
Ну и правильно. Мы начинаем подготовку к выгрузке новой библиотеки.
0300_Простой вывод на Lcd_Счетчик _v4_29.07.19.flp
вот этот проект, а смысл присылать вам ваш же проект. в нем был изменен лишь адрес дисплея LCD???
Попробовал Ваш проект - адрес дисплея только указал 63. С Вашим адресом компилируется, но естественно не отображается.
Фото_для_3jl.jpg
Посылаю то,что тестировал. Библиотеки в виде архива.
190926_Lib_EIS_v45_для_3jl.zip
(333.51 КБ) 62 скачивания

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

Разработки ecoins

#366

Сообщение ecoins » 26.09.2019{, 19:05}

bdw5 писал(а):
26.09.2019{, 17:52}
ecoins писал(а):
26.09.2019{, 02:02}
Нет, не выложена.
Условно она в состоянии альфа-версии.
Я могу выслать еe Вам на почту.
Библиотека с подробными комментариями, пользовательские блоки имеют описания.
Мне рано. я пару дней назад наткнулся на вашу ветку, и сразу заказал stm 32---- всё ради неё родимой . жду от китайцев. Вам отдельная благодарность. поражаюсь. p.s. хотелось бы посмотреть на тех детей :shok:
Если понадобится что-то - пишите. Успехов.

Аватара пользователя
3JlOU64
Рядовой
Сообщения: 9
Зарегистрирован: 03.10.2015{, 20:17}
Репутация: 0
Откуда: Саратов

Разработки ecoins

#367

Сообщение 3JlOU64 » 27.09.2019{, 17:25}

ecoins писал(а):
26.09.2019{, 19:04}
3JlOU64 писал(а):
26.09.2019{, 09:39}

0300_Простой вывод на Lcd_Счетчик _v4_29.07.19.flp
вот этот проект, а смысл присылать вам ваш же проект. в нем был изменен лишь адрес дисплея LCD???
Попробовал Ваш проект - адрес дисплея только указал 63. С Вашим адресом компилируется, но естественно не отображается.
Фото_для_3jl.jpg
Посылаю то,что тестировал. Библиотеки в виде архива.
0300_Простой вывод на Lcd_Счетчик _v4_29.07.19.flp
190926_Lib_EIS_v45_для_3jl.zip
Попробовал ваши новые библиотеки, все тоже самое (((((Думаю косяк в библиотеках на сам STM32. Поищу другие.

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

Разработки ecoins

#368

Сообщение ecoins » 27.09.2019{, 18:59}

Это не новые библиотеки.
Попробуйте какой-нибудь тест LCD из Arduino IDE - если работает то к IDE меньше вопросов и можно поразмыслить.
Предположения есть и мы учтем их в новой библиотеке.

Аватара пользователя
3JlOU64
Рядовой
Сообщения: 9
Зарегистрирован: 03.10.2015{, 20:17}
Репутация: 0
Откуда: Саратов

Разработки ecoins

#369

Сообщение 3JlOU64 » 27.09.2019{, 19:45}

Благодарю за поддержку!!!Нашел причину, все таки библиотека STM32 кривая + библиотека ARDUINO DUE была тоже кривой. Теперь все компилируется, грузится, но... зараза такая на дисплее пусто :smile113:

Отправлено спустя 22 минуты 1 секунду:
загрузил скетч "HELLO WORLD!!!" , на дисплее пусто((( С ардуино мега все работает :smile37:

Отправлено спустя 26 минут 6 секунд:
Кстати моргушка на 13 пине замечательно работает на stm32. :smile9:

Аватара пользователя
3JlOU64
Рядовой
Сообщения: 9
Зарегистрирован: 03.10.2015{, 20:17}
Репутация: 0
Откуда: Саратов

Разработки ecoins

#370

Сообщение 3JlOU64 » 28.09.2019{, 11:19}

заработал скетч из примера "Hello, world!" на stm32. А вот с вашими библиотеками ну никак не хочет. А вы с разными дисплеями работали( имею ввиду адреса по I2C)???

Отправлено спустя 16 минут 53 секунды:
Уууурраааа!!! Заработало!!!! :smile236:

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

Разработки ecoins

#371

Сообщение ecoins » 28.09.2019{, 17:24}

Поздравляю.
Рад, что используете наши библиотеки.
в #359 (25.09.2019) писали, что почти готова новая библиотека. Там будут дополнительные полезные опции.
Пока над ней работаем. Непосредственно сейчас существенно переделываем библиотеку для LCD.

Аватара пользователя
3JlOU64
Рядовой
Сообщения: 9
Зарегистрирован: 03.10.2015{, 20:17}
Репутация: 0
Откуда: Саратов

Разработки ecoins

#372

Сообщение 3JlOU64 » 28.09.2019{, 18:08}

Если Вас не затруднит напишите библиотеку на энкодер. :smile469:

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

Разработки ecoins

#373

Сообщение ecoins » 28.09.2019{, 21:58}

Буду иметь ввиду. Но наверно не быстро - много не реализованных планов и надо разобраться почему это вроде простое устройство создаёт проблемы в проектах. По отзывам сужу.
К таким устройством отношусь без симпатии - диалог, по моему мнению, лучше организовывать через Каскаду.

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

Разработки ecoins

#374

Сообщение ecoins » 29.09.2019{, 22:05}

В процессе работы над новой версией библиотеки вдруг стало понятно, что библиотека LCD быть выполнена автономно отдельно от основной библиотеки - из нее перенесены нужные фрагменты кода. Некоторое дублирование кода, но не значительное.
Выкладываю библиотеку с тестовым примером - любители С++ могут почитать и использовать вне FLProg или создать свои блоки по собственному вкусу.
Библиотека поддерживает до 15-ти одновременно работающих дисплея (на четырех проверялось), оптимизированы посылки в результате чего существенно сокращена нагрузка на шину i2c.
Блок контроля имеет собственный тактовый генератор 100мс, который используется для периодической запуска блоков записи в дисплей.
Сильно оптимизирована работа с битовыми переменными, что позволило существенно ускорить работу.
Оптимизировано использование памяти - и той, и той требуется меньше.
Вывод цифровых переменных может сопровождаться заголовком, который также как и переменная имеет свой размер и параметр выравнивания в выводимом поле. И прочее, прочее...
Работает на AVR328,MEGA2560,ESP8266(совместно с Wi-Fi не тестировалось),ESP32,STM32 - на фото показано.
IMG_2457.JPG
Тест LCD.JPG
Тест выводит 2 моргающих символа, два меняющихся символа (в конце строк), четыре меняющихся переменных с заголовками.
Результаты в режиме работы - AVR328 -60 мкс, ESP8266-19 мкс, ESP32-4,5мкс, STM32F103C-14мкс.
Во время передачи в i2c посылка примерно 550мкс на полбайта - это определяется скоростью шины i2c и тем, что в Arduino библиотека Wire не использует возможности аппаратного прерывания, но зато там свои плюсы...
Скетч теста относительно небольшой.
СпойлерПоказать
//======================================================
// Тест вывода на дисплей в фоновом режиме
// Библиотека "RT_HW_LCD_HD44780.h"
// Адрес дисплея =63(можно поменять),
// Адрес контрольного пина->AVR328,MEGA2560,DUE=13; ESP8266,ESP32=2; STM103C=PC13
// Устойчиво поддерживает горячее переподключение.
//======================================================
#include "RT_HW_LCD_HD44780.h"
//++++++++Выбор параметров под тип контроллера
#if defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__) || defined(__SAM3X8E__)
#define pinControl 13
#elif defined(ESP8266) || defined(ESP32)
#define pinControl 2
#elif defined(_BOARD_GENERIC_STM32F103C_H_)
#define pinControl PC13
#else
#define pinControl 13
#endif
//==================================================================
RT_HW_LCD_HD44780_DEVICE z1;
RT_HW_LCD_HD44780_DATA_CHAR star1,star2, char1, char2;
RT_HW_LCD_HD44780_DATA_INT16 int1, int2, int3, int4, float1, float2;
byte eventBack;
//---------------------------
uint8_t addrLCD=63; //----Адрес дисплея
uint8_t cnt1,cnt2, cntBack, work_star1, work_star2, work_char1, work_char2, work_int1, work_int2, work_int3, work_int4, work_float1, work_float2; //--рабочие регисты
int16_t v1,v2,v3,v4; //--Выводимые регистры int
char vChar1,vChar2; //--Выводимые символы
bool blink;
//--------------------------------------------
void setup() {pinMode(pinControl,OUTPUT);}
//--------------------------------------------
void loop() {
//======Системная часть
blink=!blink; digitalWrite(pinControl,blink);
cntBack++; if(cntBack>50) {cntBack=0; eventBack=1;} else eventBack=0; //--Формирование флага фоновой задачи
//======Фоновая задача №1
if(eventBack){
//++++ Блок инициализации и контроля дисплея begin(). Параметры ->lcd,id,col,row,addr;
switch(z1.dir){default: case 0: Wire.begin(); RT_HW_Lcd_hd44780.device_setID(1,z1,16,2,addrLCD); break; case 1: break; case 2: RT_HW_Lcd_hd44780.begin(z1); break;}
//++++ Подготовка параметров для вывода на дисплей (события event каждые 100 мс)
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_star1++; if(work_star1 > 3) {work_star1=0; star1.run=2; }}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_star2++; if(work_star2 > 9) {work_star2=0; star2.run=2; }}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_int1++; if(work_int1 > 5) {work_int1=0; int1.run=2; v1=v1+7; if(v1>127) v1=0;}}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_int2++; if(work_int2 > 7) {work_int2=0; int2.run=2; v2=v2+1; if(v2>40) v2=0;}}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_int3++; if(work_int3 > 9) {work_int3=0; int3.run=2; v3=v3+1; if(v3>20) v3=0;}}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_int4++; if(work_int4 >12) {work_int4=0; int4.run=2; v4=v4+1; if(v4>10) v4=0;}}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_char1++; if(work_char1 > 5) {work_char1=0; char1.run=2; vChar1='1'+cnt1; cnt1++; if(cnt1>10) cnt1=0;}}
if(RT_HW_Lcd_hd44780.prt[1]->event) {work_char2++; if(work_char2 >10) {work_char2=0; char2.run=2; vChar2='A'+cnt2; cnt2++; if(cnt2>10) cnt2=0;}}
//++++ Блоки вывода мерцающих символов. Параметры ->lcd,id,col,row,signF,signS
switch(star1.dir){default: case 0:RT_HW_Lcd_hd44780.setID_char(1,star1, 1,1,'B','*',' '); break; case 1:break; case 2:RT_HW_Lcd_hd44780.print_char(star1); break;};
switch(star2.dir){default: case 0:RT_HW_Lcd_hd44780.setID_char(1,star2, 1,2,'B','#',' '); break; case 1:break; case 2:RT_HW_Lcd_hd44780.print_char(star2); break;};
//++++ Блоки вывода меняющихся символов. Параметры ->lcd,id,col,row
switch(char1.dir){default: case 0:RT_HW_Lcd_hd44780.setID_char(1,char1,16,1); break; case 1:break; case 2:RT_HW_Lcd_hd44780.print_char(char1,vChar1); break;};
switch(char2.dir){default: case 0:RT_HW_Lcd_hd44780.setID_char(1,char2,16,2); break; case 1:break; case 2:RT_HW_Lcd_hd44780.print_char(char2,vChar2); break;};
//++++ Блоки вывода меняющихся int16 с заголовками. Параметры ->lcd,id,col,row,aligHead,lenHead,head,aligVal,modeVal,lenVal
switch(int1.dir) {default: case 0:RT_HW_Lcd_hd44780.setID_int16(1,int1, 2,1,'L',3,"t1=",'L','D',3); break; case 1:break; case 2: RT_HW_Lcd_hd44780.print_int16(int1,v1); break;};
switch(int2.dir) {default: case 0:RT_HW_Lcd_hd44780.setID_int16(1,int2, 8,1,'L',3,"h1=",'L','H',3); break; case 1:break; case 2: RT_HW_Lcd_hd44780.print_int16(int2,v2); break;};
switch(int3.dir) {default: case 0:RT_HW_Lcd_hd44780.setID_int16(1,int3, 2,2,'L',3,"t2=",'L','T',2); break; case 1:break; case 2: RT_HW_Lcd_hd44780.print_int16(int3,v3); break;};
switch(int4.dir) {default: case 0:RT_HW_Lcd_hd44780.setID_int16(1,int4, 8,2,'L',3,"h2=",'L','b',4); break; case 1:break; case 2: RT_HW_Lcd_hd44780.print_int16(int4,v4); break;};
} //--END if(eventBack)
//====================================================
} //--END LOOP

============================
Результатом сами очень довольны.
RT_10_HW_LCD_44780_v1.1.zip
(17.98 КБ) 105 скачиваний
Тест в примерах библиотеки.

Аватара пользователя
Rovki
Полковник
Сообщения: 4881
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 268
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#375

Сообщение Rovki » 29.09.2019{, 23:37}

Вот молодцы ,а то вечно эти мониторы совместно с модбасом тормозили
Электронщик до мозга костей и не только

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

Разработки ecoins

#376

Сообщение ecoins » 30.09.2019{, 08:54}

Ну да, и не только мониторы.
Еще защиту от дребезга в стандартном блоке тормозят ( в новой библиотеке мы добавили опцию защиты от дребезга без этих проблем), HC-SR04, DHT11 и DHT22 и прочее.
Интересный подход применяет фирма Фрактал.
У них давно есть отработанный и хорошо работающие модули на PIC18Fxxx, которые могут работать и как ввод-вывод, и выполнять загруженные в них программы и т.п. Связь с ними через i2c или RS-485 по протоколу Modbus.
СпойлерПоказать
Основные принципы работы

Базовая прошивка для модулей и узлов на основе PIC18Fxxxx создана , как универсальная платформа, позволяющая получить полный доступ по последовательным каналам ко всем ресурсам микроконтроллеров PIC18Fxxxx и независимо и прозрачно от этого загружать и выполнять программы пользователя. В зависимости от типа, модуль/узел может иметь один или несколько последовательных интерфейсов. Доступ к ресурсам микроконтроллера поддерживается через UART (RS232 / RS485 / RS422 / USB) и I2C. Также прошивка поддерживает последовательные интерфейсы SPI и MicroLan в режиме мастера. Прошивка обеспечивает транзитный доступ через UART (-ы) ко всем доступным другим интерфейсам и следовательно ко всем узлам/модулям к ним подключенным. Наличие одновременно нескольких интерфейсов дает возможность создавать древовидную сетевую структуру из многих узлов/модулей и многих уровней. В случае, когда узел/модуль имеет два UART-а, обеспечивается симметричный взаимный доступ одного к другому. При работе с UART используется протокол MODBUS. Кроме работы с интерфейсами, прошивка обеспечивает взаимодействие системы с программой пользователя. Имеется набор пользовательских векторов, которые позволяют передавать управление к соответствующим обработчикам событий: сброс, прерывания высокое и низкое, время, получение по MODBUS неизвестной команды. Также имеется набор подпрограмм, позволяющих пользователю из своей программы обращаться к имеющимся интерфейсам для доступа в другие узлы. Из вышесказанного видно, что есть три основные возможности использования узла/модуля с описываемой прошивкой. Первый путь - это использование одного из интерфейсов для полного доступа к ресурсам микроконтроллера. Пользователь может напрямую обращаться к портам ввода-вывода и узлам микроконтроллера(АЦП, ШИМ, таймерам, компараторам и т.д.). При этом, он вначале настраивает режимы нужных узлов, а потом просто опрашивает их состояние. Этот путь, также, обеспечивает и просто транзитный режим, для полного доступа к ресурсам узлов/модулей подключенных к смежным интерфейсам транзитного узла. Второй путь - это использование прошивки для загрузки программы пользователя, для последующего ее монопольного выполнения. При этом прошивка фактически является программатором, а пользовательская программа полностью управляет узлом/модулем. Третий путь - это комбинация доступа ко всем ресурсам через последовательный интерфейс с работой загруженной программы пользователя. При этом загруженная программа полностью управляет работой узла/модуля, а через интерфейсы прозрачно обеспечивается доставка параметров / данных и доступ в другие узлы/модули.
Таким образом все "тормоза" внешних устройств не касаются основного контроллера.
Прошивка эта закрытая, но как идея интересная.
Сейчас обсуждаем создание чего-то подобного, с иным и расширяемым функционалом. Реализовать будем или на кристалле PIC18Fxxx или на STM32F103C.
И конечно все это будет поддержано блоками FLProg.
IMG_2466.jpg
Модуль Фрактал, о котором написано, на фото по середине.
На нем два выходных разъема с 8-выходами под ленточный кабель.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Разработки ecoins

#377

Сообщение com » 30.09.2019{, 11:45}

ecoins писал(а):
30.09.2019{, 08:54}
PIC18Fxxx
чета я не понял с трех нот. Вы планируете программировать PIC18 в Flprog?

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

Разработки ecoins

#378

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

Нет, хотим сделать модули в форм-факторе как на фото, доступные FLProg по i2c.

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

Разработки ecoins

#379

Сообщение ecoins » 04.10.2019{, 20:04}

ВЫКЛАДЫВАЕМ НОВЫЕ БИБЛИОТЕКИ
и тестовый пример c существенно обновленной библиотеки LCD
191004_Lib_EIS_v100_beta.zip
(305.89 КБ) 138 скачиваний
Библиотека ДЮАИР_v202_04.10.19.ubl
(1.38 МБ) 140 скачиваний
191004_Lib_EIS_v100_beta.zip
(305.89 КБ) 138 скачиваний
------------------------
Как и раньше:
1.Поддерживает мультиплатформенность (AVR328,MEGA2560,DUE,ESP8266,ESP32,STM32).
2.Простые функции поддержки реального времени и планирование вызова задач.
3.Библиотека LCD - полностью переписана, быстрая, новые функции, поддержка до 15 одновременно работающих LCD.
Подробнее писали раньше.
-----------------------
По поддержке специфических возможностей STM32 (развитая система прерываний и пр.).
Все это возможно реализовать, но в начале надо убрать "тормоза" из используемых библиотек Arduino
и контролировать культуру "реального времени" в проектах - один delay() в недрах проекта и
быстродействие самого быстрого доступного контроллера ESP32 сводится на нет.
-----------------------
Для нас реализован важный промежуточный этап развития использования FLProg.
Всем желаем успехов.
Вложения
Test_LCD_v3_041019.flp
(1.13 МБ) 114 скачиваний
Последний раз редактировалось ecoins 04.10.2019{, 20:39}, всего редактировалось 1 раз.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 784
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#380

Сообщение Dryundel » 04.10.2019{, 20:12}

ecoins писал(а):
04.10.2019{, 20:04}
Подробнее писали раньше.
В одном из почти четырех сотен постов? Спасибо. :smile37:
ecoins, не делайте так пожалуйста.

Закрыто

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