The stock vkKraQu setting proc is enabled only when the eeprom is getting initialized.
It happens only once the ECU is being reset or you save some data into eeprom.
My code is running every 20ms - even if someone changes it somehow, the vkKraQu will be swapped
immidiately.
Okay, its just my habits, costs 2 NOPs but eliminate some potential issues. The chances are low but not zeroes
Can you please elaborate how it should work in your opinion? Like the user workflow, not the
implementation. Implementation is something which i can handle.
Well i make this many years ago with me7 so i can miss some details and those for 4 map sets, its better to flashing with CEL i believe if you just want to enable/disable something
counter = 0; ticks, new var, should be 0 when initialised
b_flag = false; new var
b_brake
b_fgrSet ;set button
call instead of vkKraQu stock setting:
if (b_brake && b_fgrSet && !b_flag)
{
vkKraQu.0 = !vkKraQu.0; flip-flop bit 0 so the value is 0 or 1
b_flag = true;
counter = (vkKraQu + 1) * 100; so the counter were 100 or 200
}
else
{
b_flag = false;
}
next, if you using CEL blinks there is some variable to blink CEL in stock, i didnt remeber how it names (stock CEL blinks when misfiring), lets say it b_MILblink
call where b_MILblink assigned
if (counter > 0)
{
b_MILblink = true;
counter -= 1;
{
else
{
<stock assignation>
}
In this case counter is an overall time to b_MILblink is active and youve got to set counter multiplier in main routine to get 1 and 2 blinks
************
Tacho: (in case you have more than 1 set)
counter = 0; delay, new var, should be 0 when initialised
maxMaps = 3; maximum set which user can choose, new param
b_flag = false; new var
b_brake
b_fgrSet ;set button
if (b_brake && b_fgrSet && !b_flag)
{
vkKraQu += 1;
if (vkKraQu > maxMaps) { vkKraQu = 0 } ; cycle to first set
b_flag = true;
counter = 500; delay of tacho needle to stay at the selected position
}
else
{
b_flag = false;
}
nmot_can assignation call:
if(counter >0)
{
if (vkKraQu == 0) { nmot_can = 1000 ; =1000 rpm }
if (vkKraQu == 1) { nmot_can = 2000 ; =2000 rpm }
if (vkKraQu == 2) { nmot_can = 3000 ; =3000 rpm }
counter -= 1;
}
else
{
<stock routine: nmot_can = nmot_w>
}
Yes, thats the idea behind it. you activate the second set of maps with turning on cruise...
IIRC b_fgr is true when cruise is active, literally cruise with the ecu holding target speed not you
But in general i agree with prj, just use your foot. Properly tuned IRL/IOP etc gives you all abilities for that, im using multimap few times in a years just when leave the car in service or giving it to gf
*ps
As in idea based on DSG mode -> if (gwhpos == 12) || (gwhpos == 9) { vkKraQu = 1; } else { vkKraQu = 0;} // if sport or tt mode
Or something similar with the ESP