6 wire stepper IAC

I am going to use a 6 wire stepper for IAC purpose. The two middle wires are on 12V, the rest 4 are controlled with FET-s (INJE,INJF,INJG,INJH). My h table is: h[0]=inj inj inj inj A0 60 50 90. So the lower 4 for bins are used for injector output masks, the upper 4 are for the stepper. I've made two mods in iac.c:

iac.c, move_iac() function:

-    S259(DHIGH, next_step(next_phase & 0x03));  // activate next wire in sequence
+    digitalout((((next_phase << 4) & 0x30) ^ 0x40), DHIGH); // ie. next_phase==3, equivalent mdh70/f0 
-    S259(DLOW, next_step(phase & 0x03));  // deactivate previous wire in sequence
+    digitalout((((phase << 4) & 0x30) ^ 0x40), DLOW); 

And added this at poweroff part:
+    digitalout(0x40, DLOW); digitalout(0x50, DLOW); digitalout(0x60, DLOW); digitalout(0x70, DLOW); 

It seems working right, but it modifies the displayed pulsewidth as well. It bothers me a bit. Any ideas about improving this hack?

  • what pulsewidth? the injector pulsewidth ???? Is this the same winavr compiler that is proven by earlier experiments (remember the element0 of h[0] ?) to be almost certainly bad ?
  • The pulsewidth shown in Megatune. Fortunately in effect it doesn't change anything. Since I installed the lastest WinAVR, I don't have any problem with h[0].