static void timedout_onward(TimeoutEvent *toev) {
assert(sta_state != Sta_Run);
+ if (sta_state == Sta_Settling) {
+ enco_pic_off(&piob);
+ serial_transmit(&piob);
+ }
sta_goto(sta_state == Sta_Flush ? Sta_Ping : sta_state + 1);
}
case Sta_Off: break;
case Sta_Ping: break;
case Sta_Fault: break;
- case Sta_Settling: sta_toev.duration= 2000; break;
+ case Sta_Settling: sta_toev.duration= 750; break;
case Sta_Resolving: sta_toev.duration= 500; break;
case Sta_Run: break;
}
void on_pic_fixed(const PicInsnInfo *pii, const PicInsn *pi, int objnum) {
if (sta_state >= Sta_Resolving) die("PIC sent unexpected FIXED");
- if (sta_state == Sta_Fault) sta_goto(Sta_Settling);
+ if (sta_state == Sta_Fault) sta_goto(Sta_Resolving);
}
void on_pic_fault(const PicInsnInfo *pii, const PicInsn *pi, int objnum) {