Add check to prevent system hanging on startup with fresh board if invalid flex pin is attempted
This commit is contained in:
parent
32b5c4684e
commit
e4207d9ee3
|
@ -209,7 +209,12 @@ void setup()
|
||||||
loadCalibration();
|
loadCalibration();
|
||||||
|
|
||||||
//Set the pin mappings
|
//Set the pin mappings
|
||||||
if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) { setPinMapping(3); } //First time running? set to v0.4
|
if(configPage1.pinMapping > BOARD_NR_GPIO_PINS)
|
||||||
|
{
|
||||||
|
//First time running on this board
|
||||||
|
setPinMapping(3); //Force board to v0.4
|
||||||
|
configPage1.flexEnabled = false; //Have to disable flex. If this isn't done and the wrong flex pin is interrupt attached below, system can hang.
|
||||||
|
}
|
||||||
else { setPinMapping(configPage1.pinMapping); }
|
else { setPinMapping(configPage1.pinMapping); }
|
||||||
|
|
||||||
//Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup
|
//Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup
|
||||||
|
@ -270,7 +275,6 @@ void setup()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Check whether the flex sensor is enabled and if so, attach an interupt for it
|
//Check whether the flex sensor is enabled and if so, attach an interupt for it
|
||||||
if(configPage1.flexEnabled)
|
if(configPage1.flexEnabled)
|
||||||
{
|
{
|
||||||
|
@ -344,7 +348,6 @@ void setup()
|
||||||
pinMode(pinTrigger3, INPUT);
|
pinMode(pinTrigger3, INPUT);
|
||||||
//digitalWrite(pinTrigger, HIGH);
|
//digitalWrite(pinTrigger, HIGH);
|
||||||
|
|
||||||
|
|
||||||
//Set the trigger function based on the decoder in the config
|
//Set the trigger function based on the decoder in the config
|
||||||
switch (configPage2.TrigPattern)
|
switch (configPage2.TrigPattern)
|
||||||
{
|
{
|
||||||
|
@ -955,6 +958,7 @@ void loop()
|
||||||
currentStatus.PW1 = 0;
|
currentStatus.PW1 = 0;
|
||||||
currentStatus.VE = 0;
|
currentStatus.VE = 0;
|
||||||
toothLastToothTime = 0;
|
toothLastToothTime = 0;
|
||||||
|
//toothLastMinusOneToothTime = 0;
|
||||||
currentStatus.hasSync = false;
|
currentStatus.hasSync = false;
|
||||||
currentStatus.runSecs = 0; //Reset the counter for number of seconds running.
|
currentStatus.runSecs = 0; //Reset the counter for number of seconds running.
|
||||||
secCounter = 0; //Reset our seconds counter.
|
secCounter = 0; //Reset our seconds counter.
|
||||||
|
|
|
@ -300,13 +300,14 @@ void setPinMapping(byte boardID)
|
||||||
pinDisplayReset = 48; // OLED reset pin
|
pinDisplayReset = 48; // OLED reset pin
|
||||||
pinTachOut = 49; //Tacho output pin (Goes to ULN2803)
|
pinTachOut = 49; //Tacho output pin (Goes to ULN2803)
|
||||||
pinIdle1 = 2; //Single wire idle control
|
pinIdle1 = 2; //Single wire idle control
|
||||||
pinIdle2 = 3; //2 wire idle control (Note this is shared with boost!!!)
|
pinBoost = 4;
|
||||||
|
pinIdle2 = 4; //2 wire idle control (Note this is shared with boost!!!)
|
||||||
pinFuelPump = 37; //Fuel pump output (Goes to ULN2803)
|
pinFuelPump = 37; //Fuel pump output (Goes to ULN2803)
|
||||||
pinStepperDir = 16; //Direction pin for DRV8825 driver
|
pinStepperDir = 16; //Direction pin for DRV8825 driver
|
||||||
pinStepperStep = 17; //Step pin for DRV8825 driver
|
pinStepperStep = 17; //Step pin for DRV8825 driver
|
||||||
pinFan = 47; //Pin for the fan output (Goes to ULN2803)
|
pinFan = 47; //Pin for the fan output (Goes to ULN2803)
|
||||||
pinLaunch = 12; //Can be overwritten below
|
pinLaunch = 12; //Can be overwritten below
|
||||||
pinFlex = 2; // Flex sensor (Must be external interrupt enabled)
|
pinFlex = 3; // Flex sensor (Must be external interrupt enabled)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
|
@ -441,6 +442,9 @@ void setPinMapping(byte boardID)
|
||||||
pinFan = 47; //Pin for the fan output
|
pinFan = 47; //Pin for the fan output
|
||||||
pinFuelPump = 4; //Fuel pump output
|
pinFuelPump = 4; //Fuel pump output
|
||||||
pinTachOut = 49; //Tacho output pin
|
pinTachOut = 49; //Tacho output pin
|
||||||
|
pinFlex = 3; // Flex sensor (Must be external interrupt enabled)
|
||||||
|
pinBoost = 5;
|
||||||
|
pinIdle1 = 6;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue