From 39c495410b5cfd3f0220754e0bbd10e2232e01dc Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Fri, 28 Feb 2025 14:18:27 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BA=D0=B0=D0=BA=D0=B0=D1=8F-=D1=82=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=82=D0=BE=D1=80=D1=83=D1=8E=20=D1=8F=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BC=D0=BD=D1=8E...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DS18B20/dallas_tools.c | 2 + DS18B20/pch_sensors.c | 210 ++++++++++++++-------------- DS18B20/pch_sensors.h | 40 ++++-- ds18b20_locations.xlsx | Bin 9891 -> 9897 bytes test_project/MDK-ARM/ds18b20.uvoptx | 24 +--- 5 files changed, 137 insertions(+), 139 deletions(-) diff --git a/DS18B20/dallas_tools.c b/DS18B20/dallas_tools.c index 42264a7..61c21aa 100644 --- a/DS18B20/dallas_tools.c +++ b/DS18B20/dallas_tools.c @@ -33,6 +33,8 @@ HAL_StatusTypeDef Dallas_ReplaceLostedSensor(DALLAS_HandleTypeDef *sensor) if(sensor == NULL) return HAL_ERROR; + result = Dallas_IsConnected(sensor); + if(sensor->isLost) { if(DS18B20_Search(&DS, &OW) != HAL_OK) diff --git a/DS18B20/pch_sensors.c b/DS18B20/pch_sensors.c index 5754832..b3581ff 100644 --- a/DS18B20/pch_sensors.c +++ b/DS18B20/pch_sensors.c @@ -14,41 +14,7 @@ PCHSens_UnknownSensorsTypeDef UnknownSensors; PCHSens_ModuleTypeDef module1; /* Functions ---------------------------------------------------------------*/ -HAL_StatusTypeDef PCHSens_FindUnknownSensors(OneWire_t *onewire, PCHSens_UnknownSensorsTypeDef *unknowns) -{ - HAL_StatusTypeDef result; - if(onewire == NULL) - return HAL_ERROR; - if(unknowns == NULL) - return HAL_ERROR; - - unknowns->onewire = onewire; - unknowns->UnknownCnt = 0; - DALLAS_ScratchpadTypeDef scratchpad; - - PCHSens_LocationTypeDef *location = (PCHSens_LocationTypeDef *)&scratchpad.tHighRegister; - for(int i = 0; i < onewire->RomCnt; i++) - { - /* Проверка присутствует ли выбранный датчик на линии */ - result = DS18B20_ReadScratchpad(onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&scratchpad); - if(result != HAL_OK) - __NOP(); - - if((IS_REG_SENS_LOCATION(location) == 0) || - (IS_REG_PCH_LOCATION(location) == 0) || - (IS_REG_PCH_NUMB(location) == 0) ) - { - unknowns->unknown_sensors[unknowns->UnknownCnt].Init.SensInd = i; - unknowns->unknown_sensors[unknowns->UnknownCnt].Init.init_func = &Dallas_SensorInitByInd; - result = Dallas_AddNewSensors(onewire, &unknowns->unknown_sensors[unknowns->UnknownCnt++]); - if(result != HAL_OK) - __NOP(); - } - } - return HAL_OK; -} - -HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint64_t ROM, uint16_t location) +HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint64_t ROM) { DALLAS_HandleTypeDef tempsens; HAL_StatusTypeDef result; @@ -56,14 +22,12 @@ HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDe return HAL_ERROR; if(sensor == NULL) return HAL_ERROR; - if(location == NULL) - return HAL_ERROR; - sensor->Location = (PCHSens_LocationTypeDef *)&sensor->sens.scratchpad.tHighRegister; +// sensor->UserBytes = (PCHSens_LocationTypeDef *)&sensor->sens.scratchpad.tHighRegister; sensor->sens.Init.ROM = ROM; - sensor->sens.Init.UserBytes12 = location; + sensor->sens.Init.UserBytes12 = sensor->Location.all; sensor->sens.Init.init_func = &Dallas_SensorInitByROM; @@ -74,7 +38,7 @@ HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDe return result; } - result = Dallas_WriteUserBytes(&sensor->sens, location, 0, DALLAS_USER_BYTE_12); + result = Dallas_WriteUserBytes(&sensor->sens, sensor->Location.all, sensor->Location.all, USED_USER_BYTES); if(result != HAL_OK) return result; @@ -92,19 +56,17 @@ HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDe -HAL_StatusTypeDef PCHSens_AddSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint16_t location) +HAL_StatusTypeDef PCHSens_AddSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor) { HAL_StatusTypeDef result; if(onewire == NULL) return HAL_ERROR; if(sensor == NULL) return HAL_ERROR; - if(location == NULL) - return HAL_ERROR; - sensor->Location = (PCHSens_LocationTypeDef *)&sensor->sens.scratchpad.tHighRegister; +// sensor->UserBytes = (PCHSens_LocationTypeDef *)&sensor->sens.scratchpad.tHighRegister; - sensor->sens.Init.UserBytes12 = location; + sensor->sens.Init.UserBytes12 = sensor->Location.all; sensor->sens.Init.init_func = &Dallas_SensorInitByUserBytes; @@ -118,7 +80,7 @@ HAL_StatusTypeDef PCHSens_AddSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* s return result; } -HAL_StatusTypeDef PCHSens_InitModule(OneWire_t *onewire, PCHSens_ModuleTypeDef* module, uint16_t location, uint8_t init) +HAL_StatusTypeDef PCHSens_InitModule(OneWire_t *onewire, PCHSens_ModuleTypeDef* module, uint16_t param) { if(onewire == NULL) return HAL_ERROR; @@ -126,43 +88,26 @@ HAL_StatusTypeDef PCHSens_InitModule(OneWire_t *onewire, PCHSens_ModuleTypeDef* return HAL_ERROR; PCHSens_LocationTypeDef initlocation; - initlocation.all = location; + initlocation.all = param; module->onewire = onewire; module->refLocation = initlocation; - if(init == 0) - { - initlocation.location.Location = 0; - PCHSens_AddSensor(onewire, &module->sens1, initlocation.all); - - initlocation.location.Location = 1; - PCHSens_AddSensor(onewire, &module->sens2, initlocation.all); - - initlocation.location.Location = 2; - PCHSens_AddSensor(onewire, &module->sens3, initlocation.all); - - initlocation.location.Location = 3; - PCHSens_AddSensor(onewire, &module->sens4, initlocation.all); - } - else - { - uint64_t ROM = 0x28366a48f6563c8d; - initlocation.location.Location = 0; - PCHSens_InitNewSensor(onewire, &module->sens1, ROM, initlocation.all); - - ROM = 0x28CF5248F6BB3C2F; - initlocation.location.Location = 1; - PCHSens_InitNewSensor(onewire, &module->sens2, ROM, initlocation.all); - - ROM = 0x28876D60060000CD; - initlocation.location.Location = 2; - PCHSens_InitNewSensor(onewire, &module->sens3, ROM, initlocation.all); - - ROM = 0; - initlocation.location.Location = 3; - PCHSens_InitNewSensor(onewire, &module->sens4, ROM, initlocation.all); - } + module->sens1.Location.all = module->refLocation.all; + module->sens1.Location.param.Location = 0; + PCHSens_AddSensor(onewire, &module->sens1); + + module->sens2.Location.all = module->refLocation.all; + module->sens2.Location.param.Location = 1; + PCHSens_AddSensor(onewire, &module->sens2); + + module->sens3.Location.all = module->refLocation.all; + module->sens3.Location.param.Location = 2; + PCHSens_AddSensor(onewire, &module->sens3); + + module->sens4.Location.all = module->refLocation.all; + module->sens4.Location.param.Location = 3; + PCHSens_AddSensor(onewire, &module->sens4); return HAL_OK; } @@ -176,22 +121,11 @@ HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_ModuleTypeDef *module) result = Dallas_StartConvertTAll(module->onewire, DALLAS_WAIT_BUS, 0); - result = Dallas_ReadTemperature(&module->sens1.sens); - if(result != HAL_OK) - PCHSens_CheckSensor(module->onewire, &module->sens1); - - result = Dallas_ReadTemperature(&module->sens2.sens); - if(result != HAL_OK) - PCHSens_CheckSensor(module->onewire, &module->sens2); - - result = Dallas_ReadTemperature(&module->sens3.sens); - if(result != HAL_OK) - PCHSens_CheckSensor(module->onewire, &module->sens3); - - result = Dallas_ReadTemperature(&module->sens4.sens); - if(result != HAL_OK) - PCHSens_CheckSensor(module->onewire, &module->sens4); - + result = PCHSens_SensorHandleActions(module->onewire, &module->sens1); + result = PCHSens_SensorHandleActions(module->onewire, &module->sens2); + result = PCHSens_SensorHandleActions(module->onewire, &module->sens3); + result = PCHSens_SensorHandleActions(module->onewire, &module->sens4); + PCHSens_DefineUnknownSensor(&UnknownSensors, NULL); return result; @@ -211,7 +145,7 @@ HAL_StatusTypeDef PCHSens_CheckSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* if((sensor->sens.isLost == 1)) { - initlocation.location.Location = 0; + initlocation.param.Location = 0; if(Dallas_ReplaceLostedSensor(&sensor->sens) != HAL_OK) { sensor->not_found = 1; @@ -225,15 +159,48 @@ HAL_StatusTypeDef PCHSens_CheckSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* } +HAL_StatusTypeDef PCHSens_FindUnknownSensors(OneWire_t *onewire, PCHSens_UnknownSensorsTypeDef *unknowns) +{ + HAL_StatusTypeDef result; + if(onewire == NULL) + return HAL_ERROR; + if(unknowns == NULL) + return HAL_ERROR; + + unknowns->onewire = onewire; + unknowns->UnknownCnt = 0; + DALLAS_ScratchpadTypeDef scratchpad; + + PCHSens_LocationTypeDef *param = (PCHSens_LocationTypeDef *)&scratchpad.tHighRegister; + for(int i = 0; i < onewire->RomCnt; i++) + { + /* Проверка присутствует ли выбранный датчик на линии */ + result = DS18B20_ReadScratchpad(onewire, (uint8_t *)&DS.DevAddr[i], (uint8_t *)&scratchpad); + if(result != HAL_OK) + __NOP(); + + if((IS_REG_SENS_LOCATION(param) == 0) || + (IS_REG_PCH_LOCATION(param) == 0) || + (IS_REG_PCH_NUMB(param) == 0) ) + { + unknowns->unknown_sensors[unknowns->UnknownCnt].Init.SensInd = i; + unknowns->unknown_sensors[unknowns->UnknownCnt].Init.init_func = &Dallas_SensorInitByInd; + result = Dallas_AddNewSensors(onewire, &unknowns->unknown_sensors[unknowns->UnknownCnt++]); + if(result != HAL_OK) + __NOP(); + } + } + return HAL_OK; +} HAL_StatusTypeDef PCHSens_DefineUnknownSensor(PCHSens_UnknownSensorsTypeDef *unknowns, PCHSens_SensorTypeDef *sensor) { HAL_StatusTypeDef result; -// if(unknowns->UnknownCnt == 0) -// return HAL_OK; + if(sensor == NULL) + return HAL_ERROR; if((unknowns->ROMtoDefine != NULL) && (unknowns->LocationtoDefine.all != NULL) && (unknowns->senstoDefine != NULL)) { - result = PCHSens_InitNewSensor(unknowns->onewire, unknowns->senstoDefine, unknowns->ROMtoDefine, unknowns->LocationtoDefine.all); + result = PCHSens_InitNewSensor(unknowns->onewire, unknowns->senstoDefine, unknowns->ROMtoDefine); unknowns->ROMtoDefine = 0; unknowns->LocationtoDefine.all = 0; unknowns->senstoDefine = 0; @@ -242,13 +209,48 @@ HAL_StatusTypeDef PCHSens_DefineUnknownSensor(PCHSens_UnknownSensorsTypeDef *unk return HAL_OK; } -HAL_StatusTypeDef PCHSens_FullDeInitSensor(PCHSens_SensorTypeDef *sensor) +HAL_StatusTypeDef PCHSens_UndefineSensor(PCHSens_SensorTypeDef *sensor) { HAL_StatusTypeDef result; -// if(unknowns->UnknownCnt == 0) -// return HAL_OK; + if(sensor == NULL) + return HAL_ERROR; + + result = Dallas_WriteUserBytes(&sensor->sens, 0, 0, USED_USER_BYTES); + if(result != HAL_OK) + { + return result; + } + + result = Dallas_SensorDeInit(&sensor->sens); + return result; +} + +HAL_StatusTypeDef PCHSens_SensorHandleActions(OneWire_t *onewire, PCHSens_SensorTypeDef *sensor) +{ + HAL_StatusTypeDef result; + if(sensor == NULL) + return HAL_ERROR; + + if(sensor->action.connectROM != NULL) + { + result = PCHSens_InitNewSensor(onewire, sensor, sensor->action.connectROM); + sensor->action.connectROM = 0; + } + + if(sensor->action.read != NULL) + { +// sensor->action.read = 0; + result = Dallas_ReadTemperature(&sensor->sens); + if(result != HAL_OK) + PCHSens_CheckSensor(onewire, sensor); + } + + if(sensor->action.deinit != NULL) + { + sensor->action.deinit = 0; + result = PCHSens_UndefineSensor(sensor); + } - result = PCHSens_InitNewSensor(sensor->onewire, sensor, unknowns->ROMtoDefine, unknowns->LocationtoDefine.all); return result; } @@ -262,7 +264,7 @@ void PCHSens_FirstInit(void) OneWire_Init(&OW); DS18B20_Search(&DS, &OW); - PCHSens_InitModule(&OW, &module1, REG_PCH_NUMB_11|REG_PCH_DIODE_NUMB_1, init_find); + PCHSens_InitModule(&OW, &module1, REG_PCH_NUMB_11|REG_PCH_DIODE_NUMB_1); PCHSens_FindUnknownSensors(&OW, &UnknownSensors); PCHSens_DefineUnknownSensor(&UnknownSensors, NULL); diff --git a/DS18B20/pch_sensors.h b/DS18B20/pch_sensors.h index b413d46..f7ed078 100644 --- a/DS18B20/pch_sensors.h +++ b/DS18B20/pch_sensors.h @@ -15,6 +15,7 @@ #include "dallas_tools.h" /* Declarations and definitions ---------------------------------------------*/ +#define USED_USER_BYTES DALLAS_USER_BYTE_12 /* Позиции параметров в UserBytes */ #define REG_SENS_LOCATION_Pos (0) /*!< @brief Позиция параметра "Локация внутри модуля" */ @@ -71,8 +72,8 @@ #define GET_REG_ZIP(_REG_) ((_REG_) & REG_ZIP_Mask) /*!< @brief Получить параметр "ЗИП/не ЗИП" */ /* Диапазоны параметров из UserBytes */ -#define REG_SENS_LOCATION_MAX 4 -#define REG_SENS_LOCATION_MIN 1 +#define REG_SENS_LOCATION_MAX 3 +#define REG_SENS_LOCATION_MIN 0 #define REG_PCH_DIOD_PHASE_MAX 1 #define REG_PCH_DIOD_PHASE_MIN 0 #define REG_PCH_MODULE_NUMB_MAX 3 @@ -84,21 +85,21 @@ /** @brief Получить параметр "Локация внутри модуля" */ -#define IS_REG_SENS_LOCATION(_REG_) (((_REG_)->location.Location <= REG_SENS_LOCATION_MAX) && ((_REG_)->location.Location >= REG_SENS_LOCATION_MIN)) +#define IS_REG_SENS_LOCATION(_REG_) (((_REG_)->param.Location <= REG_SENS_LOCATION_MAX) && ((_REG_)->param.Location >= REG_SENS_LOCATION_MIN)) /*!< @brief Получить параметр "Расположение в ПЧ" */ #define IS_REG_PCH_LOCATION(_REG_) (IS_REG_PCH_DIOD_PHASE(_REG_) && IS_REG_PCH_MODULE_NUMB(_REG_)) /*!< @brief Получить параметр "Диодный или фазный модуль" */ -#define IS_REG_PCH_DIOD_PHASE(_REG_) (((_REG_)->location.DiodeOrPhase <= REG_PCH_DIOD_PHASE_MAX) && ((_REG_)->location.DiodeOrPhase >= REG_PCH_DIOD_PHASE_MIN)) +#define IS_REG_PCH_DIOD_PHASE(_REG_) (((_REG_)->param.DiodeOrPhase <= REG_PCH_DIOD_PHASE_MAX) && ((_REG_)->param.DiodeOrPhase >= REG_PCH_DIOD_PHASE_MIN)) /*!< @brief Получить параметр "Порядковый номер диодного/фазного модуля" */ -#define IS_REG_PCH_MODULE_NUMB(_REG_) (((_REG_)->location.ModuleNumb <= REG_PCH_MODULE_NUMB_MAX) && ((_REG_)->location.ModuleNumb >= REG_PCH_MODULE_NUMB_MIN)) +#define IS_REG_PCH_MODULE_NUMB(_REG_) (((_REG_)->param.ModuleNumb <= REG_PCH_MODULE_NUMB_MAX) && ((_REG_)->param.ModuleNumb >= REG_PCH_MODULE_NUMB_MIN)) /*!< @brief Получить параметр "Преобразователь частоты" */ #define IS_REG_PCH_NUMB(_REG_) (IS_REG_PCH_NUMB_DIGIT_1(_REG_) && IS_REG_PCH_NUMB_DIGIT_2(_REG_)) /*!< @brief Получить параметр "Первая цифра номера преобразователя частоты" */ -#define IS_REG_PCH_NUMB_DIGIT_1(_REG_) (((_REG_)->location.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->location.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN)) +#define IS_REG_PCH_NUMB_DIGIT_1(_REG_) (((_REG_)->param.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->param.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN)) /*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" s*/ -#define IS_REG_PCH_NUMB_DIGIT_2(_REG_) (((_REG_)->location.PCHdig2 <= REG_PCH_NUMB_DIGIT_2_MAX) && ((_REG_)->location.PCHdig2 >= REG_PCH_NUMB_DIGIT_2_MIN)) +#define IS_REG_PCH_NUMB_DIGIT_2(_REG_) (((_REG_)->param.PCHdig2 <= REG_PCH_NUMB_DIGIT_2_MAX) && ((_REG_)->param.PCHdig2 >= REG_PCH_NUMB_DIGIT_2_MIN)) /*!< @brief Получить параметр "ЗИП/не ЗИП" */ #define IS_REG_ZIP(_REG_) (GET_REG_ZIP(_REG_)) @@ -114,15 +115,24 @@ typedef union unsigned PCHdig2:2; unsigned PCHdig1:2; unsigned ZIP:1; - }location; + }param; }PCHSens_LocationTypeDef; typedef struct { - DALLAS_HandleTypeDef sens; - PCHSens_LocationTypeDef *Location; - unsigned not_found:1; + unsigned connectROM; + unsigned read; + unsigned deinit; +}PCHSens_SensorActionsTypeDef; + +typedef struct +{ + DALLAS_HandleTypeDef sens; +// PCHSens_LocationTypeDef *UserBytes; + PCHSens_LocationTypeDef Location; + PCHSens_SensorActionsTypeDef action; + unsigned not_found:1; }PCHSens_SensorTypeDef; typedef struct @@ -153,12 +163,12 @@ typedef struct /* Functions ---------------------------------------------------------------*/ HAL_StatusTypeDef PCHSens_FindUnknownSensors(OneWire_t *onewire, PCHSens_UnknownSensorsTypeDef *unknowns); -HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint64_t ROM, uint16_t location); -HAL_StatusTypeDef PCHSens_AddSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint16_t location); -HAL_StatusTypeDef PCHSens_InitModule(OneWire_t *onewire, PCHSens_ModuleTypeDef* module, uint16_t location, uint8_t init); +HAL_StatusTypeDef PCHSens_InitNewSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor, uint64_t ROM); +HAL_StatusTypeDef PCHSens_AddSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor); +HAL_StatusTypeDef PCHSens_InitModule(OneWire_t *onewire, PCHSens_ModuleTypeDef* module, uint16_t param); HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_ModuleTypeDef *module); HAL_StatusTypeDef PCHSens_CheckSensor(OneWire_t *onewire, PCHSens_SensorTypeDef* sensor); HAL_StatusTypeDef PCHSens_DefineUnknownSensor(PCHSens_UnknownSensorsTypeDef *unknowns, PCHSens_SensorTypeDef *sensor); - +HAL_StatusTypeDef PCHSens_SensorHandleActions(OneWire_t *onewire, PCHSens_SensorTypeDef *sensor); void PCHSens_FirstInit(void); #endif // #ifndef PCH_SENSORS_H \ No newline at end of file diff --git a/ds18b20_locations.xlsx b/ds18b20_locations.xlsx index 293a8f8ca46d90255b1e8b015f9a223ff089067a..6b591facf7656ad5269f5a47c16e1371a3a9023c 100644 GIT binary patch delta 2762 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 Q0i%<8CL;!IBLDyZ0QAj3-~a#s delta 2788 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 diff --git a/test_project/MDK-ARM/ds18b20.uvoptx b/test_project/MDK-ARM/ds18b20.uvoptx index 6908c8d..abacbc7 100644 --- a/test_project/MDK-ARM/ds18b20.uvoptx +++ b/test_project/MDK-ARM/ds18b20.uvoptx @@ -152,9 +152,9 @@ 0 0 - 236 + 264 1 -
134229812
+
134230484
0 0 0 @@ -163,23 +163,7 @@ 1 ..\..\DS18B20\pch_sensors.c - \\ds18b20\../../DS18B20/pch_sensors.c\236 -
- - 1 - 0 - 70 - 1 -
134231004
- 0 - 0 - 0 - 0 - 0 - 1 - ..\..\DS18B20\pch_sensors.c - - \\ds18b20\../../DS18B20/pch_sensors.c\70 + \\ds18b20\../../DS18B20/pch_sensors.c\264
@@ -375,7 +359,7 @@ Drivers/STM32F1xx_HAL_Driver - 0 + 1 0 0 0