Блок для настройка основного блока Nextoin.
-------------------------------------------------------------------------------------------------------
Вход:номер порта UART(default=UART2), скорость UART(default=115200).
Выход: присвоенный ID=nxt, по которому блоки ввода вывода связываются с основным блоком.
-------------------------------------------------------------------------------------------------------
Блок осуществляет чтение и разборку транзакций из Nextion и ограничивает количество
одновремено отправляемых транзакций с учетом заполненности выходного буфера UART
для исключения переполнения выходного буфера UART.
Блок для настройки шин i2c настраивается скорость шины.
Настройка шин i2c.
Настраивается скорость шины.
Для контроллеров ESP8266, ESP32, STM32 могут быть переназначены пины sda,scl.
Блок для Выбор пользовательских параметров
Выводятся параметры со значениями, определенные пользователем
для каждого из контроллеров, поддерживаемых библиотекой RT_HW_BASRE.h,
или без привязки к коннтроллеру.
Упрощает разработку универсальных проектов под разные типы контроллеров
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7).
Блок для Выбор тестовых параметров
Выводятся параметры со значениями, определенные в PROGMEM
для каждого из контроллеров, поддерживаемых библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов под разные типы контроллеров
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7);
Выводимые параметры
1. Частота процессора.
2. Системная разрядность.
3. Максимальное значение переменной для установленной системнмной разрядности.
4. Напряжение питания контроллера (CPU) в mV.
5. Коэффициент перевода системного значения в напряжение.
6. Вывод количества задач диспетчера задач (по типам задач).
7. Вывод периода вызова задач диспетчера задач (по типам задач).
Выводятся адреса устройств i2c со значениями, определенные в PROGMEM
для каждого из контроллеров, поддерживаемых библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов под разные типы контроллеров
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7).
Выводятся номера пинов со значениями, определенные в PROGMEM
для каждого из контроллеров, поддерживаемых библиотекой RT_HW_BASRE.h.
Упрощает разработку универсальных тестов под разные типы контроллеров
разной архитектуры (AVR,ESP8266,ESP32,SAMD21(M0), SAM3X, STM32F1, STM32F4, STM32H7).
Номера пинов выводятся группами:
SYS->control (контрольный пин для отслеживаня цикла loop() ), led(светодиод на плате), button(кнопка на плате);
DBG->debug1,debug2,debug3(пины для отладки пользовательских программ);
DI ->di1,di2 (для использовании в тестах);
ADC->adc1,adc2 (для использовании в тестах);
TCH-> tch1,tch2 (для использовании в тестах);
DO ->do1,do2 (для использовании в тестах);
PWM->pwm1,pwm2 (для использовании в тестах);
DAC->dac1,dac2 (для использовании в тестах);
Блок для РЕГИСТРЫ РАСШИРЕНИЯ hc595, mcp23x017
Быстрый блок вывода байта в устройство 74HC595 (AVR,ESP,SAMX,SAMD21,STM32 и др., поддерживаемые библиотекой RT_HW_BASE.h).
Используемые библиотеки: RT_HW_BASE.h.
1.Устройство может быть подключено через два интерфейса:
аппаратный SPI. Используются два аппаратных пина SPI (clk,mosi) и один пин cs, который выбирается в настройках.
Также может быть выбран номер используемой шины SPI (0,1,2,3) [ESP32,STM32 и др.] (default=0);
программный SPI (SSPI), через 3 пина clk,mosi,cs, которые выбираются в настройках.
2.Используемые пины могут могут быть заданы тремя способами:
тестовые[автоматически выбираемые под тип контроллера];
пользовательские (в строке параметра);
через входы блока.
3.Пины проверяются на соответствие функциональным требованиям.
Если задан недопустимый пин, то блок записывает в custom код ошибки и в далее не выполняет каких-либо действий.
3.Входные данные могут быть в формате байта(default) или в формате 8-ми бит.
4.Вывод осуществляется всегда при включении, событии по входу eN 0->1, событии по входу reset 1->0
и далее периодически при изменени входного значения.
5.Период вывода может быть выбран из табличных значений (default=50) или задан пользователем.
6.Последовательность вывода битов выбирается наичная со старшего бита(default), либо с маладшего бита.
7.Входы eN(разрешение работы) и reset(сброс текущего значения) настраимваемые (default разрешены).
8.Предусмотрен режим отладки блока (defaul=не разрешен).
При включении режима отладки на консоль выводятся параметры блока и его состояние, в т.ч. параметр custom.
9.Измеренное время вывода (для Arduino Nano) по сигналу cs составляет для SPI 4.2мкс, для SSPI 33мкс.
Блок реализует возможности расширителя дискретных сигналоы ввода/вывода MCP23x17:
MCP23017 - интерфейс i2c;
MCP23S17 - интерфейс SPI (в разработке).
1.Поддерживается произвольная конфигурация входов/выходов.
2.Поддерживается "горячий" перезапуск.
3.По сравнению с известными библиотеками C++ и блоками FLProg обоспечивает существенно более высокое быстродействие
при минимальной загрузке шины обмена. Особенно это актуально для интерфейса i2c.
Для обеспечения максимальной производительности по времени рекомендуется использование однотипных портов
(например, все пины на выход или на вход).
В соответствии с примененным алгоритмом отправка в устройство данных на выходные пины осуществляется только при их изменении
не чаще "периода работы". Этот параметр можно установить "В каждом цикле" в этом случае управление по времени удобно выполнять
через вход EN.
Период опроса входов можно увеличить параметровм "Множитель опроса входов" - это разгружает шину обмена.
СЕНСОРЫ dht22, ds1820, hc-sr04, htu21, bme280, max6675
Сенсор температуры и влажности типа DHT21,DHT22.
Блок не поддерживает DHT11 из-за его низкой точности.
Входы:
1.EN - разрешение работы блока..
2. Номер пина. Если пин <0, блок не выполняет никаких действий.
Выходы:
1. ok - флаг готовности устройства и правильных измерений.
2. T - измеренная температура (-50 - +125 град.С) в формате float с одним знаком после точки. При отсутствии измерения равна -0.1град.С.
3. H - измеренная влажности (0-100%) в формате float с одним знаком после точки. При отсутствии измерения равна -0.1.
----------------------------------
СЕНСОРЫ dht22, ds1820, hc-sr04, htu21, bme280, max6675
Параметры:
1. "Разрешение входа EN" - включает/отключает вход EN. Если вход отключен, то работа блока разрешена.
2. "Период опроса разрешена в мс."
По конструктивным особенностям сенсора вызовы не должны быть чаще чем 1 раз в 2000мс.
Это значение можно установить равным 0 и управлять периодичностью измерения через вход EN.
3. "Количество повторов при ошибке измерения".
После нескольких подряд ошибочных измерений, устанавливаются выходные значения ok=0; T=-0.1; H=0.1.
Эти значения удерживаются до первого успешного измерения.
Особенности измерения:
Запущенный процесс измерения занимает примерно 5,7 мс - в это время процессор занят и
реагирует только на аппаратные прерывания, время обработки которых не должны превышать 30-50мкс,
в противном случае может привести к потери сигнала с сенсора и ошибке измерения.
Едичные ошибки не критичны и обрабатыватся блоком.
Используемые библиотеки: RT_HW_DTHx.h версии 4.1 и выше.
-----------------------------------------------------------------
Рекомендации для использовании в FLProg:
1. Устанавливать на плате, которая вызывается с периодом менее 1 сек.
Обычно это свободная задача, но можно использовать и любой другой тип задачи.
Блок для Дисплей HD44780
Блок настройки дисплея типа HD44780.
1.Устанавливает размер дисплея и тип интерфейса.
2.Размер дисплея (выбирается из меню)Ж
16x2,20x4,40x2,20x1,40x1,40x4.
1.Осуществляет вывод на консоль:
1.1.переменных (байт,слово,бит) от 1 до 8 входов с различными форматими.
Режимы вывода: в каждом цикле, однократно, по изменению переменных, периодически,
периодически при изменении переменных.
1.2.форматированного текста. Разновидностью этого вывода является вывод горизонтальной линии.
Режимы вывода: в каждом цикле, однократно, периодически.
1.3.параметров использованного контроллера.
Режимы вывода: в каждом цикле, однократно, периодически
1.4.результатов сканирования шины i2c.
Режимы вывода: в каждом цикле, однократно, периодически.
2.Все блоки имеют вход разрешения работы EN.xxx.
3.Все блоки имеют выход run -разрешение для работы следующего блока.
Этот параметр всегда равен входному параметру EN.xxx.
Использование EN.xxx и run позволяет выстраивать на плате желаемую последовательность вывода.
Сканирует шину i2c и выводит в консоль адреса всех подключенных устройств.
Выводит на консоль все подключенные пины.
Блок настраивает серийный порт (UART) для консоли.
Без этого блока блоки вывода выполняться не будут.
Блок настраивает UART на скорость работы, определемый параметром RT_HW_Base.console.speed.
Для аппаратного порта по умолчанию скорость=115200.
Для программного порта по умолчанию скорость=9600.
Перед запуском блока этот параметр может быть изменен пользователем.
Входные параметры:
uart - номер серийного порта для консоли.
Этот параметр может быть отключен параметром "Разрешение номера UART"" (false).
В этом случае консоль настраивается на uart=0;
Выходные параметры:
"Заголовок" равен 1 в течении одного цикла после готовности консоли.