Originally Posted by
lionelhutz
With a properly done eight coil ignition system, the timing advance has no effect on dwell even when using one common signal to tell each coil when to fire. The rpm will have no effect on dwell either.
We'll have to agree to disagree on this point. At least from the implementation standpoint, I believe I have to know spark advance because dwell (measured either in time or hint: degrees) is in essence "added" to the (edit: lead up to the) firing event. It gets a little sticky in that we need to follow the falling edge of the EST line to know when to end dwell and let the coil fire. Even stickier that dwell may need to be started before the preceding cylinder's coil is fired.
Originally Posted by
lionelhutz
assuming ... you are switching to the next required coil at each TDC event (or each low-res leading edge).
I don't intend to do it that way, so it won't be a limitation.
This is what I was dreaming about last night. This may end up a failure, but it will be a spectacular one.
Code:
#define DWELL_TGT 4.0
#define DWELL_MAX 4.5
#define VOLT_COMP_8 2.4
#define VOLT_COMP_10 0.9
#define VOLT_COMP_14 -0.5
#define VOLT_COMP_16 -0.9
#define CRANKING_SPK_ADV 14 // in the $EE cal this is skewed against ECT so ???
#define RUNNING_RPM 400 // assume engine is running after reaching this speed
typedef struct
{
int dwell8V;
int dwell10V;
int dwell12V;
int dwell14V;
int dwell16V;
} dwell
dwell dwellTable[27];
int rpmReference[27] = { 400, 600, 800, 1000, 1200, 1400,
1600, 1800, 2000, 2200, 2400, 2600, 2800, 3000, 3200, 3400,
3600, 3800, 4000, 4400, 4800, 5200, 5600, 6000, 6400, 6800 };
Bookmarks