diff --git a/Core/PY32Module/PY32module_main.c b/Core/PY32Module/PY32module_main.c index 778be9c..8cd6dbd 100644 --- a/Core/PY32Module/PY32module_main.c +++ b/Core/PY32Module/PY32module_main.c @@ -93,10 +93,10 @@ void PYModule_FirstInit(void) 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_13|REG_PCH_DIODE_NUMB_1); - PCHSens_InitModule(&hdallas1, &pchsens.module4, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1); - PCHSens_InitModule(&hdallas1, &pchsens.module5, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1); - PCHSens_InitModule(&hdallas1, &pchsens.module6, REG_PCH_NUMB_23|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &pchsens.module3, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &pchsens.module4, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &pchsens.module5, REG_PCH_NUMB_31|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &pchsens.module6, REG_PCH_NUMB_32|REG_PCH_DIODE_NUMB_1); /* Поиск неизвестных сенсоров */ PCHSens_FindUnknownSensors(&DallasBus); @@ -113,7 +113,7 @@ void PYModule_ScanSensor(PCHSens_DallasBusHandle *hbus) if (scan_cnt >= hbus->hdallas->onewire->RomCnt) { scan_cnt = hbus->hdallas->onewire->RomCnt; - PYModule_FillResponse(&sensor, 0); + PYModule_FillResponse(&sensor, STATUS_SCAN_END); return; } if(Dallas_ReadScratchpad(&sensor.sens) == HAL_OK) @@ -267,6 +267,16 @@ void PYModule_FillResponse(PCHSens_SensorTypeDef* sensor, Sensor_ResponseStatusT MB_DATA.InRegs.Response.Status = status; break; + case STATUS_SCAN_END: + MB_DATA.InRegs.Response.Location = 0; + MB_DATA.InRegs.Response.Config = 0; + MB_DATA.InRegs.Response.ROM[0] = 0; + MB_DATA.InRegs.Response.ROM[1] = 0; + MB_DATA.InRegs.Response.ROM[2] = 0; + MB_DATA.InRegs.Response.ROM[3] = 0; + MB_DATA.InRegs.Response.Status = status; + break; + // error read by location case STATUS_ERR_READ_LOCATION: // fill only location from holdreg diff --git a/Core/PY32Module/PY32module_main.h b/Core/PY32Module/PY32module_main.h index efdd4c3..25bad93 100644 --- a/Core/PY32Module/PY32module_main.h +++ b/Core/PY32Module/PY32module_main.h @@ -17,6 +17,7 @@ typedef enum { STATUS_OK = 0x01, + STATUS_SCAN_END = 0x11, STATUS_ERR_READ_LOCATION = 0xF0, STATUS_ERR_READ_ROM = 0x0F, STATUS_ERR_INIT = 0xAA, diff --git a/Core/PY32Module/pch_sensors.h b/Core/PY32Module/pch_sensors.h index 992be13..72de5bd 100644 --- a/Core/PY32Module/pch_sensors.h +++ b/Core/PY32Module/pch_sensors.h @@ -45,10 +45,10 @@ /* Варианты параметров в UserBytes */ #define REG_PCH_NUMB_11 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos)) #define REG_PCH_NUMB_12 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos)) -#define REG_PCH_NUMB_13 ((1 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos)) #define REG_PCH_NUMB_21 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos)) #define REG_PCH_NUMB_22 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos)) -#define REG_PCH_NUMB_23 ((2 << REG_PCH_NUMB_DIGIT_1_Pos) | (3 << REG_PCH_NUMB_DIGIT_2_Pos)) +#define REG_PCH_NUMB_31 ((3 << REG_PCH_NUMB_DIGIT_1_Pos) | (1 << REG_PCH_NUMB_DIGIT_2_Pos)) +#define REG_PCH_NUMB_32 ((3 << REG_PCH_NUMB_DIGIT_1_Pos) | (2 << REG_PCH_NUMB_DIGIT_2_Pos)) #define REG_PCH_DIODE_NUMB_1 ((0 << REG_PCH_DIOD_PHASE_Pos) | (1 << REG_PCH_MODULE_NUMB_Pos)) #define REG_PCH_DIODE_NUMB_2 ((0 << REG_PCH_DIOD_PHASE_Pos) | (2 << REG_PCH_MODULE_NUMB_Pos)) @@ -97,7 +97,7 @@ #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_)->param.PCHdig1 <= REG_PCH_NUMB_DIGIT_1_MAX) && ((_REG_)->param.PCHdig1 >= REG_PCH_NUMB_DIGIT_1_MIN)) -/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" s*/ +/*!< @brief Получить параметр "Вторая цифра номера преобразователя частоты" */ #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_)) diff --git a/MDK-ARM/PY32Dallas.uvoptx b/MDK-ARM/PY32Dallas.uvoptx index 8d49872..df7ffaf 100644 --- a/MDK-ARM/PY32Dallas.uvoptx +++ b/MDK-ARM/PY32Dallas.uvoptx @@ -153,40 +153,7 @@ (105=-1,-1,-1,-1,0) - - - 0 - 0 - 37 - 1 -
134235612
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Core\PY32Module\PY32module_main.c - - \\Project\../Core/PY32Module/PY32module_main.c\37 -
- - 1 - 0 - 48 - 1 -
134235662
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Core\PY32Module\PY32module_main.c - - \\Project\../Core/PY32Module/PY32module_main.c\48 -
-
+ 0 diff --git a/ds18b20_locations.xlsx b/ds18b20_locations.xlsx index 6b591fa..029cfa8 100644 Binary files a/ds18b20_locations.xlsx and b/ds18b20_locations.xlsx differ