From 7270b0b66407878af6070900db39fe7cfc248469 Mon Sep 17 00:00:00 2001 From: Josh Stewart Date: Tue, 10 Feb 2015 00:01:46 +1100 Subject: [PATCH] Inclusion of spark tracking byte --- globals.h | 1 + speeduino.ino | 18 +++++++++--------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/globals.h b/globals.h index dd4ce3c..be3e11e 100644 --- a/globals.h +++ b/globals.h @@ -66,6 +66,7 @@ struct statuses { byte afrTarget; unsigned long TAEEndTime; //The target end time used whenever TAE is turned on volatile byte squirt; + volatile byte spark; byte engine; unsigned int PW; //In uS volatile byte runSecs; //Counter of seconds since cranking commenced (overflows at 255 obviously) diff --git a/speeduino.ino b/speeduino.ino index efef847..7b99565 100644 --- a/speeduino.ino +++ b/speeduino.ino @@ -519,24 +519,24 @@ void loop() //These functions simply trigger the injector/coil driver off or on. //NOTE: squirt status is changed as per http://www.msextra.com/doc/ms1extra/COM_RS232.htm#Acmd void openInjector1() { digitalWrite(pinInjector1, HIGH); BIT_SET(currentStatus.squirt, 0); } -void closeInjector1() { digitalWrite(pinInjector1, LOW); BIT_CLEAR(currentStatus.squirt, 0);} -void beginCoil1Charge() { digitalWrite(pinCoil1, coilHIGH); } -void endCoil1Charge() { digitalWrite(pinCoil1, coilLOW); } +void closeInjector1() { digitalWrite(pinInjector1, LOW); BIT_CLEAR(currentStatus.squirt, 0); } +void beginCoil1Charge() { digitalWrite(pinCoil1, coilHIGH); BIT_SET(currentStatus.spark, 0); } +void endCoil1Charge() { digitalWrite(pinCoil1, coilLOW); BIT_CLEAR(currentStatus.spark, 0); } void openInjector2() { digitalWrite(pinInjector2, HIGH); BIT_SET(currentStatus.squirt, 1); } //Sets the relevant pin HIGH and changes the current status bit for injector 2 (2nd bit of currentStatus.squirt) void closeInjector2() { digitalWrite(pinInjector2, LOW); BIT_CLEAR(currentStatus.squirt, 1); } -void beginCoil2Charge() { digitalWrite(pinCoil2, coilHIGH); } -void endCoil2Charge() { digitalWrite(pinCoil2, coilLOW); } +void beginCoil2Charge() { digitalWrite(pinCoil2, coilHIGH); BIT_SET(currentStatus.spark, 1); } +void endCoil2Charge() { digitalWrite(pinCoil2, coilLOW); BIT_CLEAR(currentStatus.spark, 1); } void openInjector3() { digitalWrite(pinInjector3, HIGH); BIT_SET(currentStatus.squirt, 2); } //Sets the relevant pin HIGH and changes the current status bit for injector 3 (3rd bit of currentStatus.squirt) void closeInjector3() { digitalWrite(pinInjector3, LOW); BIT_CLEAR(currentStatus.squirt, 2); } -void beginCoil3Charge() { digitalWrite(pinCoil3, coilHIGH); } -void endCoil3Charge() { digitalWrite(pinCoil3, coilLOW); } +void beginCoil3Charge() { digitalWrite(pinCoil3, coilHIGH); BIT_SET(currentStatus.spark, 2); } +void endCoil3Charge() { digitalWrite(pinCoil3, coilLOW); BIT_CLEAR(currentStatus.spark, 2); } void openInjector4() { digitalWrite(pinInjector4, HIGH); BIT_SET(currentStatus.squirt, 3); } //Sets the relevant pin HIGH and changes the current status bit for injector 4 (4th bit of currentStatus.squirt) void closeInjector4() { digitalWrite(pinInjector4, LOW); BIT_CLEAR(currentStatus.squirt, 3); } -void beginCoil4Charge() { digitalWrite(pinCoil4, coilHIGH); } -void endCoil4Charge() { digitalWrite(pinCoil4, coilLOW); } +void beginCoil4Charge() { digitalWrite(pinCoil4, coilHIGH); BIT_SET(currentStatus.spark, 3); } +void endCoil4Charge() { digitalWrite(pinCoil4, coilLOW); BIT_CLEAR(currentStatus.spark, 3); } //The trigger function is called everytime a crank tooth passes the sensor volatile unsigned long curTime;