2026-03-20 21:16:58 +08:00
|
|
|
|
#include "../main/SystemInclude.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if(DP2201_M0CONTROL)
|
|
|
|
|
|
|
|
|
|
|
|
__SAMPLE_STATUS_BIT_TypeDef sampleState;
|
|
|
|
|
|
u16 offsetRType, offsetGCFX;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//u16 processNextTime, processIndex;
|
|
|
|
|
|
|
|
|
|
|
|
u16 voltageDetected[ANX], adcGain;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*==========================================================================================
|
|
|
|
|
|
//<2F>ⲿ<EFBFBD><E2B2BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸
|
|
|
|
|
|
==========================================================================================*/
|
|
|
|
|
|
void TestTemperatureInit(void)//<2F>¶Ȳ<C2B6><C8B2>Գ<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
{
|
|
|
|
|
|
WriteWordRegister(CONFIG, CONVERSION);
|
|
|
|
|
|
WriteByteRegister(RREG, RESULT_0_25_BIT);
|
|
|
|
|
|
|
|
|
|
|
|
HWState.EnableTempInit = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
u32 tempLongInt;
|
|
|
|
|
|
void TestTemperature(void)//<2F>¶Ȳ<C2B6><C8B2><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡTPCB
|
|
|
|
|
|
{
|
|
|
|
|
|
if(!HWState.EnableTempTest) return;
|
|
|
|
|
|
if(HWState.EnableTempInit) return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
voltageDetected[TPCB] = ReadWordRegister(TA);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭʼֵ
|
|
|
|
|
|
WriteWordRegister(CONFIG, SHUT_DOWN);//<2F>¶ȴ<C2B6><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
voltageDetected[TPCB] &= 0x1fff;
|
|
|
|
|
|
tempLongInt = (u32)(voltageDetected[TPCB] & 0xFFF);
|
|
|
|
|
|
if(voltageDetected[TPCB] >= 0x1000) tempLongInt = 0xFFF - tempLongInt;
|
|
|
|
|
|
tempLongInt *= 6400; // 0.0625*1024*100
|
|
|
|
|
|
tempLongInt >>= 10; // /1024
|
|
|
|
|
|
PCBTemperature = (u16)tempLongInt; // Temperature*100
|
|
|
|
|
|
voltageDetected[TPCB] =PCBTemperature;
|
|
|
|
|
|
|
|
|
|
|
|
__NOP();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*==========================================================================================
|
|
|
|
|
|
//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>
|
|
|
|
|
|
==========================================================================================*/
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/*********************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
void FlowRateDealAndOuputSub(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
ComputeFlowRateIndexAndFlowRate();//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ת<><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
TestTemperature();//<2F><><EFBFBD><EFBFBD>PCB<43>¶<EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
/*sampleData.TCode[CTCode]//VDU
|
|
|
|
|
|
sampleData.TCode[RTCode]//VRR
|
|
|
|
|
|
sampleData.TCode[HTCode]//VRH
|
|
|
|
|
|
sampleData.TCode[ATCode]//IRH*/
|
|
|
|
|
|
void ComputeFlowRateIndexAndFlowRate(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
voltageDetected[NIDX ]= (u16)sampleData.TCode[CTCode]; //8303 VDU1
|
|
|
|
|
|
voltageDetected[VRHX ]= (u16)sampleData.TCode[RTCode]; //8304 VRR
|
|
|
|
|
|
voltageDetected[IVHDX]= (u16)sampleData.TCode[HTCode]; //8305 VRH
|
|
|
|
|
|
voltageDetected[RHVOL]= (u16)sampleData.TCode[ATCode]; //8306 IRH
|
|
|
|
|
|
voltageDetected[VDUGX]= (u16)sampleData.TCode[BTCode]; //8307 VDU2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//voltageDetected[FRIDX]=voltageDetected[NIDX]- offsetGas;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
//1---<2D><><EFBFBD><EFBFBD>VRHԭʼֵ<CABC>ж<EFBFBD>
|
|
|
|
|
|
// if(voltageDetected[IVHDX]<56000) voltageDetected[FRIDX]=voltageDetected[NIDX ]- offsetAir; //Air
|
|
|
|
|
|
// else voltageDetected[FRIDX]=voltageDetected[VRHX ]- offsetAir; //H2
|
|
|
|
|
|
|
|
|
|
|
|
if(offsetAir)voltageDetected[FRIDX]=voltageDetected[NIDX ]- offsetGas; //Air
|
|
|
|
|
|
else voltageDetected[FRIDX]=voltageDetected[VRHX ]- offsetGas; //H2
|
|
|
|
|
|
|
|
|
|
|
|
currentFlowRate = GetFlowRate(voltageDetected[FRIDX],CURVE_1ST);
|
|
|
|
|
|
// flowRateH
|
|
|
|
|
|
// flowRateL
|
|
|
|
|
|
voltageDetected[FR_H] = currentFlowRate >> 16;
|
|
|
|
|
|
voltageDetected[FR_L] = currentFlowRate&0xFFFF;
|
|
|
|
|
|
// voltageDetected[VDUGX]= AirflowSensor_Read();
|
|
|
|
|
|
// voltageDetected[TPCB]= (u16)(Get_AirflowSensor_SCCM());
|
2026-03-20 21:19:04 +08:00
|
|
|
|
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
u16 WordSubFunction(u16 minuend, u16 subtractor)
|
|
|
|
|
|
{
|
|
|
|
|
|
u16 subResult;
|
|
|
|
|
|
|
|
|
|
|
|
subResult = minuend - subtractor;
|
|
|
|
|
|
if(minuend >= subtractor)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(subResult < 32768) subResult += 32768;
|
|
|
|
|
|
else subResult = 65535;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
if(subResult < 32768) subResult = 0;
|
|
|
|
|
|
else subResult -= 32768;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return subResult;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/********************************************************************/
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
/********************************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
__Process_TypeDef flowProcess;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
|
void SamplingTimer_IRQ_Callback(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
FlowProcessManagement();
|
|
|
|
|
|
// LHL_GPIO_TogglePin(pGPIO1, GPIO_PIN_7);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void StartNormolFlowMeasurement(void)//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
HWState.SampledOver = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><D6BE><EFBFBD><EFBFBD>
|
|
|
|
|
|
StartSamplingTimerInterval(32768); //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƚ϶<C8BD>ʱ<EFBFBD><CAB1>,<2C><>ʼ<EFBFBD><CABC>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Timer_register_irq_callback(SamplingTimer,SamplingTimer_IRQ_Callback );//ע<><D7A2><EFBFBD>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
flowProcess.Index = 0;
|
|
|
|
|
|
flowProcess.NextTime = 0;
|
|
|
|
|
|
FlowProcessManagement();//ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void SetNextProcess(void)//<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
if(flowProcess.Index == 0){
|
|
|
|
|
|
StopSamplingTimerInterval();//<2F>رղɼ<D5B2>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
u32 currentTAR = SamplingTimer->CNT;//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
|
if(currentTAR > flowProcess.NextTime) flowProcess.NextTime = currentTAR + 5;
|
|
|
|
|
|
ResetSamplingTimerInterval(flowProcess.NextTime);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
/*<2A>û<EFBFBD><C3BB>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
2026-03-20 21:16:58 +08:00
|
|
|
|
typedef enum {
|
|
|
|
|
|
Signal_VDU_VRR,
|
|
|
|
|
|
Signal_VDU1_VRH,
|
|
|
|
|
|
Signal_VDU2_VRH,
|
|
|
|
|
|
Signal_VDU1_IRH,
|
|
|
|
|
|
Signal_VDU2_IRH,
|
|
|
|
|
|
//......
|
|
|
|
|
|
Signals_Count,
|
|
|
|
|
|
}ADC_CFG_Index_TypeDef;
|
2026-03-20 21:19:04 +08:00
|
|
|
|
static const ADC_Config_TypeDef signal_cfgs[Signals_Count] = {
|
2026-03-20 21:16:58 +08:00
|
|
|
|
[Signal_VDU_VRR] = { GAIN64, ADC0_AIN0, ADC0_AIN1, GAIN1, ADC1_AIN3, ADC1_AIN4 ,SPS_977 },
|
|
|
|
|
|
[Signal_VDU1_VRH] = { GAIN64, ADC0_AIN0, ADC0_AIN1, GAIN1, ADC1_AIN2, ADC1_AVSS ,SPS_977 },
|
|
|
|
|
|
[Signal_VDU2_VRH] = { GAIN128, ADC0_AIN0, ADC0_AIN1, GAIN1, ADC1_AIN2, ADC1_AVSS ,SPS_977 },
|
2026-03-20 21:19:04 +08:00
|
|
|
|
[Signal_VDU1_IRH] = { GAIN64, ADC0_AIN0, ADC0_AIN1, GAIN1, ADC1_AIN5, ADC1_AIN4 ,SPS_977 },
|
|
|
|
|
|
[Signal_VDU2_IRH] = { GAIN128, ADC0_AIN0, ADC0_AIN1, GAIN1, ADC1_AIN5, ADC1_AIN4 ,SPS_977 },
|
2026-03-20 21:16:58 +08:00
|
|
|
|
//......
|
|
|
|
|
|
};
|
|
|
|
|
|
/*sampleData.TCode[CTCode]//VDU
|
|
|
|
|
|
sampleData.TCode[RTCode]//VRR
|
|
|
|
|
|
sampleData.TCode[HTCode]//VRH
|
|
|
|
|
|
sampleData.TCode[ATCode]//IRH*/
|
|
|
|
|
|
void FlowProcessManagement(void)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>״̬<D7B4><CCAC>
|
|
|
|
|
|
{
|
|
|
|
|
|
switch(flowProcess.Index)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0: //Part1<74><31><EFBFBD><EFBFBD> VDUԤ<55><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>VRR<52><52><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
HWState.SampledOver = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
SetSampleSiagnlForADC(signal_cfgs[Signal_VDU_VRR]);
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
|
|
|
|
|
StartADCSyncSampingData();//<2F><>ʼ<EFBFBD>ɼ<EFBFBD>
|
|
|
|
|
|
flowProcess.NextTime += 653; //40ms <20><><EFBFBD><EFBFBD>ֵ= 65535/4000*t<><74>t=40<34><30> = 653
|
|
|
|
|
|
flowProcess.Index = 1;
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
|
|
|
|
case 1: //Part2 Part4<74><34>֧ VRR <20><>Ԥ<EFBFBD><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
ComputeSampleData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
sampleData.TCode[RTCode] = sampleData.ADCBuffer[1];//VRR <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
u16 currt_vdu = sampleData.ADCBuffer[0];//Ԥ<><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
if(flowProcess.State == 0) //<2F><>һ<EFBFBD><D2BB>ȥPart2 VDU_VRH
|
|
|
|
|
|
{
|
|
|
|
|
|
if(currt_vdu)SetSampleSiagnlForADC(signal_cfgs[Signal_VDU1_VRH]);//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
else SetSampleSiagnlForADC(signal_cfgs[Signal_VDU2_VRH]);
|
|
|
|
|
|
}
|
|
|
|
|
|
else //<2F><>һ<EFBFBD><D2BB>ȥPart4 VDU_IRH
|
|
|
|
|
|
{
|
|
|
|
|
|
if(currt_vdu)SetSampleSiagnlForADC(signal_cfgs[Signal_VDU1_IRH]);//<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
else SetSampleSiagnlForADC(signal_cfgs[Signal_VDU2_IRH]);
|
|
|
|
|
|
}
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
|
|
|
|
|
StartADCSyncSampingData();//<2F><>ʼ<EFBFBD>ɼ<EFBFBD>
|
|
|
|
|
|
flowProcess.NextTime += 1048;//64ms
|
|
|
|
|
|
flowProcess.Index = 2;
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
|
|
|
|
case 2: //Part3
|
|
|
|
|
|
{
|
|
|
|
|
|
ComputeSampleData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
sampleData.TCode[CTCode] = sampleData.ADCBuffer[0];//VDU <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
2026-03-20 21:19:04 +08:00
|
|
|
|
//Part2 Part4<74><34>֧
|
2026-03-20 21:16:58 +08:00
|
|
|
|
if(flowProcess.State == 0)sampleData.TCode[HTCode] = sampleData.ADCBuffer[1];//VRH <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
else sampleData.TCode[ATCode] = sampleData.ADCBuffer[1];//IRH <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
|
|
|
|
|
|
HWState.SampledOver = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
StopSamplingTimerInterval();//<2F>رղɼ<D5B2>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>Part3
|
|
|
|
|
|
if(flowProcess.State) flowProcess.State = 0 ;//<2F>л<EFBFBD>Part2 Part4
|
|
|
|
|
|
else flowProcess.State = 1 ;
|
|
|
|
|
|
|
|
|
|
|
|
flowProcess.Index = 0;
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
|
|
|
|
default : flowProcess.Index = 0; break;
|
|
|
|
|
|
}
|
|
|
|
|
|
SetNextProcess();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Уģʽ<C4A3><CABD>״̬<D7B4><CCAC>
|
|
|
|
|
|
void FlowProcessManagement_Calib(void)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹<EFBFBD><CCB9><EFBFBD>״̬<D7B4><CCAC>
|
2026-03-20 21:16:58 +08:00
|
|
|
|
{
|
2026-03-20 21:19:04 +08:00
|
|
|
|
switch(flowProcess.Index)
|
|
|
|
|
|
{
|
|
|
|
|
|
case 0: //Part1<74><31><EFBFBD><EFBFBD> VDU<44><55>VRR<52><52><EFBFBD><EFBFBD>
|
|
|
|
|
|
{
|
|
|
|
|
|
HWState.SampledOver = 0;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ
|
|
|
|
|
|
|
|
|
|
|
|
SetSampleSiagnlForADC(signal_cfgs[Signal_VDU_VRR]);
|
|
|
|
|
|
StartADCSyncSampingData();//<2F><>ʼ<EFBFBD>ɼ<EFBFBD>
|
|
|
|
|
|
flowProcess.NextTime += 653; //40ms <20><><EFBFBD><EFBFBD>ֵ= 65535/4000*t<><74>t=40<34><30> = 653
|
|
|
|
|
|
flowProcess.Index = 1;
|
|
|
|
|
|
}break;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
case 1: //Part2 Part4<74><34>֧
|
|
|
|
|
|
{
|
|
|
|
|
|
ComputeSampleData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
sampleData.TCode[RTCode] = sampleData.ADCBuffer[1];//VRR <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
|
|
|
|
|
|
if(flowProcess.State == 0) //<2F><>һ<EFBFBD><D2BB>ȥPart2 VDU_VRH
|
|
|
|
|
|
{
|
|
|
|
|
|
SetSampleSiagnlForADC(signal_cfgs[Signal_VDU1_VRH]);//ʹ<><CAB9>VDU1<55><31><EFBFBD>вɼ<D0B2>
|
|
|
|
|
|
}
|
|
|
|
|
|
else //<2F><>һ<EFBFBD><D2BB>ȥPart4 VDU_IRH
|
|
|
|
|
|
{
|
|
|
|
|
|
SetSampleSiagnlForADC(signal_cfgs[Signal_VDU2_IRH]);//ʹ<><CAB9>VDU2<55><32><EFBFBD>вɼ<D0B2>
|
|
|
|
|
|
}
|
|
|
|
|
|
StartADCSyncSampingData();//<2F><>ʼ<EFBFBD>ɼ<EFBFBD>
|
|
|
|
|
|
flowProcess.NextTime += 1048;//64ms
|
|
|
|
|
|
flowProcess.Index = 2;
|
|
|
|
|
|
}break;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
case 2: //Part3
|
|
|
|
|
|
{
|
|
|
|
|
|
ComputeSampleData(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
//Part2 Part4<74><34>֧
|
|
|
|
|
|
if(flowProcess.State == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
sampleData.TCode[CTCode] = sampleData.ADCBuffer[0];//VDU1 <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
sampleData.TCode[HTCode] = sampleData.ADCBuffer[1];//VRH <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
sampleData.TCode[BTCode] = sampleData.ADCBuffer[0];//VDU2 <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
sampleData.TCode[ATCode] = sampleData.ADCBuffer[1];//IRH <20><><EFBFBD>뻺<EFBFBD><EBBBBA>
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
HWState.SampledOver = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
StopSamplingTimerInterval();//<2F>رղɼ<D5B2>ʱ<EFBFBD><CAB1> <20><><EFBFBD><EFBFBD>Part3
|
|
|
|
|
|
if(flowProcess.State) flowProcess.State = 0 ;//<2F>л<EFBFBD>Part2 Part4
|
|
|
|
|
|
else flowProcess.State = 1 ;
|
|
|
|
|
|
|
|
|
|
|
|
flowProcess.Index = 0;
|
|
|
|
|
|
}break;
|
|
|
|
|
|
|
|
|
|
|
|
default : flowProcess.Index = 0; break;
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
2026-03-20 21:19:04 +08:00
|
|
|
|
SetNextProcess();
|
2026-03-20 21:16:58 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-20 21:19:04 +08:00
|
|
|
|
//mcuModeSleeping = 1 ; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB9><EFBFBD>ģʽ
|
|
|
|
|
|
//
|
2026-03-20 21:16:58 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|