add var LOST_SENS_CNT

This commit is contained in:
andrey 2025-06-26 18:35:54 +03:00
parent 3f768d3531
commit becb211c76
4 changed files with 20 additions and 8 deletions

View File

@ -107,8 +107,10 @@ struct _SensorHandleStruct
unsigned isConnected:1; ///< Флаг соединения unsigned isConnected:1; ///< Флаг соединения
unsigned isInitialized:1; ///< Флаг инициализации unsigned isInitialized:1; ///< Флаг инициализации
unsigned isLost:1; ///< Флаг потери связи unsigned isLost:1; ///< Флаг потери связи
uint16_t lost_cnt;
DALLAS_FlagsTypeDef f; ///< Флаги DALLAS_FlagsTypeDef f; ///< Флаги
float set_temp; float set_temp;
int hyst; int hyst;

View File

@ -23,14 +23,14 @@
* @brief Порт вывода для шины 1-Wire. * @brief Порт вывода для шины 1-Wire.
* @details Указывает порт GPIO, к которому подключена линия данных 1-Wire (например, для DS18B20). * @details Указывает порт GPIO, к которому подключена линия данных 1-Wire (например, для DS18B20).
*/ */
#define OW_GPIO_Port GPIOA #define OW_GPIO_Port GPIOB
/** /**
* @def OW_Pin_Numb * @def OW_Pin_Numb
* @brief Номер пина в порту OW_GPIO_Port. * @brief Номер пина в порту OW_GPIO_Port.
* @details Используется для формирования маски пина и настройки ввода/вывода. * @details Используется для формирования маски пина и настройки ввода/вывода.
*/ */
#define OW_Pin_Numb 1 #define OW_Pin_Numb 9
/** /**
* @def OW_Pin * @def OW_Pin

View File

@ -170,7 +170,7 @@ for ( int i=0; i<hdallas.onewire->RomCnt;i++)
sens[i].Init.init_func = &Dallas_SensorInitByInd; sens[i].Init.init_func = &Dallas_SensorInitByInd;
sens[i].Init.Resolution = DALLAS_CONFIG_9_BITS; sens[i].Init.Resolution = DALLAS_CONFIG_9_BITS;
sens[i].set_temp =20.; sens[i].set_temp =20.;
sens[i].hyst =3; sens[i].hyst =2;
Dallas_AddNewSensors(&hdallas, &sens[i]); Dallas_AddNewSensors(&hdallas, &sens[i]);
} }
@ -194,11 +194,16 @@ for ( int i=0; i<hdallas.onewire->RomCnt;i++)
} }
init=MB_DATA.Coils.init_param; init=MB_DATA.Coils.init_param;
Dallas_StartConvertTAll(&hdallas,DALLAS_WAIT_BUS,0); Dallas_StartConvertTAll(&hdallas,DALLAS_WAIT_BUS,0);
for(int i=0;i<hdallas.onewire->RomCnt;i++) for(int i=0;i<hdallas.onewire->RomCnt;i++)
{ {
if(sens[i].isLost)
{
sens[i].lost_cnt ++;
}
Dallas_ReadTemperature(&sens[i]); Dallas_ReadTemperature(&sens[i]);
sens[i].set_temp = MB_DATA.HoldRegs.set_Temp[i]; sens[i].set_temp = MB_DATA.HoldRegs.set_Temp[i];
MB_DATA.InRegs.sens_Temp[i]=sens[i].temperature*10; MB_DATA.InRegs.sens_Temp[i]=sens[i].temperature*10;
@ -206,7 +211,7 @@ for ( int i=0; i<hdallas.onewire->RomCnt;i++)
if (sens[i].temperature<sens[i].set_temp-sens[i].hyst) if (sens[i].temperature<sens[i].set_temp-sens[i].hyst)
{ {
GPIOC->ODR|=1<<13;
MB_DATA.Coils.coils.all|=1<<i; MB_DATA.Coils.coils.all|=1<<i;
} }
@ -215,9 +220,10 @@ for ( int i=0; i<hdallas.onewire->RomCnt;i++)
if (sens[i].temperature>sens[i].set_temp+sens[i].hyst) if (sens[i].temperature>sens[i].set_temp+sens[i].hyst)
{ {
GPIOC->ODR&=~(1<<13);
MB_DATA.Coils.coils.all&=~(1<<i); MB_DATA.Coils.coils.all&=~(1<<i);
} }
} }

View File

@ -153,7 +153,7 @@
<Ww> <Ww>
<count>0</count> <count>0</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>sens</ItemText> <ItemText>sens,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>1</count> <count>1</count>
@ -260,6 +260,10 @@
<Name>System Viewer\GPIOA</Name> <Name>System Viewer\GPIOA</Name>
<WinId>35904</WinId> <WinId>35904</WinId>
</Entry> </Entry>
<Entry>
<Name>System Viewer\GPIOB</Name>
<WinId>35900</WinId>
</Entry>
<Entry> <Entry>
<Name>System Viewer\IWDG</Name> <Name>System Viewer\IWDG</Name>
<WinId>35905</WinId> <WinId>35905</WinId>
@ -365,7 +369,7 @@
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber> <FileNumber>6</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\ow_port.c</PathWithFileName> <PathWithFileName>..\Core\Src\ow_port.c</PathWithFileName>
@ -389,7 +393,7 @@
<GroupNumber>2</GroupNumber> <GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber> <FileNumber>8</FileNumber>
<FileType>1</FileType> <FileType>1</FileType>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2> <bDave2>0</bDave2>
<PathWithFileName>..\Modbus\modbus.c</PathWithFileName> <PathWithFileName>..\Modbus\modbus.c</PathWithFileName>