Часть 1 описания библиотеки RT_HW_Main.h
Описание библиотеки RT_HW_Main.h v.3.x
1. Введение.
1.1. Назначение библиотеки.
Библиотека RT_HW_Main.h создана для разработки пользовательских блоков в системе визуального программирования FLProg для Arduino:
https://flprog.ru - автор/разработчик Сергей Глушенко.
Библиотека написана на C++ и может использоваться самостоятельно в среде Arduino.
Перед испытанием в среде FLProg, библиотека тестируется в среде Arduino и сопровождается примерами в формате ".ino".
1.2. Разработчики библиотеки.
Команда ecoins -
ecoins@mail.ru,
ecoins1994@gmail.com
1.3. Цели создания библиотеки:
1.3.1. Создание проектных инструментов для создания программного обеспечения, поддерживающего режим реального времени проектов в среде Arduino.
1.3.2. Предоставление инструментов (в виде функций библиотеки) для проектирования пользовательских блоков в FLProg.
1.3.3. Реализация функций, устраняющих несовместимость некоторых функций различных контроллеров, которая по каким-то причинам не реализована в Arduino IDE, например, различная разрядность при работе с аналоговыми сигналами, PWM, особенности работы с интерфейсами UART, i2c и т.п.
1.4. Структура библиотеки.
Библиотека состоит из одного заголовочного файла RT_HW_Main.h и четырех файлов с функциями RT_HW_BOARD.cpp, RT_HW_STRING.cpp, RT_HW_Time.cpp, RT_HW_Task.cpp.
Фактически это четыре разные библиотеки, объединенные одним заголовочным файлом.
1.5. Последствия включение в программный код вызова библиотеки.
Библиотека включается в программу строкой #include "RT_HW_Main.h"
Этот вызов создает 4 объекта (их не надо объявлять в программе), к функциям и параметрам которых открыт доступ через:
* RT_HW_Board.xxx - библиотека для идентификации контроллеров и работы пинами;
* RT_HW_String.xxx - библиотека утилит для работы со строковыми переменными;
* RT_HW_Time.xxx - библиотека функций для работы с временем - измерение, задержки, периодический вызов и т.п.;
* RT_HW_Task.xxx - планировщик (диспетчер задач) по времени и сопутствующие функции.
Вызов #include "RT_HW_Main.h" может быть многократным -это ни на что не влияет.
1.6. Данные для используемых функций.
Некоторые функции требуют хранение внутренних параметров (флаги, счетчики и т.п.). Для таких функций предусматривается создание своего объекта с данными. Таким образом удается избегать дублирование программного кода при использовании однотипных устройств - в данной библиотеке это некоторые функции при работе с пинами.
1.7. Совместимость с другими библиотеками.
Библиотека не влияет на работу сторонних библиотек.
Библиотеки ecoins, написанные для других устройств (датчики, платы и т.п.), имеют имена, которые имеют формат RT_HW_xxx и используют общие подходы к написанию кода.
Другие библиотеки могут использовать функции данной библиотеки, но в большинстве случаев они содержат необходимые фрагменты кода из данной библиотеки. Это незначительно увеличивает размер программного кода, но зато сохраняет автономность дополнительных библиотек.
Последующие главы (в работе):
2. Описание библиотеки RT_HW_Board.xxx
3. Описание библиотеки RT_HW_String.xxx
4. Описание библиотеки RT_HW_Time.xxx
5. Описание библиотеки RT_HW_Task.xxx
6. Заключение.