Ассемблерная вставка в FLProg

Создаем свой блок. Вопросы, помощь знатоков.
AbbosDavranov
Рядовой
Сообщения: 7
Зарегистрирован: 24 ноя 2025, 08:13
Имя: Аббос
Благодарил (а): 3 раза

Re: Ассемблерная вставка в FLProg

Сообщение AbbosDavranov »

Здравствуйте.

Столкнулся с проблемой при компиляции скетча в Arduino IDE.
Библиотеки FlprogUtilites и DHT_New установлены (лежат в папке /libraries), Arduino IDE перезапускал.

Однако при компиляции IDE выдаёт ошибку, что не может найти файлы, указанные в #include, например:

#include "flprogUtilites.h"
#include <TroykaCurrent.h>
#include "DHT_NEW.h"
DHT _dht1;


Ошибка вида:

pr4:3:10: fatal error: DHT_NEW.h: No such file or directory
#include "DHT_NEW.h"
^~~~~~~~~~~
compilation terminated.
exit status 1
DHT_NEW.h: No such file or directory



имя .h файла в библиотеке совпадает с тем, что указывается в #include

Папки библиотек присутствуют, но Arduino IDE их не подхватывает корректно.

Подскажите, пожалуйста что не так

Заранее спасибо.
dstrufanov
Сержант
Сообщения: 272
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

AbbosDavranov писал(а): 02 фев 2026, 07:28 ... DHT_New установлены (лежат в папке /libraries)

Ошибка вида:
pr4:3:10: fatal error: DHT_NEW.h: No such file or directory
...
У вас "New" в разных регистрах написано, может в этом проблема?
Аватара пользователя
montirovka
Подполковник
Сообщения: 1320
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 161 раз
Поблагодарили: 519 раз

Re: Ассемблерная вставка в FLProg

Сообщение montirovka »

AbbosDavranov писал(а): 02 фев 2026, 07:28 Здравствуйте.

Столкнулся с проблемой при компиляции скетча в Arduino IDE.
Библиотеки FlprogUtilites и DHT_New установлены (лежат в папке /libraries), Arduino IDE перезапускал.

Однако при компиляции IDE выдаёт ошибку, что не может найти файлы, указанные в #include, например:

#include "flprogUtilites.h"
#include <TroykaCurrent.h>
#include "DHT_NEW.h"
DHT _dht1;


Ошибка вида:

pr4:3:10: fatal error: DHT_NEW.h: No such file or directory
#include "DHT_NEW.h"
^~~~~~~~~~~
compilation terminated.
exit status 1
DHT_NEW.h: No such file or directory



имя .h файла в библиотеке совпадает с тем, что указывается в #include

Папки библиотек присутствуют, но Arduino IDE их не подхватывает корректно.

Подскажите, пожалуйста что не так

Заранее спасибо.
Полный путь к библиотеке напишите. Может у вас путь неверный.
AbbosDavranov
Рядовой
Сообщения: 7
Зарегистрирован: 24 ноя 2025, 08:13
Имя: Аббос
Благодарил (а): 3 раза

Re: Ассемблерная вставка в FLProg

Сообщение AbbosDavranov »

d:\FLProg\ideV8\libraries\ Полный путь к библиотеке
dstrufanov
Сержант
Сообщения: 272
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

AbbosDavranov писал(а): 02 фев 2026, 09:58 d:\FLProg\ideV8\libraries\ Полный путь к библиотеке
C:\Program Files (x86)\FLProg\ideV8\portable\sketchbook\libraries\

У вас конечно не именно такой может быть, но надо посмотреть
dstrufanov
Сержант
Сообщения: 272
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

dstrufanov писал(а): 23 янв 2026, 10:51 Не работают блоки. Прошло больше полугода, уже забыл весь алгоритм обработки, а восстанавливать сейчас нет времени. Сорри, как руки дойдут, сделаю, но пока нет
Появилось немного времени и вернулся к теме модбаса в той части, которая меня интересует, а именно слейв. Подправил сам блок модбаса и дискретные переменные (инпуты и койлы):
MB-SLAVE_(Code_-_Basic).ubi
DI-SLAVE_(Code_-_Basic).ubi
CO-SLAVE_(Code_-_Basic).ubi
Применяется просто:
modbus.jpg
На основной плате размещается блок модбаса MB-SLAVE. Все слейвы принимают в свой входной буфер запрос от мастера. Если он адресован данному слейву и ошибки в CRC нет, то осуществляется запись в объявленный массив памяти или чтение из объявленного массива памяти переменных и формируется ответ. Сейчас поддерживаются функции 01, 02, 05, 15.
Блоки инпутов DI-SLAVE (Discrete Input Slave) читают данные на своем входе и записывают их в соответствующую ячейку памяти, блоки коилов CO-SLAVE (Coil Output Slave) читают данные из соответствующей ячейки памяти и записывают их на свой выход. Блоки инпутов и коилов могут быть и на других платах, выполняемых по условию.
Есть разночтение в количестве поддерживаемых инпутов и коилов. В блоке MB-SLAVE объявлен размер входного буфера и количество коилов и инпутов по 32, а в блоках DI-SLAVE и CO-SLAVE заданы диапазоны адресов от 0 до 255. Изначально предполагалось применение atmega328 не только в качестве слейва, но и в качестве мастера, а т.к. мастер должен хранить в своей памяти все переменные всех слейвов, то было введено ограничение в 32. В данном же случае можно исправить объявляемые размеры массивов на 256, ну или не задавать адреса инпутов и коилов больше 31.
Вот такая сейчас система работает:
IMG_20260318_141706.jpg
Три мк работают на шине CAN со своим протоколом, один из трех является шлюзом между CAN и MasterOPC с Modbus. Это обмен по RX и TX со стороны Modbus:
IMG_20260318_141712.jpg
ПС: Да, адреса слейва, инпутов и коилов задаются через параметры пользователя (кликнуть на блок). Блок слейва поддерживает скорости 9600, 19200, 38400, 76800 (задаются соответственно параметром BaudRate 9, 19, 38 и 76)

ППС: !!!Блок модбаса использует USART1, так что работает только на aimega328pb (с буквой b!!!). Если нужна работа на обычной нанке, то нужно во всех регистрах USART и векторах прерываний исправить 1 на 0
У вас нет необходимых прав для просмотра вложений в этом сообщении.
dstrufanov
Сержант
Сообщения: 272
Зарегистрирован: 07 янв 2024, 12:43
Имя: Дмитрий
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Ассемблерная вставка в FLProg

Сообщение dstrufanov »

Сделал блок записи в холдинг-регистр слейва HO-SLAVE:
HO-SLAVE_(Code_-_Basic).ubi
Для записи в холдинг-регистр нужно переименовать с расширением .S и добавить в папку с библиотекой функцию 06:
Function_06.txt
Обновить заголовочный файл:
BlackLogic.h
И сам блок слейва:
MB-SLAVE_(Code_-_Basic).ubi
Вот так он используется:
Holding.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

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

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

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