Цитата:
Сообщение от xu56857
А почему ?
|
Цикл loop слишком длинный получается со всем фаршем стрелочного декодера и обратной связи. Когда контроль КЗ вовремя попадает, то все отлично - лок без запинок проходит границу разных полярностей. А вот когда не вовремя, то быстрее отрубается КС и БП.
---------- Сообщение добавлено в 19:20 ---------- Предыдущие сообщение было в 19:14 ----------
Хотя подумал, что можно подойти и с другой стороны - в цикле loop добавить обработку КЗ( ShortCtrl.Run() ) после каждого вызова других обработчиков. Т.с. повысить приоритет в в цикле loop.
Код:
void loop() {
m = millis();
// put your main code here, to run repeatedly:
static int addr = 0;
delay(1);
DccCtrl.Run();
ShortCtrl.Run();
LNRun();
CmdQueue.Run();
SensorsCtrl.Run();
PrgCtrl.Run();
I2CmdQueue.Run();
I2CPwrCtrl.Run();
SerialIdle();
m = millis()-m;
// Serial.print("c:"); Serial.println(m);
}