Обновление

This commit is contained in:
cfif 2026-02-04 14:26:56 +03:00
parent b2d6e53024
commit 495c536874
2 changed files with 103 additions and 8 deletions

View File

@ -19,15 +19,61 @@ void Adc_0_Init(tAdcTask *env,
static _Noreturn void Adc0_Thread(tAdcTask *env) { static _Noreturn void Adc0_Thread(tAdcTask *env) {
uint32_t ADC_Data; uint32_t ADC_Pointer_Data;
for (;;) { for (;;) {
env->ADC_Count = env->adcIO->get(env->adcIO->env, &ADC_Data, 1000); env->ADC_ChannelCount = env->adcIO->get(env->adcIO->env, &ADC_Pointer_Data, 1000);
if (osMutexAcquire(env->access, 1000) == osOK) { if (osMutexAcquire(env->access, 1000) == osOK) {
memcpy(env->ADC_Data, (uint8_t *)ADC_Data, env->ADC_Count << 2); uint32_t *pData = (uint32_t *)ADC_Pointer_Data;
env->ADC_Data.Sensor_Ambient_Temp = pData[0];
env->ADC_Data.IGN_ANS = pData[1];
env->ADC_Data.Sensor_AC_Pressure = pData[2];
env->ADC_Data.Sensor_Incar_Temp_FL = pData[3];
env->ADC_Data.Sensor_Incar_Temp_RL = pData[4];
env->ADC_Data.Sensor_Rear_Evap_Temp = pData[5];
env->ADC_Data.Sensor_Evap_Temp = pData[6];
env->ADC_Data.Sensor_Rear_Duct1 = pData[7];
env->ADC_Data.Sensor_Rear_Duct2 = pData[8];
env->ADC_Data.Sensor_Front_Duct1 = pData[9];
env->ADC_Data.Sensor_Front_Duct2 = pData[10];
env->ADC_Data.Sensor_Front_Duct3 = pData[11];
env->ADC_Data.Sensor_Front_Duct4 = pData[12];
env->ADC_Data.Sensor_Rear_Duct3 = pData[13];
env->ADC_Data.Sensor_Rear_Duct4 = pData[14];
env->ADC_Data.Sensor_Incar_Temp_FR = pData[15];
env->ADC_Data.Sensor_Incar_Temp_RR = pData[16];
env->ADC_Data.Sensor_Rear_Duct5 = pData[17];
env->ADC_Data.Sensor_Rear_Duct6 = pData[18];
env->ADC_Data.Reserve_Sensor_Duct_Temp_1 = pData[19];
env->ADC_Data.Sensor_Front_Duct5 = pData[20];
env->ADC_Data.Sensor_Front_Duct6 = pData[21];
env->ADC_Data.BTS5120_2EKA_ShutoffValvePowerTXV1 = pData[22]; //
env->ADC_Data.BTS5120_2EKA_ShutoffValvePowerTXV2 = pData[22]; //
env->ADC_Data.Pressure_DIAG = pData[23];
env->ADC_Data.BTS5180_2EKA_ShutOFFValveFront = pData[24]; //
env->ADC_Data.BTS5180_2EKA_ShutOFFValveRear = pData[24]; //
env->ADC_Data.BTS5180_2EKA_TwoWayValve = pData[25]; //
env->ADC_Data.BTS5180_2EKA_ReservePowerSupply = pData[25]; //
env->ADC_Data.BTS5180_2EKA_FrontIncarMotor = pData[26]; //
env->ADC_Data.BTS5180_2EKA_RearIncarMotor = pData[26]; //
env->ADC_Data.BTS5180_2EKA_ChannelPTCPower1 = pData[27]; //
env->ADC_Data.BTS5180_2EKA_ChannelPTCPower2 = pData[27]; //
env->ADC_Data.Reserve_Sensor_Duct_Temp_2 = pData[28];
//memcpy(env->ADC_Data, (uint8_t *)ADC_Pointer_Data, env->ADC_ChannelCount << 2);
osMutexRelease(env->access); osMutexRelease(env->access);
} }
@ -56,15 +102,15 @@ void Adc_1_Init(tAdcTask *env,
static _Noreturn void Adc1_Thread(tAdcTask *env) { static _Noreturn void Adc1_Thread(tAdcTask *env) {
uint32_t ADC_Data; uint32_t ADC_Pointer_Data;
for (;;) { for (;;) {
env->ADC_Count = env->adcIO->get(env->adcIO->env, &ADC_Data, 1000); env->ADC_ChannelCount = env->adcIO->get(env->adcIO->env, &ADC_Pointer_Data, 1000);
if (osMutexAcquire(env->access, 1000) == osOK) { if (osMutexAcquire(env->access, 1000) == osOK) {
memcpy(env->ADC_Data, (uint8_t *)ADC_Data, env->ADC_Count << 2); //memcpy(env->ADC_Data, (uint8_t *)ADC_Pointer_Data, env->ADC_ChannelCount << 2);
osMutexRelease(env->access); osMutexRelease(env->access);
} }

View File

@ -8,13 +8,62 @@
#include "AdcIO.h" #include "AdcIO.h"
#include <cmsis_os.h> #include <cmsis_os.h>
typedef struct {
uint16_t Sensor_Ambient_Temp;
uint16_t IGN_ANS;
uint16_t Sensor_AC_Pressure;
uint16_t Sensor_Incar_Temp_FL;
uint16_t Sensor_Incar_Temp_RL;
uint16_t Sensor_Rear_Evap_Temp;
uint16_t Sensor_Evap_Temp;
uint16_t Sensor_Rear_Duct1;
uint16_t Sensor_Rear_Duct2;
uint16_t Sensor_Front_Duct1;
uint16_t Sensor_Front_Duct2;
uint16_t Sensor_Front_Duct3;
uint16_t Sensor_Front_Duct4;
uint16_t Sensor_Rear_Duct3;
uint16_t Sensor_Rear_Duct4;
uint16_t Sensor_Incar_Temp_FR;
uint16_t Sensor_Incar_Temp_RR;
uint16_t Sensor_Rear_Duct5;
uint16_t Sensor_Rear_Duct6;
uint16_t Reserve_Sensor_Duct_Temp_1;
uint16_t Sensor_Front_Duct5;
uint16_t Sensor_Front_Duct6;
uint16_t BTS5120_2EKA_ShutoffValvePowerTXV1; //
uint16_t BTS5120_2EKA_ShutoffValvePowerTXV2; //
uint16_t Pressure_DIAG;
uint16_t BTS5180_2EKA_ShutOFFValveFront; //
uint16_t BTS5180_2EKA_ShutOFFValveRear; //
uint16_t BTS5180_2EKA_TwoWayValve; //
uint16_t BTS5180_2EKA_ReservePowerSupply; //
uint16_t BTS5180_2EKA_FrontIncarMotor; //
uint16_t BTS5180_2EKA_RearIncarMotor; //
uint16_t BTS5180_2EKA_ChannelPTCPower1; //
uint16_t BTS5180_2EKA_ChannelPTCPower2; //
uint16_t Reserve_Sensor_Duct_Temp_2;
uint16_t VN7008AJ_DIAG_FrontLINActuatorPowerDriverAB;
uint16_t VN7008AJ_DIAG_RearLINActuatorPowerDriverC;
uint16_t PBATT_CHECK;
uint16_t VN7008AJ_FrontLINActuatorPowerDriverAB;
uint16_t VN7008AJ_RearLINActuatorPowerDriverC;
} tADC_data;
typedef struct { typedef struct {
tAdcIO *adcIO; tAdcIO *adcIO;
osMutexId_t access; osMutexId_t access;
uint32_t ADC_Data[32]; tADC_data ADC_Data;
uint8_t ADC_Count; uint8_t ADC_ChannelCount;
struct { struct {
osThreadId_t id; osThreadId_t id;