comit_job ver new modbus
This commit is contained in:
@@ -40,7 +40,7 @@
|
||||
|
||||
#include "def.h"
|
||||
#include <stdio.h>
|
||||
#include "rs_message.h"
|
||||
#include "modbus.h"
|
||||
#include "eeprom_emul.h"
|
||||
#include "stdio.h"
|
||||
|
||||
@@ -68,7 +68,7 @@ uint8_t ralay_5v_on_var=0;
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PM */
|
||||
float temperature;
|
||||
extern uint8_t roms[MAX_DEVICES][8];
|
||||
uint8_t roms[MAX_DEVICES][8];
|
||||
Flags_TypeDef flag;
|
||||
//extern uint8_t devices_found ;
|
||||
uint8_t _debug_init=0;
|
||||
@@ -143,9 +143,13 @@ int main(void)
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
led_blink(GPIOC,13,rest_iter,reset_blink_delay);
|
||||
MODBUS_FirstInit();
|
||||
MODBUS_FirstInit(&hmodbus1, &mb_huart, &mb_htim);
|
||||
MODBUS_Config(&hmodbus1, MODBUS_DEVICE_ID, MODBUS_TIMEOUT, MODBUS_MODE_SLAVE);
|
||||
|
||||
// Запуск приема Modbus
|
||||
MODBUS_SlaveStart(&hmodbus1, NULL);
|
||||
uint8_t uart_byte = 0;
|
||||
RS_Receive_IT(&hmodbus1, &MODBUS_MSG);
|
||||
|
||||
Dallas_BusFirstInit(&htim1);
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||||
@@ -162,7 +166,7 @@ int main(void)
|
||||
|
||||
|
||||
|
||||
if( hmodbus1.pMessagePtr->Func_Code&ERR_VALUES_START)
|
||||
if( hmodbus1.pMessagePtr->FuncCode&FC_ERR_VALUES_START)
|
||||
{
|
||||
static int pause_Alarm_led;
|
||||
while (1)
|
||||
@@ -221,32 +225,8 @@ int main(void)
|
||||
{
|
||||
GPIOA->ODR&=~(1<<10);
|
||||
}
|
||||
|
||||
//// if (sens[i].temperature<sens[i].set_temp-sens[i].hyst)
|
||||
////
|
||||
//// {
|
||||
////
|
||||
//// MB_DATA.Coils.coils[0].all|=1<<i;
|
||||
////
|
||||
//// }
|
||||
////
|
||||
//// else
|
||||
////
|
||||
//// if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
|
||||
//// {
|
||||
////
|
||||
//// MB_DATA.Coils.coils[0].all&=~(1<<i);
|
||||
////
|
||||
//// }
|
||||
//// if(GPIOB11_valve)
|
||||
//// {
|
||||
//// GPIOB->ODR|=1<<11;
|
||||
//// }
|
||||
//// else
|
||||
//// {
|
||||
//// GPIOB->ODR&=~(1<<11);
|
||||
////
|
||||
//// }
|
||||
value_control();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -435,39 +415,74 @@ FuncStat Field_modbus(MB_DataStructureTypeDef* MB_DATA, Flags_TypeDef* flag)
|
||||
};
|
||||
|
||||
|
||||
FuncStat value_control(void )
|
||||
{
|
||||
|
||||
for(int i=0;i<10;i++)
|
||||
{
|
||||
if (sens[i].temperature<sens[i].set_temp-sens[i].hyst)
|
||||
|
||||
{
|
||||
|
||||
MB_DATA.Coils.coils[0].all|=1<<i;
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
|
||||
if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
|
||||
{
|
||||
|
||||
MB_DATA.Coils.coils[0].all&=~(1<<i);
|
||||
|
||||
}
|
||||
if(GPIOB11_valve)
|
||||
{
|
||||
GPIOB->ODR|=1<<11;
|
||||
}
|
||||
else
|
||||
{
|
||||
GPIOB->ODR&=~(1<<11);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
return FuncOK;
|
||||
}
|
||||
|
||||
|
||||
uint16_t handle_valves(TEMP_TypeDef* temp_sense[MAX_SENSE] )
|
||||
{
|
||||
|
||||
if (temp_sense[0]->state==STATE_OPEN_VALVE)
|
||||
{
|
||||
GPIOC->ODR|=1<<14;
|
||||
}
|
||||
else
|
||||
if (temp_sense[0]->state==STATE_CLOSE_VALVE)
|
||||
{
|
||||
GPIOC->ODR&=~(1<<14);
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
//uint16_t handle_valves(TEMP_TypeDef* tmp_sense )
|
||||
//{
|
||||
//
|
||||
// if (temp_sense[0].state==STATE_OPEN_VALVE)
|
||||
// {
|
||||
// GPIOC->ODR|=1<<14;
|
||||
// }
|
||||
// else
|
||||
// if (temp_sense[0].state==STATE_CLOSE_VALVE)
|
||||
// {
|
||||
// GPIOC->ODR&=~(1<<14);
|
||||
// }
|
||||
//
|
||||
// return 1;
|
||||
//
|
||||
//}
|
||||
|
||||
//void init_setpoint _all_T_sense(void)
|
||||
//{
|
||||
// //ds_search_devices();
|
||||
// for(int i=0;i<hdallas.onewire->RomCnt;i++)
|
||||
//{
|
||||
// temp_sense[i].id[0]=roms[i][0]<<0|roms[i][1]<<8|roms[i][2]<<16|roms[i][3]<<24;
|
||||
// temp_sense[i].id[1]=roms[i][4]<<0|roms[i][5]<<8|roms[i][6]<<16|roms[i][7]<<24;
|
||||
// temp_sense[i].count =i+1;
|
||||
// temp_sense[i].location=1;
|
||||
// temp_sense[i].t_open=22;
|
||||
// temp_sense[i].t_close=18;
|
||||
// temp_sense[i].status_T_sense=1;
|
||||
//}
|
||||
//}
|
||||
void init_setpoint_all_T_sense(TEMP_TypeDef* temp_sense[MAX_SENSE])
|
||||
{
|
||||
//ds_search_devices();
|
||||
for(int i=0;i<hdallas.onewire->RomCnt;i++)
|
||||
{
|
||||
temp_sense[i]->id[0]=roms[i][0]<<0|roms[i][1]<<8|roms[i][2]<<16|roms[i][3]<<24;
|
||||
temp_sense[i]->id[1]=roms[i][4]<<0|roms[i][5]<<8|roms[i][6]<<16|roms[i][7]<<24;
|
||||
temp_sense[i]->count =i+1;
|
||||
temp_sense[i]->location=1;
|
||||
temp_sense[i]->t_open=22;
|
||||
temp_sense[i]->t_close=18;
|
||||
temp_sense[i]->status_T_sense=1;
|
||||
}
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "stm32f1xx_it.h"
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "rs_message.h"
|
||||
#include "modbus.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@@ -281,11 +281,12 @@ void TIM1_CC_IRQHandler(void)
|
||||
void TIM2_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN TIM2_IRQn 0 */
|
||||
|
||||
RS_TIM_Handler(&hmodbus1);
|
||||
return;
|
||||
/* USER CODE END TIM2_IRQn 0 */
|
||||
HAL_TIM_IRQHandler(&htim2);
|
||||
/* USER CODE BEGIN TIM2_IRQn 1 */
|
||||
// RS_TIM_Handler(&hmodbus1);
|
||||
//RS_TIM_Handler(&hmodbus1);
|
||||
/* USER CODE END TIM2_IRQn 1 */
|
||||
}
|
||||
|
||||
@@ -313,15 +314,12 @@ static uint8_t first_in=1;
|
||||
void USART1_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN USART1_IRQn 0 */
|
||||
if (__HAL_UART_GET_FLAG(&huart1, UART_FLAG_IDLE))
|
||||
{
|
||||
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
|
||||
RS_TIM_Handler(&hmodbus1);
|
||||
}
|
||||
RS_UART_Handler(&hmodbus1);
|
||||
return;
|
||||
/* USER CODE END USART1_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart1);
|
||||
/* USER CODE BEGIN USART1_IRQn 1 */
|
||||
RS_UART_Handler(&hmodbus1);
|
||||
//RS_UART_Handler(&hmodbus1);
|
||||
|
||||
|
||||
/* USER CODE END USART1_IRQn 1 */
|
||||
|
||||
@@ -83,7 +83,7 @@ void MX_TIM2_Init(void)
|
||||
|
||||
/* USER CODE END TIM2_Init 1 */
|
||||
htim2.Instance = TIM2;
|
||||
htim2.Init.Prescaler = 7199;
|
||||
htim2.Init.Prescaler = 72-1;
|
||||
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim2.Init.Period = 65535;
|
||||
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||
|
||||
Reference in New Issue
Block a user