Цитата(maloii @ Sep 30 2009, 15:39)

Значит все таки есть шаблоны

.
Да уж не знаю.
Вот только что "из-под пера" простейший автомат управления насосом повышения давления.
Будет вставлен в обработку события 100 мс.
Код
enum { BOOSTER_PASSIVE=0, BOOSTER_WAIT_HIGH_PRESSURE, BOOSTER_WAIT_LOW_PRESSURE};
uchar booster_state;
void BoosterPumpService100ms(void)
{ switch (booster_state)
{ case BOOSTER_PASSIVE:
break;
case BOOSTER_WAIT_HIGH_PRESSURE:
if (Sensor(HighOutputPressure)) booster_state=BOOSTER_WAIT_LOW_PRESSURE;
break;
case BOOSTER_WAIT_LOW_PRESSURE:
if (Sensor(LowOutputPressure)) booster_state=BOOSTER_WAIT_HIGH_PRESSURE;
break;
}
if (GetFlag(booster_filled) && Sensor(NivBelowLow)) return;
if (Sensor(NivBelowEmpty)) return;
if (booster_state==BOOSTER_WAIT_HIGH_PRESSURE) OnPin(BoosterPump);
else OffPin(BoosterPump);
}
void StartBooster(void) { booster_state=BOOSTER_WAIT_HIGH_PRESSURE; }
void StopBooster(void) { booster_state=BOOSTER_PASSIVE; }
Уходя, оставьте свет...