diff --git a/Core/Dallas/ds18b20_driver.c b/Core/Dallas/ds18b20_driver.c index d72ee1a..b553291 100644 --- a/Core/Dallas/ds18b20_driver.c +++ b/Core/Dallas/ds18b20_driver.c @@ -7,7 +7,7 @@ */ #include "ds18b20_driver.h" -DS18B20_Drv_t DS; +DS18B20_Drv_t *DS; OneWire_t OW; /** diff --git a/Core/Dallas/ds18b20_driver.h b/Core/Dallas/ds18b20_driver.h index baf22f6..b5cf8d8 100644 --- a/Core/Dallas/ds18b20_driver.h +++ b/Core/Dallas/ds18b20_driver.h @@ -78,7 +78,7 @@ typedef struct { uint8_t DevAddr[DS18B20_DEVICE_AMOUNT][8]; } DS18B20_Drv_t; -extern DS18B20_Drv_t DS; +extern DS18B20_Drv_t *DS;; extern OneWire_t OW; /* External Function ---------------------------------------------------------*/ diff --git a/Core/Modbus/modbus_data.h b/Core/Modbus/modbus_data.h index 588cbab..15222ce 100644 --- a/Core/Modbus/modbus_data.h +++ b/Core/Modbus/modbus_data.h @@ -54,6 +54,7 @@ typedef struct //MB_DataInRegsTypeDef { uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT]; MB_SensorParamsTypeDef Response; + uint16_t AllROMs[DS18B20_DEVICE_AMOUNT][4]; }MB_DataInRegsTypeDef; diff --git a/Core/PY32Module/PY32module_main.c b/Core/PY32Module/PY32module_main.c index 8cd6dbd..e2713ca 100644 --- a/Core/PY32Module/PY32module_main.c +++ b/Core/PY32Module/PY32module_main.c @@ -79,8 +79,9 @@ void PYModule_FirstInit(void) OW.DataPort = DS_GPIO_Port; /* Инициализация onewire и поиск датчиков*/ + DS = (DS18B20_Drv_t *)&MB_DATA.InRegs.AllROMs; OneWire_Init(&OW); - DS18B20_Search(&DS, &OW); + DS18B20_Search(DS, &OW); /* Инициализация modbus */ @@ -90,7 +91,7 @@ void PYModule_FirstInit(void) /* Инициализация структур датчиков ПЧ */ DallasBus.hdallas = &hdallas1; DallasBus.hdallas->onewire = &OW; - DallasBus.hdallas->ds_devices = &DS; + DallasBus.hdallas->ds_devices = DS; PCHSens_InitModule(&hdallas1, &pchsens.module1, REG_PCH_NUMB_11|REG_PCH_DIODE_NUMB_1); PCHSens_InitModule(&hdallas1, &pchsens.module2, REG_PCH_NUMB_12|REG_PCH_DIODE_NUMB_1); PCHSens_InitModule(&hdallas1, &pchsens.module3, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1);