добавлен модбас

This commit is contained in:
2025-02-28 19:34:21 +03:00
parent 0743e6699a
commit 0f2736b8a5
26 changed files with 4179 additions and 76 deletions

105
Core/MyLibs/mylibs_defs.h Normal file
View File

@@ -0,0 +1,105 @@
/**
**************************************************************************
* @file mylibs_defs.h
* @brief Заголочный файл для дефайнов библиотеки MyLibsGeneral.
**************************************************************************
* @defgroup MYLIBS_DEFINES My Libs defines
* @brief Базовые дефайны для всего проекта
*
*************************************************************************/
#ifndef __MYLIBS_DEFINES_H_
#define __MYLIBS_DEFINES_H_
#include "mylibs_config.h"
/***************************************************************************
******************************ERROR_HANDLER********************************/
/**
* @addtogroup ERROR_HANDLER_DEFINES Error Handler defines
* @ingroup MYLIBS_DEFINES
* @brief Дефайны для определения функции обработки ошибок
@{
*/
/* extern Error_Handler from main.h */
extern void Error_Handler(void);
/* Define error handler for MyLibs */
#define MyLibs_Error_Handler(_params_) Error_Handler(_params_)
/* If error handler not defined - set void */
#ifndef MyLibs_Error_Handler
#define ((void)0U)
#endif // MyLibs_Error_Handler
/** ERROR_HANDLER_DEFINES
* @}
*/
/***************************************************************************
********************************ACCESS_DEFINES*****************************/
#define ClearStruct(_struct_) memset(&(_struct_), 0, sizeof(_struct_))
/***************************************************************************
******************************DELAYS_DEFINES*******************************/
/**
* @addtogroup DELAYS_DEFINES Delays defines
* @ingroup MYLIBS_DEFINES
* @brief Дефайны для реализации задержек
@{
*/
#ifdef FREERTOS_DELAY
#define msDelay(_ms_) osDelay(_ms_)
#else
#define msDelay(_ms_) if(_ms_ != 0) HAL_Delay(_ms_-1)
#endif
/** DELAYS_DEFINES
* @}
*/
/***************************************************************************
*******************************MATH_DEFINES********************************/
/**
* @addtogroup MATH_DEFINES Math defines
* @ingroup MYLIBS_DEFINES
* @brief Дефайны для различных математических функций
@{
*/
/**
* @brief Calc dividing including remainder
* @param _val_ - делимое.
* @param _div_ - делитель.
* @details Если результат деления без остатка: он возвращается как есть
Если с остатком - округляется вверх
*/
//#define Divide_Up(_val_, _div_) (((_val_)%(_div_))? (_val_)/(_div_)+1 : (_val_)/_div_) /* через тернарный оператор */
#define Divide_Up(_val_, _div_) ((_val_ - 1) / _div_) + 1 /* через мат выражение */
/**
* @brief Swap between Little Endian and Big Endian
* @param v - Переменная для свапа.
* @return v (new) - Свапнутая переменная.
* @details Переключения между двумя типами хранения слова: HI-LO байты и LO-HI байты.
*/
#define ByteSwap16(v) (((v&0xFF00) >> (8)) | ((v&0x00FF) << (8)))
/**
* @brief Absolute
* @param x - Переменная для модудя.
* @return x (new) - Число по модулю.
* @details Берет число по модулю. Хз как работает библиотечный abs в stdlib.h, мб это быстрее, но вряд ли конечно.
*/
#define ABS(x) ( ((x) > 0)? (x) : -(x))?
/** MATH_DEFINES
* @}
*/
#endif //__MYLIBS_DEFINES_H_