ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
915509 Топик полностью
VLLV (12.04.2019 15:44, просмотров: 228) ответил NAUT на это в смысле так как-то?
У меня полно разных вариантов, даже не знаю, что предлагать :) Вот например макросы, размещающие результат проверки условий в биты слова.   // number name name2 condition SENSOR( CanAEmpty , "Can empty" , "AC,A2" , GetAdc(CanAdc) > se.CanEmptyLevel ) SENSOR( CanAShorted , "Can error" , "AC,A2" , GetAdc(CanAdc) < se.CanShortLevel ) SENSOR( NivBelowEmpty , "Niv below empt", "AC,A3" , GetAdc(NivEmptyAdc)>se.NiveauLevel ) SENSOR( NivBelowLow , "Niv below low" , "AC,A0" , GetAdc(NivLowAdc)>se.NiveauLevel ) SENSOR( NivBelowHigh , "Niv below high", "AC,A1" , GetAdc(NivHighAdc)>se.NiveauLevel ) SENSOR( NivInvalid , "Niv invalid" , " " , 0>1 ) //SENSOR( InputPressureHigh , "High in press" , "DC,A5" , GetAdc(InputAdc)<se.InSensorLevel ) SENSOR( LeakageOn , "Leakage" , "DC,A5" , GetAdc(LeakageAdc)<se.LeakageSensorLevel ) SENSOR( LowwOutputPressure , "Low out press" , "DC,A4" , GetAdc(OutputAdc) < loww_output_pressure ) SENSOR( OffOutputPressure , "Off pressure" , "DC,A4" , GetAdc(OutputAdc) > off_output_pressure ) SENSOR( OnOutputPressure , "On pressure" , "DC,A4" , GetAdc(OutputAdc) < on_output_pressure ) //SENSOR( MaxOutputPressure , "Max Sys press" , "DC,A5" , GetAdc(OutputAdc) > max_output_pressure ) //SENSOR( ExtraOutputPressure , "Extra press " , "DC,A5" , GetAdc(OutputAdc) > extra_output_pressure ) SENSOR( LowPower , "Low power " , "DC,A6" , GetAdc(PowerAdc) < se.LowPowerLevel ) SENSOR( ConcCounterInput , "Conc counter " , "DC,P4.0", GetPin(ConcCounterIn) ) SENSOR( WaterCounterInput , "Water counter" , "DC,P4.1", GetPin(WaterCounterIn) ) void SensorService(void) { unsigned int s=0; unsigned int niv_sensors; #pragma diag_suppress=Pa082 #define SENSOR(nam,mesa,mesb,condition) if (condition) s|=b##nam; #include SENSORS_HEADER #undef SENSOR #pragma diag_warning=Pa082 sensors=s; old_sensors=sensors; }