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->fuelPumpPin = GPIOE_3;
|
||||||
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
||||||
|
|
||||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
|
||||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
|
||||||
|
|
||||||
boardConfiguration->triggerInputPins[0] = GPIOA_5;
|
boardConfiguration->triggerInputPins[0] = GPIOA_5;
|
||||||
boardConfiguration->triggerInputPins[1] = GPIOC_6;
|
boardConfiguration->triggerInputPins[1] = GPIOC_6;
|
||||||
|
|
||||||
|
@ -352,7 +349,7 @@ void setDodgeNeonNGCEngineConfiguration(engine_configuration_s *engineConfigurat
|
||||||
engineConfiguration->map.sensor.sensorType = MT_DODGE_NEON_2003;
|
engineConfiguration->map.sensor.sensorType = MT_DODGE_NEON_2003;
|
||||||
|
|
||||||
#if EFI_PROD_CODE
|
#if EFI_PROD_CODE
|
||||||
setHip9011FrankensoPinout();
|
// setHip9011FrankensoPinout();
|
||||||
#endif
|
#endif
|
||||||
engineConfiguration->cylinderBore = 87.5;
|
engineConfiguration->cylinderBore = 87.5;
|
||||||
|
|
||||||
|
|
|
@ -173,9 +173,6 @@ static void setHondaAccordConfigurationCommon(engine_configuration_s *engineConf
|
||||||
boardConfiguration->fuelPumpPin = GPIOE_3;
|
boardConfiguration->fuelPumpPin = GPIOE_3;
|
||||||
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
boardConfiguration->fuelPumpPinMode = OM_DEFAULT;
|
||||||
|
|
||||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
|
||||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
|
||||||
|
|
||||||
setFrankenso_01_LCD(boardConfiguration);
|
setFrankenso_01_LCD(boardConfiguration);
|
||||||
|
|
||||||
boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
|
boardConfiguration->logicAnalyzerPins[1] = GPIO_UNASSIGNED;
|
||||||
|
|
|
@ -130,9 +130,6 @@ static void commonMiataNa(engine_configuration_s *engineConfiguration, board_con
|
||||||
setFuelLoadBin(engineConfiguration, 1.2, 4.4);
|
setFuelLoadBin(engineConfiguration, 1.2, 4.4);
|
||||||
setFuelRpmBin(engineConfiguration, 800, 7000);
|
setFuelRpmBin(engineConfiguration, 800, 7000);
|
||||||
|
|
||||||
boardConfiguration->gps_rx_pin = GPIO_UNASSIGNED;
|
|
||||||
boardConfiguration->gps_tx_pin = GPIO_UNASSIGNED;
|
|
||||||
|
|
||||||
boardConfiguration->idleSolenoidFrequency = 160;
|
boardConfiguration->idleSolenoidFrequency = 160;
|
||||||
|
|
||||||
engineConfiguration->globalTriggerAngleOffset = 294;
|
engineConfiguration->globalTriggerAngleOffset = 294;
|
||||||
|
|
|
@ -422,7 +422,7 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
||||||
boardConfiguration->fanPin = GPIOC_15;
|
boardConfiguration->fanPin = GPIOC_15;
|
||||||
boardConfiguration->fanPinMode = OM_DEFAULT;
|
boardConfiguration->fanPinMode = OM_DEFAULT;
|
||||||
|
|
||||||
boardConfiguration->idleSwitchPin = GPIOC_8;
|
boardConfiguration->idleSwitchPin = GPIO_UNASSIGNED;
|
||||||
|
|
||||||
boardConfiguration->triggerSimulatorPins[0] = GPIOD_1;
|
boardConfiguration->triggerSimulatorPins[0] = GPIOD_1;
|
||||||
boardConfiguration->triggerSimulatorPins[1] = GPIOD_2;
|
boardConfiguration->triggerSimulatorPins[1] = GPIOD_2;
|
||||||
|
@ -436,6 +436,7 @@ void setDefaultConfiguration(engine_configuration_s *engineConfiguration, board_
|
||||||
|
|
||||||
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_2;
|
engineConfiguration->hip9011SpiDevice = SPI_DEVICE_2;
|
||||||
|
|
||||||
|
engineConfiguration->isGpsEnabled = false;
|
||||||
boardConfiguration->gps_rx_pin = GPIOB_7;
|
boardConfiguration->gps_rx_pin = GPIOB_7;
|
||||||
boardConfiguration->gps_tx_pin = GPIOB_6;
|
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 #6: PE4
|
||||||
// Frankenso low out #7: PE1 (do not use with discovery!)
|
// Frankenso low out #7: PE1 (do not use with discovery!)
|
||||||
// Frankenso low out #8: PE2 injector #2
|
// 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 #10: PE0 (do not use with discovery!)
|
||||||
// Frankenso low out #11: PB8 injector #3
|
// Frankenso low out #11: PB8 injector #3
|
||||||
// Frankenso low out #12: PB7 injector #4
|
// Frankenso low out #12: PB7 injector #4
|
||||||
|
|
||||||
|
boardConfiguration->idleValvePin = GPIOB_9;
|
||||||
|
|
||||||
|
|
||||||
boardConfiguration->injectionPins[0] = GPIO_UNASSIGNED; // #1
|
boardConfiguration->injectionPins[0] = GPIO_UNASSIGNED; // #1
|
||||||
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
|
boardConfiguration->injectionPins[1] = GPIOE_2; // #2
|
||||||
boardConfiguration->injectionPins[2] = GPIOB_8; // #3
|
boardConfiguration->injectionPins[2] = GPIOB_8; // #3
|
||||||
|
|
|
@ -521,6 +521,7 @@ typedef struct {
|
||||||
bool_t canWriteEnabled : 1; // bit 8
|
bool_t canWriteEnabled : 1; // bit 8
|
||||||
bool_t hasVehicleSpeedSensor : 1; // bit 9
|
bool_t hasVehicleSpeedSensor : 1; // bit 9
|
||||||
bool_t isJoystickEnabled : 1; // bit 10
|
bool_t isJoystickEnabled : 1; // bit 10
|
||||||
|
bool_t isGpsEnabled : 1; // bit 11
|
||||||
|
|
||||||
int unused6284;
|
int unused6284;
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,8 @@ void idleDebug(const char *msg, percent_t value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void showIdleInfo(void) {
|
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,
|
scheduleMsg(&logger, "idle valve freq=%d on %s", boardConfiguration->idleSolenoidFrequency,
|
||||||
hwPortname(boardConfiguration->idleValvePin));
|
hwPortname(boardConfiguration->idleValvePin));
|
||||||
}
|
}
|
||||||
|
@ -95,8 +96,10 @@ static msg_t ivThread(int param) {
|
||||||
chThdSleepMilliseconds(boardConfiguration->idleThreadPeriod);
|
chThdSleepMilliseconds(boardConfiguration->idleThreadPeriod);
|
||||||
|
|
||||||
// this value is not used yet
|
// this value is not used yet
|
||||||
idleSwitchState = palReadPad(getHwPort(boardConfiguration->idleSwitchPin),
|
if (boardConfiguration->idleSwitchPin != GPIO_UNASSIGNED) {
|
||||||
getHwPin(boardConfiguration->idleSwitchPin));
|
idleSwitchState = palReadPad(getHwPort(boardConfiguration->idleSwitchPin),
|
||||||
|
getHwPin(boardConfiguration->idleSwitchPin));
|
||||||
|
}
|
||||||
|
|
||||||
if (engineConfiguration->idleMode != IM_AUTO)
|
if (engineConfiguration->idleMode != IM_AUTO)
|
||||||
continue;
|
continue;
|
||||||
|
@ -146,7 +149,8 @@ void startIdleThread(Engine *engine) {
|
||||||
|
|
||||||
// this is idle switch INPUT - sometimes there is a switch on the throttle pedal
|
// this is idle switch INPUT - sometimes there is a switch on the throttle pedal
|
||||||
// this switch is not used yet
|
// this switch is not used yet
|
||||||
mySetPadMode2("idle switch", boardConfiguration->idleSwitchPin, PAL_MODE_INPUT);
|
if (boardConfiguration->idleSwitchPin != GPIO_UNASSIGNED)
|
||||||
|
mySetPadMode2("idle switch", boardConfiguration->idleSwitchPin, PAL_MODE_INPUT);
|
||||||
|
|
||||||
addConsoleAction("idleinfo", showIdleInfo);
|
addConsoleAction("idleinfo", showIdleInfo);
|
||||||
addConsoleActionI("set_idle_rpm", setIdleRpmAction);
|
addConsoleActionI("set_idle_rpm", setIdleRpmAction);
|
||||||
|
|
|
@ -672,6 +672,8 @@ static void setSpiMode(int index, bool mode) {
|
||||||
static void enableOrDisable(const char *param, bool isEnabled) {
|
static void enableOrDisable(const char *param, bool isEnabled) {
|
||||||
if (strEqualCaseInsensitive(param, "fastadc")) {
|
if (strEqualCaseInsensitive(param, "fastadc")) {
|
||||||
boardConfiguration->isFastAdcEnabled = isEnabled;
|
boardConfiguration->isFastAdcEnabled = isEnabled;
|
||||||
|
} else if (strEqualCaseInsensitive(param, "joystick")) {
|
||||||
|
engineConfiguration->isJoystickEnabled = isEnabled;
|
||||||
} else if (strEqualCaseInsensitive(param, "can")) {
|
} else if (strEqualCaseInsensitive(param, "can")) {
|
||||||
engineConfiguration->isCanEnabled = isEnabled;
|
engineConfiguration->isCanEnabled = isEnabled;
|
||||||
} else if (strEqualCaseInsensitive(param, "can_read")) {
|
} else if (strEqualCaseInsensitive(param, "can_read")) {
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "lcd_HD44780.h"
|
#include "lcd_HD44780.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "algo.h"
|
#include "algo.h"
|
||||||
|
#include "joystick.h"
|
||||||
|
|
||||||
#if EFI_INTERNAL_FLASH
|
#if EFI_INTERNAL_FLASH
|
||||||
#include "flash_main.h"
|
#include "flash_main.h"
|
||||||
|
@ -178,12 +179,6 @@ static void sendI2Cbyte(int addr, int data) {
|
||||||
|
|
||||||
#endif
|
#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;
|
static Logging *sharedLogger;
|
||||||
|
|
||||||
void initHardware(Logging *l, Engine *engine) {
|
void initHardware(Logging *l, Engine *engine) {
|
||||||
|
@ -235,7 +230,7 @@ void initHardware(Logging *l, Engine *engine) {
|
||||||
* if flash state does not look right.
|
* if flash state does not look right.
|
||||||
*/
|
*/
|
||||||
if (SHOULD_INGORE_FLASH()) {
|
if (SHOULD_INGORE_FLASH()) {
|
||||||
engineConfiguration->engineType = FORD_ASPIRE_1996;
|
engineConfiguration->engineType = DEFAULT_ENGINE_TYPE;
|
||||||
resetConfigurationExt(sharedLogger, engineConfiguration->engineType,
|
resetConfigurationExt(sharedLogger, engineConfiguration->engineType,
|
||||||
engine);
|
engine);
|
||||||
writeToFlash();
|
writeToFlash();
|
||||||
|
@ -340,85 +335,7 @@ void initHardware(Logging *l, Engine *engine) {
|
||||||
|
|
||||||
initVehicleSpeed(sharedLogger);
|
initVehicleSpeed(sharedLogger);
|
||||||
|
|
||||||
|
initJoystick(sharedLogger);
|
||||||
|
|
||||||
printMsg(sharedLogger, "initHardware() OK!");
|
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);
|
SPIDriver * getSpiDevice(spi_device_e spiDevice);
|
||||||
void initSpiCs(SPIConfig *spiConfig, brain_pin_e csPin);
|
void initSpiCs(SPIConfig *spiConfig, brain_pin_e csPin);
|
||||||
void initExt(void);
|
|
||||||
void turnOnSpi(spi_device_e device);
|
void turnOnSpi(spi_device_e device);
|
||||||
void lockSpi(spi_device_e device);
|
void lockSpi(spi_device_e device);
|
||||||
void unlockSpi(void);
|
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/HIP9011.cpp \
|
||||||
$(PROJECT_DIR)/hw_layer/vehicle_speed.cpp \
|
$(PROJECT_DIR)/hw_layer/vehicle_speed.cpp \
|
||||||
$(PROJECT_DIR)/hw_layer/max31855.cpp \
|
$(PROJECT_DIR)/hw_layer/max31855.cpp \
|
||||||
|
$(PROJECT_DIR)/hw_layer/joystick.cpp \
|
||||||
$(PROJECT_DIR)/hw_layer/stepper.cpp \
|
$(PROJECT_DIR)/hw_layer/stepper.cpp \
|
||||||
$(PROJECT_DIR)/hw_layer/stm32f4/mpu_util.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"
|
#include "engine_configuration.h"
|
||||||
|
|
||||||
extern board_configuration_s *boardConfiguration;
|
extern board_configuration_s *boardConfiguration;
|
||||||
|
extern engine_configuration_s *engineConfiguration;
|
||||||
|
|
||||||
static Logging logging;
|
static Logging logging;
|
||||||
|
|
||||||
|
@ -46,8 +47,6 @@ float getCurrentSpeed(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static void printGpsInfo(void) {
|
static void printGpsInfo(void) {
|
||||||
// todo: scheduleMsg()
|
|
||||||
|
|
||||||
scheduleMsg(&logging, "GPS RX %s", hwPortname(boardConfiguration->gps_rx_pin));
|
scheduleMsg(&logging, "GPS RX %s", hwPortname(boardConfiguration->gps_rx_pin));
|
||||||
scheduleMsg(&logging, "GPS TX %s", hwPortname(boardConfiguration->gps_tx_pin));
|
scheduleMsg(&logging, "GPS TX %s", hwPortname(boardConfiguration->gps_tx_pin));
|
||||||
|
|
||||||
|
@ -84,7 +83,7 @@ static msg_t GpsThreadEntryPoint(void *arg) {
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
while (TRUE) {
|
while (true) {
|
||||||
msg_t charbuf = chSequentialStreamGet(GPS_SERIAL_DEVICE);
|
msg_t charbuf = chSequentialStreamGet(GPS_SERIAL_DEVICE);
|
||||||
if (charbuf == 10 || count == GPS_MAX_STRING) { // if 0xD,0xA or limit
|
if (charbuf == 10 || count == GPS_MAX_STRING) { // if 0xD,0xA or limit
|
||||||
if (count >= 1)
|
if (count >= 1)
|
||||||
|
@ -106,9 +105,8 @@ static msg_t GpsThreadEntryPoint(void *arg) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void initGps(void) {
|
void initGps(void) {
|
||||||
if (boardConfiguration->gps_rx_pin == GPIO_UNASSIGNED || boardConfiguration->gps_tx_pin == GPIO_UNASSIGNED) {
|
if(!engineConfiguration->isGpsEnabled)
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
initLogging(&logging, "uart gps");
|
initLogging(&logging, "uart gps");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue