Anyone using Limp Modes?
Reason I ask is that when my MS3 goes into Limp Mode, the boost limit (boost cut) is not operating.
FW is 1.4.1 on MS3-Basic. Rev Limit Works. "No EBC" Works. Boost Limit does not work. No responses on MSEXTRA forum. @Reverant can you help me with this? |
From ms3.misc.c, It seems to me that there should be something in the overboost section similar as to what is in the revlimit section that refers to Status7-LIMP. I have highlighted those areas in the copied info below:
if (outpc.status7 & STATUS7_LIMP) { if (limit > ram5.cel_revlim) { /* Use lowest of the two */ limit = ram5.cel_revlim; } } RevLimRpm2 = limit; RevLimRpm1 = limit - ram4.RevLimNormal2_hyst; /* random number based spark cut */ if (ram4.RevLimOption & 0x4) { if (outpc.rpm > ram4.RevLimNormal2) { spkcut_thresh_tmp = 254; flagbyte10 |= FLAGBYTE10_SPKCUTTMP; } else if (outpc.rpm > RevLimRpm1) { unsigned char sc_tmp; if (outpc.rpm >= RevLimRpm2) { sc_tmp = 254; } else { sc_tmp = (255L * (outpc.rpm - RevLimRpm1)) / (RevLimRpm2 - RevLimRpm1); if (sc_tmp > 254) { sc_tmp = 254; } } if (sc_tmp > spkcut_thresh_tmp) { spkcut_thresh_tmp = sc_tmp; } flagbyte10 |= FLAGBYTE10_SPKCUTTMP; } // no else, initialised to zero on each mainloop pass } if (ram4.OverBoostOption & 0x03) { int maxboost; unsigned char ob1 = 0; if ( (ram5.dualfuel_sw2 & 0x10) && (ram5.dualfuel_sw & 0x1) && ((ram5.dualfuel_opt & DUALFUEL_OPT_MODE_MASK) == DUALFUEL_OPT_MODE_FLEXBLEND) ) { maxboost = (int)((((long)ram4.OverBoostKpa * (100 - flexblend)) + ((long)ram4.OverBoostKpa2 * flexblend)) / 100); } else if (pin_tsw_ob && ((*port_tsw_ob & pin_tsw_ob) == pin_match_tsw_ob)) { maxboost = ram4.OverBoostKpa2; } else { maxboost = ram4.OverBoostKpa; } if (outpc.map > maxboost) { ob1 = 1; } else if ((ram4.OverBoostOption & 0x04) && (ram4.boost_ctl_settings & BOOST_CTL_CLOSED_LOOP) && ((outpc.map - outpc.boost_targ_1) > ram4.boosttol)) { ob1 = 1; } else if (outpc.map < (maxboost - ram4.OverBoostHyst)) { if ((ram4.OverBoostOption & 0x04) && (ram4.boost_ctl_settings & BOOST_CTL_CLOSED_LOOP)) { if (outpc.map < (outpc.boost_targ_1 + ram4.boosttol - ram4.OverBoostHyst)) { ob1 = 2; } } else { ob1 = 2; |
I'll have a look when I can.
|
All times are GMT -4. The time now is 05:40 PM. |
© 2024 MH Sub I, LLC dba Internet Brands