auto-sync
This commit is contained in:
parent
19464c651e
commit
494b097c65
|
@ -282,9 +282,6 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
|||
boardConfiguration->fuelPumpPin = GPIOE_3;
|
||||
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
||||
|
||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
||||
|
||||
boardConfiguration->triggerInputPins[0] = GPIOA_5;
|
||||
boardConfiguration->triggerInputPins[1] = GPIOC_6;
|
||||
|
||||
|
@ -352,7 +349,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
|||
engineConfiguration->map.sensor.sensorType = MT_DODGE_NEON_2003;
|
||||
|
||||
#if EFI_PROD_CODE
|
||||
setHip9011FrankensoPinout();
|
||||
// setHip9011FrankensoPinout();
|
||||
#endif
|
||||
engineConfiguration->cylinderBore = 87.5;
|
||||
|
||||
|
|
|
@ -173,9 +173,6 @@ static void setHondaAccordConfigurationCommon(engine_configuration_s *engineConf
|
|||
boardConfiguration->fuelPumpPin = GPIOE_3;
|
||||
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
||||
|
||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
||||
|
||||
setFrankenso_01_LCD(boardConfiguration);
|
||||
|
||||
boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
|
||||
|
|
|
@ -130,9 +130,6 @@ static void commonMiataNa(engine_configuration_s *engineConfiguration, board_con
|
|||
setFuelLoadBin(engineConfiguration, 1.2, 4.4);
|
||||
setFuelRpmBin(engineConfiguration, 800, 7000);
|
||||
|
||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
||||
|
||||
boardConfiguration->idleSolenoidFrequency = 160;
|
||||
|
||||
engineConfiguration->globalTriggerAngleOffset = 294;
|
||||
|
|
|
@ -422,7 +422,7 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
|||
boardConfiguration->fanPin = GPIOC_15;
|
||||
boardConfiguration->fanPinMode = OM_DEFAULT;
|
||||
|
||||
boardConfiguration->idleSwitchPin = GPIOC_8;
|
||||
boardConfiguration->idleSwitchPin = GPIO_UNASSIGNED;
|
||||
|
||||
boardConfiguration->triggerSimulatorPins[0] = GPIOD_1;
|
||||
boardConfiguration->triggerSimulatorPins[1] = GPIOD_2;
|
||||
|
@ -436,6 +436,7 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
|||
|
||||
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_2;
|
||||
|
||||
engineConfiguration->isGpsEnabled = false;
|
||||
boardConfiguration->gps_rx_pin = GPIOB_7;
|
||||
boardConfiguration->gps_tx_pin = GPIOB_6;
|
||||
|
||||
|
@ -539,11 +540,14 @@ static void setCustomEngineConfiguration(engine_configuration_s *engineConfigura
|
|||
// Frankenso low out #6: PE4
|
||||
// Frankenso low out #7: PE1 (do not use with discovery!)
|
||||
// Frankenso low out #8: PE2 injector #2
|
||||
// Frankenso low out #9: PB9
|
||||
// Frankenso low out #9: PB9 Idle valve solenoid
|
||||
// Frankenso low out #10: PE0 (do not use with discovery!)
|
||||
// Frankenso low out #11: PB8 injector #3
|
||||
// Frankenso low out #12: PB7 injector #4
|
||||
|
||||
boardConfiguration->idleValvePin = GPIOB_9;
|
||||
|
||||
|
||||
boardConfiguration->injectionPins[0] = GPIO_UNASSIGNED; // #1
|
||||
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
|
||||
boardConfiguration->injectionPins[2] = GPIOB_8; // #3
|
||||
|
|
|
@ -521,6 +521,7 @@ typedef struct {
|
|||
bool_t canWriteEnabled : 1; // bit 8
|
||||
bool_t hasVehicleSpeedSensor : 1; // bit 9
|
||||
bool_t isJoystickEnabled : 1; // bit 10
|
||||
bool_t isGpsEnabled : 1; // bit 11
|
||||
|
||||
int unused6284;
|
||||
|
||||
|
|
|
@ -62,7 +62,8 @@ void idleDebug(const char *msg, percent_t value) {
|
|||
}
|
||||
|
||||
static void showIdleInfo(void) {
|
||||
scheduleMsg(&logger, "idleMode=%s duty=%f", getIdle_mode_e(engineConfiguration->idleMode), boardConfiguration->idleSolenoidPwm);
|
||||
scheduleMsg(&logger, "idleMode=%s duty=%f", getIdle_mode_e(engineConfiguration->idleMode),
|
||||
boardConfiguration->idleSolenoidPwm);
|
||||
scheduleMsg(&logger, "idle valve freq=%d on %s", boardConfiguration->idleSolenoidFrequency,
|
||||
hwPortname(boardConfiguration->idleValvePin));
|
||||
}
|
||||
|
@ -95,8 +96,10 @@ static msg_t ivThread(int param) {
|
|||
chThdSleepMilliseconds(boardConfiguration->idleThreadPeriod);
|
||||
|
||||
// this value is not used yet
|
||||
if (boardConfiguration->idleSwitchPin != GPIO_UNASSIGNED) {
|
||||
idleSwitchState = palReadPad(getHwPort(boardConfiguration->idleSwitchPin),
|
||||
getHwPin(boardConfiguration->idleSwitchPin));
|
||||
}
|
||||
|
||||
if (engineConfiguration->idleMode != IM_AUTO)
|
||||
continue;
|
||||
|
@ -146,6 +149,7 @@ void startIdleThread(Engine *engine) {
|
|||
|
||||
// this is idle switch INPUT - sometimes there is a switch on the throttle pedal
|
||||
// this switch is not used yet
|
||||
if (boardConfiguration->idleSwitchPin != GPIO_UNASSIGNED)
|
||||
mySetPadMode2("idle switch", boardConfiguration->idleSwitchPin, PAL_MODE_INPUT);
|
||||
|
||||
addConsoleAction("idleinfo", showIdleInfo);
|
||||
|
|
|
@ -672,6 +672,8 @@ static void setSpiMode(int index, bool mode) {
|
|||
static void enableOrDisable(const char *param, bool isEnabled) {
|
||||
if (strEqualCaseInsensitive(param, "fastadc")) {
|
||||
boardConfiguration->isFastAdcEnabled = isEnabled;
|
||||
} else if (strEqualCaseInsensitive(param, "joystick")) {
|
||||
engineConfiguration->isJoystickEnabled = isEnabled;
|
||||
} else if (strEqualCaseInsensitive(param, "can")) {
|
||||
engineConfiguration->isCanEnabled = isEnabled;
|
||||
} else if (strEqualCaseInsensitive(param, "can_read")) {
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "lcd_HD44780.h"
|
||||
#include "settings.h"
|
||||
#include "algo.h"
|
||||
#include "joystick.h"
|
||||
|
||||
#if EFI_INTERNAL_FLASH
|
||||
#include "flash_main.h"
|
||||
|
@ -178,12 +179,6 @@ static void sendI2Cbyte(int addr, int data) {
|
|||
|
||||
#endif
|
||||
|
||||
// this is all very lame code, just playing with EXTI for now. TODO: refactor it competely!
|
||||
static int joyTotal = 0;
|
||||
static int joyA = 0;
|
||||
static int joyB = 0;
|
||||
static int joyC = 0;
|
||||
|
||||
static Logging *sharedLogger;
|
||||
|
||||
void initHardware(Logging *l, Engine *engine) {
|
||||
|
@ -235,7 +230,7 @@ void initHardware(Logging *l, Engine *engine) {
|
|||
* if flash state does not look right.
|
||||
*/
|
||||
if (SHOULD_INGORE_FLASH()) {
|
||||
engineConfiguration->engineType = FORD_ASPIRE_1996;
|
||||
engineConfiguration->engineType = DEFAULT_ENGINE_TYPE;
|
||||
resetConfigurationExt(sharedLogger, engineConfiguration->engineType,
|
||||
engine);
|
||||
writeToFlash();
|
||||
|
@ -340,85 +335,7 @@ void initHardware(Logging *l, Engine *engine) {
|
|||
|
||||
initVehicleSpeed(sharedLogger);
|
||||
|
||||
initJoystick(sharedLogger);
|
||||
|
||||
printMsg(sharedLogger, "initHardware() OK!");
|
||||
}
|
||||
|
||||
#if HAL_USE_EXT || defined(__DOXYGEN__)
|
||||
|
||||
// {EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART | EXT_MODE_GPIOA, extcb1},
|
||||
|
||||
static void extCallback(EXTDriver *extp, expchannel_t channel) {
|
||||
joyTotal++;
|
||||
if (channel == 8) {
|
||||
joyA++;
|
||||
} else if (channel == 9) {
|
||||
joyB++;
|
||||
} else if (channel == 10) {
|
||||
joyC++;
|
||||
}
|
||||
}
|
||||
|
||||
static void joystickInfo(void) {
|
||||
scheduleMsg(sharedLogger, "total %d a %d b %d c %d", joyTotal, joyA, joyB,
|
||||
joyC);
|
||||
}
|
||||
|
||||
/**
|
||||
* EXTI is a funny thing: you can only use same pin on one port. For example, you can use
|
||||
* PA0 PB5 PE2 PD7
|
||||
* but you cannot use
|
||||
* PA0 PB0 PE2 PD7
|
||||
* because pin '0' would be used on two different ports
|
||||
*/
|
||||
|
||||
static EXTConfig extcfg = { {
|
||||
/* CH#00 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#01 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#02 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#03 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#04 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#05 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#06 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#07 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#08 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#09 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#10 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#11 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#12 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#13 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#14 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#15 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#16 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#17 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#18 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#19 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#20 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#21 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#22 */{ EXT_CH_MODE_DISABLED, NULL } } };
|
||||
|
||||
void initExt(void) {
|
||||
if (!engineConfiguration->isJoystickEnabled)
|
||||
return;
|
||||
|
||||
extcfg.channels[8].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOC; // PC8
|
||||
extcfg.channels[8].cb = extCallback;
|
||||
|
||||
extcfg.channels[10].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOD; // PD10
|
||||
extcfg.channels[10].cb = extCallback;
|
||||
|
||||
extcfg.channels[11].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOD; // PD11
|
||||
extcfg.channels[11].cb = extCallback;
|
||||
|
||||
mySetPadMode("joy center", GPIOD, 10, PAL_MODE_INPUT_PULLUP);
|
||||
mySetPadMode("joy B", GPIOC, 8, PAL_MODE_INPUT_PULLUP);
|
||||
mySetPadMode("joy D", GPIOD, 11, PAL_MODE_INPUT_PULLUP);
|
||||
|
||||
extStart(&EXTD1, &extcfg);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -38,7 +38,6 @@ extern "C"
|
|||
|
||||
SPIDriver * getSpiDevice(spi_device_e spiDevice);
|
||||
void initSpiCs(SPIConfig *spiConfig, brain_pin_e csPin);
|
||||
void initExt(void);
|
||||
void turnOnSpi(spi_device_e device);
|
||||
void lockSpi(spi_device_e device);
|
||||
void unlockSpi(void);
|
||||
|
|
|
@ -22,6 +22,7 @@ HW_LAYER_EMS_CPP = $(PROJECT_DIR)/hw_layer/hardware.cpp \
|
|||
$(PROJECT_DIR)/hw_layer/HIP9011.cpp \
|
||||
$(PROJECT_DIR)/hw_layer/vehicle_speed.cpp \
|
||||
$(PROJECT_DIR)/hw_layer/max31855.cpp \
|
||||
$(PROJECT_DIR)/hw_layer/joystick.cpp \
|
||||
$(PROJECT_DIR)/hw_layer/stepper.cpp \
|
||||
$(PROJECT_DIR)/hw_layer/stm32f4/mpu_util.cpp
|
||||
|
||||
|
|
|
@ -0,0 +1,102 @@
|
|||
/**
|
||||
* @file joystick.cpp
|
||||
*
|
||||
* @date Jan 2, 2015
|
||||
* @author Andrey Belomutskiy, (c) 2012-2014
|
||||
*/
|
||||
|
||||
#include "engine_configuration.h"
|
||||
#include "joystick.h"
|
||||
#include "engine.h"
|
||||
#include "pin_repository.h"
|
||||
|
||||
#if HAL_USE_EXT || defined(__DOXYGEN__)
|
||||
|
||||
EXTERN_ENGINE;
|
||||
|
||||
static int joyTotal = 0;
|
||||
static int joyA = 0;
|
||||
static int joyB = 0;
|
||||
static int joyC = 0;
|
||||
|
||||
static Logging *sharedLogger;
|
||||
|
||||
// {EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART | EXT_MODE_GPIOA, extcb1},
|
||||
|
||||
static void extCallback(EXTDriver *extp, expchannel_t channel) {
|
||||
joyTotal++;
|
||||
if (channel == 8) {
|
||||
joyA++;
|
||||
} else if (channel == 9) {
|
||||
joyB++;
|
||||
} else if (channel == 10) {
|
||||
joyC++;
|
||||
}
|
||||
}
|
||||
|
||||
static void joystickInfo(void) {
|
||||
scheduleMsg(sharedLogger, "total %d a %d b %d c %d", joyTotal, joyA, joyB,
|
||||
joyC);
|
||||
}
|
||||
|
||||
/**
|
||||
* EXTI is a funny thing: you can only use same pin on one port. For example, you can use
|
||||
* PA0 PB5 PE2 PD7
|
||||
* but you cannot use
|
||||
* PA0 PB0 PE2 PD7
|
||||
* because pin '0' would be used on two different ports
|
||||
*/
|
||||
|
||||
static EXTConfig extcfg = { {
|
||||
/* CH#00 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#01 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#02 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#03 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#04 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#05 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#06 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#07 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#08 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#09 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#10 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#11 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#12 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#13 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#14 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#15 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#16 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#17 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#18 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#19 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#20 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#21 */{ EXT_CH_MODE_DISABLED, NULL },
|
||||
/* CH#22 */{ EXT_CH_MODE_DISABLED, NULL } } };
|
||||
|
||||
void initJoystick(Logging *shared) {
|
||||
if (!engineConfiguration->isJoystickEnabled)
|
||||
return;
|
||||
sharedLogger = shared;
|
||||
|
||||
extcfg.channels[8].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOC; // PC8
|
||||
extcfg.channels[8].cb = extCallback;
|
||||
|
||||
extcfg.channels[10].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOD; // PD10
|
||||
extcfg.channels[10].cb = extCallback;
|
||||
|
||||
extcfg.channels[11].mode = EXT_CH_MODE_BOTH_EDGES | EXT_CH_MODE_AUTOSTART
|
||||
| EXT_MODE_GPIOD; // PD11
|
||||
extcfg.channels[11].cb = extCallback;
|
||||
|
||||
mySetPadMode("joy center", GPIOD, 10, PAL_MODE_INPUT_PULLUP);
|
||||
mySetPadMode("joy B", GPIOC, 8, PAL_MODE_INPUT_PULLUP);
|
||||
mySetPadMode("joy D", GPIOD, 11, PAL_MODE_INPUT_PULLUP);
|
||||
|
||||
addConsoleAction("joystickinfo", joystickInfo);
|
||||
|
||||
extStart(&EXTD1, &extcfg);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,14 @@
|
|||
/**
|
||||
* @file joystick.h
|
||||
*
|
||||
* @date Jan 2, 2015
|
||||
* @author Andrey Belomutskiy, (c) 2012-2014
|
||||
*/
|
||||
#ifndef CONTROLLERS_JOYSTICK_H_
|
||||
#define CONTROLLERS_JOYSTICK_H_
|
||||
|
||||
#include "main.h"
|
||||
|
||||
void initJoystick(Logging *shared);
|
||||
|
||||
#endif /* CONTROLLERS_JOYSTICK_H_ */
|
|
@ -27,6 +27,7 @@
|
|||
#include "engine_configuration.h"
|
||||
|
||||
extern board_configuration_s *boardConfiguration;
|
||||
extern engine_configuration_s *engineConfiguration;
|
||||
|
||||
static Logging logging;
|
||||
|
||||
|
@ -46,8 +47,6 @@ float getCurrentSpeed(void) {
|
|||
}
|
||||
|
||||
static void printGpsInfo(void) {
|
||||
// todo: scheduleMsg()
|
||||
|
||||
scheduleMsg(&logging, "GPS RX %s", hwPortname(boardConfiguration->gps_rx_pin));
|
||||
scheduleMsg(&logging, "GPS TX %s", hwPortname(boardConfiguration->gps_tx_pin));
|
||||
|
||||
|
@ -84,7 +83,7 @@ static msg_t GpsThreadEntryPoint(void *arg) {
|
|||
|
||||
int count = 0;
|
||||
|
||||
while (TRUE) {
|
||||
while (true) {
|
||||
msg_t charbuf = chSequentialStreamGet(GPS_SERIAL_DEVICE);
|
||||
if (charbuf == 10 || count == GPS_MAX_STRING) { // if 0xD,0xA or limit
|
||||
if (count >= 1)
|
||||
|
@ -106,9 +105,8 @@ static msg_t GpsThreadEntryPoint(void *arg) {
|
|||
}
|
||||
|
||||
void initGps(void) {
|
||||
if (boardConfiguration->gps_rx_pin == GPIO_UNASSIGNED || boardConfiguration->gps_tx_pin == GPIO_UNASSIGNED) {
|
||||
if(!engineConfiguration->isGpsEnabled)
|
||||
return;
|
||||
}
|
||||
|
||||
initLogging(&logging, "uart gps");
|
||||
|
||||
|
|
Loading…
Reference in New Issue