Прога ужата до 20 кб флеш: удален HAL_TIM и HAL_GPIO
удалена ненужна по сути MyLibs библиотека
This commit is contained in:
@@ -1,13 +1,6 @@
|
||||
#include "crc_algs.h"
|
||||
|
||||
|
||||
uint32_t CRC_calc;
|
||||
uint32_t CRC_ref;
|
||||
|
||||
//uint16_t CRC_calc;
|
||||
//uint16_t CRC_ref;
|
||||
|
||||
|
||||
|
||||
/*Table of CRC values for high order byte*/
|
||||
const unsigned char auchCRCHi[]=
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "mylibs_include.h"
|
||||
#include "main.h"
|
||||
|
||||
// extern here to use in bootloader.c
|
||||
extern uint32_t CRC_calc;
|
||||
|
||||
@@ -88,7 +88,7 @@ UART_SettingsTypeDef modbus1_suart;
|
||||
TIM_SettingsTypeDef modbus1_stim;
|
||||
#else
|
||||
extern UART_HandleTypeDef rs_huart;
|
||||
extern TIM_HandleTypeDef rs_htim;
|
||||
//extern TIM_HandleTypeDef rs_htim;
|
||||
#endif
|
||||
RS_HandleTypeDef hmodbus1;
|
||||
|
||||
@@ -136,7 +136,7 @@ void MODBUS_FirstInit(void)
|
||||
#ifdef INCLUDE_GENERAL_PERIPH_LIBS
|
||||
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &modbus1_suart, &modbus1_stim, 0);
|
||||
#else
|
||||
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &rs_huart, &rs_htim, 0);
|
||||
hmodbus1.RS_STATUS = RS_Init(&hmodbus1, &rs_huart, NULL, 0);
|
||||
#endif
|
||||
|
||||
RS_EnableReceive();
|
||||
@@ -738,12 +738,12 @@ RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_ms
|
||||
|
||||
if(hmodbus->f.MessageHandled == 0)
|
||||
{
|
||||
TrackerCnt_Err(hmodbus->rs_err);
|
||||
|
||||
modbus_msg->Func_Code += ERR_VALUES_START;
|
||||
}
|
||||
else
|
||||
{
|
||||
TrackerCnt_Ok(hmodbus->rs_err);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -798,7 +798,7 @@ RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *mo
|
||||
|
||||
if (modbus_msg->ByteCnt > DATA_SIZE*2) // if ByteCnt less than DATA_SIZE
|
||||
{
|
||||
TrackerCnt_Err(hmodbus->rs_err);
|
||||
|
||||
return RS_COLLECT_MSG_ERR;
|
||||
}
|
||||
|
||||
@@ -820,7 +820,7 @@ RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *mo
|
||||
modbus_uart_buff[ind++] = modbus_msg->ByteCnt;
|
||||
else // otherwise return data_size err
|
||||
{
|
||||
TrackerCnt_Err(hmodbus->rs_err);
|
||||
|
||||
return RS_COLLECT_MSG_ERR;
|
||||
}
|
||||
|
||||
@@ -908,7 +908,7 @@ RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modb
|
||||
//check that data size is correct
|
||||
if (modbus_msg->ByteCnt > DATA_SIZE*2)
|
||||
{
|
||||
TrackerCnt_Err(hmodbus->rs_err);
|
||||
|
||||
modbus_msg->Func_Code += ERR_VALUES_START;
|
||||
return RS_PARSE_MSG_ERR;
|
||||
}
|
||||
@@ -935,7 +935,7 @@ RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modb
|
||||
// compare crc
|
||||
if (modbus_msg->MB_CRC != CRC_VALUE)
|
||||
{
|
||||
TrackerCnt_Err(hmodbus->rs_err);
|
||||
|
||||
modbus_msg->Func_Code += ERR_VALUES_START;
|
||||
}
|
||||
// hmodbus->MB_RESPONSE = MB_CRC_ERR; // set func code - error about wrong crc
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#ifndef __MODBUS_H_
|
||||
#define __MODBUS_H_
|
||||
|
||||
#include "mylibs_include.h"
|
||||
#include "main.h"
|
||||
#include "modbus_data.h"
|
||||
//#include "settings.h" // for modbus settings
|
||||
|
||||
@@ -330,7 +330,44 @@ uint8_t MB_Write_Miltuple_Regs(RS_MsgTypeDef *modbus_msg);
|
||||
* @}
|
||||
*/
|
||||
/////////////////////////---FUNCTIONS---/////////////////////////////
|
||||
|
||||
/***************************************************************************
|
||||
*******************************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
|
||||
* @}
|
||||
*/
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -82,13 +82,13 @@ RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
|
||||
{
|
||||
RS_RES = RS_Abort(hRS, ABORT_RS);
|
||||
printf_rs_err("\n%d: Error RS: Failed to start RS receiving...", uwTick);
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RS_RES = RS_OK;
|
||||
printf_rs("\n%d: RS: Start Receiving...", uwTick);
|
||||
TrackerCnt_Ok(hRS->rs_err);
|
||||
|
||||
}
|
||||
|
||||
hRS->RS_STATUS = RS_RES;
|
||||
@@ -138,13 +138,13 @@ RS_StatusTypeDef RS_Transmit_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
|
||||
{
|
||||
RS_RES = RS_Abort(hRS, ABORT_RS);
|
||||
printf_rs_err("\n%d: Error RS: Failed to start RS transmitting...", uwTick);
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
RS_RES = RS_OK;
|
||||
printf_rs("\n%d: RS: Start Transmitting...", uwTick);
|
||||
TrackerCnt_Ok(hRS->rs_err);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -345,7 +345,7 @@ RS_StatusTypeDef RS_Handle_Receive_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *R
|
||||
|
||||
if(RS_RES != RS_OK)
|
||||
{
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
}
|
||||
|
||||
return RS_RES;
|
||||
@@ -369,7 +369,7 @@ RS_StatusTypeDef RS_Handle_Transmit_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *
|
||||
}
|
||||
if(RS_RES != RS_OK)
|
||||
{
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
}
|
||||
|
||||
return RS_RES;
|
||||
@@ -398,7 +398,7 @@ RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS)
|
||||
// if we need to skip this message - restart receive
|
||||
if(RS_RES == RS_SKIP || NuRS_of_Rest_Bytes == 0xFFFF)
|
||||
{
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
RS_Abort(hRS, ABORT_RX);
|
||||
RS_RES = RS_Handle_Receive_Start(hRS, hRS->pMessagePtr);
|
||||
return RS_RES;
|
||||
@@ -433,7 +433,6 @@ RS_StatusTypeDef RS_UART_RxCpltCallback(RS_HandleTypeDef *hRS)
|
||||
|
||||
if(uart_res != HAL_OK)
|
||||
{// need uart status, so doesnt write abort to RS_RES
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
RS_RES = RS_Abort(hRS, ABORT_RS);
|
||||
}
|
||||
else
|
||||
@@ -523,7 +522,7 @@ void RS_UART_Handler(RS_HandleTypeDef *hRS)
|
||||
//----------------ERRORS HANDLER----------------
|
||||
else
|
||||
{
|
||||
TrackerCnt_Err(hRS->rs_err);
|
||||
|
||||
/* de-init uart transfer */
|
||||
RS_Abort(hRS, ABORT_RS);
|
||||
RS_Handle_Receive_Start(hRS, hRS->pMessagePtr);
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
|
||||
#include "modbus.h"
|
||||
|
||||
#include "mylibs_include.h"
|
||||
#include "crc_algs.h"
|
||||
|
||||
|
||||
@@ -187,7 +186,6 @@ typedef struct // RS_HandleTypeDef
|
||||
|
||||
/* RS STATUS */
|
||||
RS_StatusTypeDef RS_STATUS; ///< RS status
|
||||
RS_TrackerTypeDef rs_err;
|
||||
}RS_HandleTypeDef;
|
||||
extern RS_HandleTypeDef hmodbus1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user