auto-sync

This commit is contained in:
rusEfi 2015-05-02 19:07:39 -04:00
parent 7df1c68b4d
commit 45d9b0926b
19 changed files with 34 additions and 30 deletions

View File

@ -24,7 +24,7 @@ void setDodgeRam1996(DECLARE_ENGINE_PARAMETER_F) {
engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2; engineConfiguration->specs.firingOrder = FO_1_8_4_3_6_5_7_2;
boardConfiguration->triggerInputPins[0] = GPIOC_6; boardConfiguration->triggerInputPins[0] = GPIOC_6;
boardConfiguration->triggerInputPins[1] = GPIOA_8; boardConfiguration->triggerInputPins[1] = GPIOA_5;
engineConfiguration->vbattAdcChannel = EFI_ADC_NONE; // todo: conflict with what? engineConfiguration->vbattAdcChannel = EFI_ADC_NONE; // todo: conflict with what?
} }

View File

@ -311,7 +311,7 @@ static void printAnalogChannelInfoExt(const char *name, adc_channel_e hwChannel,
static void printAnalogChannelInfo(const char *name, adc_channel_e hwChannel) { static void printAnalogChannelInfo(const char *name, adc_channel_e hwChannel) {
#if HAL_USE_ADC || defined(__DOXYGEN__) #if HAL_USE_ADC || defined(__DOXYGEN__)
if (hwChannel != EFI_ADC_NONE) { if (hwChannel != EFI_ADC_NONE) {
printAnalogChannelInfoExt(name, hwChannel, getVoltage(hwChannel)); printAnalogChannelInfoExt(name, hwChannel, getVoltage("print", hwChannel));
} }
#endif #endif
} }

View File

@ -24,5 +24,5 @@ bool getAcToggle(Engine *engine) {
* for now we are looking for a pull-up. High level means input switch is floating (which is OFF position) * for now we are looking for a pull-up. High level means input switch is floating (which is OFF position)
* low value means input is ground - which means ON. * low value means input is ground - which means ON.
*/ */
return getVoltageDivided(engine->engineConfiguration->acSwitchAdc) < 2.5; return getVoltageDivided("A/C", engine->engineConfiguration->acSwitchAdc) < 2.5;
} }

View File

@ -9,7 +9,7 @@ EXTERN_ENGINE;
float getAfr(DECLARE_ENGINE_PARAMETER_F) { float getAfr(DECLARE_ENGINE_PARAMETER_F) {
afr_sensor_s * sensor = &engineConfiguration->afr; afr_sensor_s * sensor = &engineConfiguration->afr;
float volts = getVoltageDivided(sensor->hwChannel); float volts = getVoltageDivided("ego", sensor->hwChannel);
return interpolate(sensor->v1, sensor->value1, sensor->v2, sensor->value2, volts); return interpolate(sensor->v1, sensor->value1, sensor->v2, sensor->value2, volts);
} }

View File

@ -17,7 +17,7 @@ float getMaf(DECLARE_ENGINE_PARAMETER_F) {
* @return kg/hour value * @return kg/hour value
*/ */
float getRealMaf(DECLARE_ENGINE_PARAMETER_F) { float getRealMaf(DECLARE_ENGINE_PARAMETER_F) {
int mafAdc = getAdcValue(engineConfiguration->mafAdcChannel); int mafAdc = getAdcValue("maf", engineConfiguration->mafAdcChannel);
/** /**
* here we drop from 12 bit ADC to 8 bit index * here we drop from 12 bit ADC to 8 bit index
*/ */

View File

@ -14,7 +14,7 @@
#include "main.h" #include "main.h"
#define getMafT(ec) (getVoltageDivided(ec->mafAdcChannel)) #define getMafT(ec) (getVoltageDivided("maf", ec->mafAdcChannel))
float getMaf(void); float getMaf(void);
float getRealMaf(DECLARE_ENGINE_PARAMETER_F); float getRealMaf(DECLARE_ENGINE_PARAMETER_F);

View File

@ -76,12 +76,12 @@ float getMapByVoltage(float voltage DECLARE_ENGINE_PARAMETER_S) {
* @return Manifold Absolute Pressure, in kPa * @return Manifold Absolute Pressure, in kPa
*/ */
float getRawMap(DECLARE_ENGINE_PARAMETER_F) { float getRawMap(DECLARE_ENGINE_PARAMETER_F) {
float voltage = getVoltageDivided(engineConfiguration->map.sensor.hwChannel); float voltage = getVoltageDivided("map", engineConfiguration->map.sensor.hwChannel);
return getMapByVoltage(voltage PASS_ENGINE_PARAMETER); return getMapByVoltage(voltage PASS_ENGINE_PARAMETER);
} }
float getBaroPressure(DECLARE_ENGINE_PARAMETER_F) { float getBaroPressure(DECLARE_ENGINE_PARAMETER_F) {
float voltage = getVoltageDivided(engineConfiguration->baroSensor.hwChannel); float voltage = getVoltageDivided("map", engineConfiguration->baroSensor.hwChannel);
return decodePressure(voltage, &engineConfiguration->baroSensor); return decodePressure(voltage, &engineConfiguration->baroSensor);
} }

View File

@ -78,7 +78,7 @@ float getKelvinTemperature(float resistance, ThermistorConf *thermistor) {
} }
float getResistance(Thermistor *thermistor) { float getResistance(Thermistor *thermistor) {
float voltage = getVoltageDivided(thermistor->channel); float voltage = getVoltageDivided("term", thermistor->channel);
efiAssert(thermistor->config != NULL, "thermistor config is null", NAN); efiAssert(thermistor->config != NULL, "thermistor config is null", NAN);
float resistance = getR2InVoltageDividor(voltage, _5_VOLTS, thermistor->config->bias_resistor); float resistance = getR2InVoltageDividor(voltage, _5_VOLTS, thermistor->config->bias_resistor);
return resistance; return resistance;

View File

@ -72,7 +72,7 @@ static float getTpsValue(int adc DECLARE_ENGINE_PARAMETER_S) {
* Return voltage on TPS AND channel * Return voltage on TPS AND channel
* */ * */
float getTPSVoltage(DECLARE_ENGINE_PARAMETER_F) { float getTPSVoltage(DECLARE_ENGINE_PARAMETER_F) {
return getVoltageDivided(engineConfiguration->tpsAdcChannel); return getVoltageDivided("tps", engineConfiguration->tpsAdcChannel);
} }
/* /*

View File

@ -13,9 +13,9 @@
#include "voltage.h" #include "voltage.h"
float getVRef(engine_configuration_s *engineConfiguration) { float getVRef(engine_configuration_s *engineConfiguration) {
return getVoltageDivided(engineConfiguration->vRefAdcChannel); return getVoltageDivided("vref", engineConfiguration->vRefAdcChannel);
} }
float getVBatt(engine_configuration_s *engineConfiguration) { float getVBatt(engine_configuration_s *engineConfiguration) {
return getVoltage(engineConfiguration->vbattAdcChannel) * engineConfiguration->vbattDividerCoeff; return getVoltage("vbatt", engineConfiguration->vbattAdcChannel) * engineConfiguration->vbattDividerCoeff;
} }

View File

@ -368,7 +368,7 @@ static char pinNameBuffer[16];
static void printThermistor(const char *msg, Thermistor *thermistor) { static void printThermistor(const char *msg, Thermistor *thermistor) {
adc_channel_e adcChannel = thermistor->channel; adc_channel_e adcChannel = thermistor->channel;
float voltage = getVoltageDivided(adcChannel); float voltage = getVoltageDivided("term", adcChannel);
float r = getResistance(thermistor); float r = getResistance(thermistor);
float t = getTemperatureC(thermistor); float t = getTemperatureC(thermistor);

View File

@ -353,7 +353,7 @@ void mainTriggerCallback(trigger_event_e ckpSignalType, uint32_t eventIndex DECL
if (eventIndex == engineConfiguration->ignMathCalculateAtIndex) { if (eventIndex == engineConfiguration->ignMathCalculateAtIndex) {
if (engineConfiguration->externalKnockSenseAdc != EFI_ADC_NONE) { if (engineConfiguration->externalKnockSenseAdc != EFI_ADC_NONE) {
float externalKnockValue = getVoltageDivided(engineConfiguration->externalKnockSenseAdc); float externalKnockValue = getVoltageDivided("knock", engineConfiguration->externalKnockSenseAdc);
engine->knockNow = externalKnockValue > 2.5; engine->knockNow = externalKnockValue > 2.5;
engine->knockEver |= engine->knockNow; engine->knockEver |= engine->knockNow;
} }

View File

@ -119,7 +119,7 @@ static void showHipInfo(void) {
nonZeroResponse); nonZeroResponse);
scheduleMsg(logger, "CS=%s updateCount=%d", hwPortname(boardConfiguration->hip9011CsPin), settingUpdateCount); scheduleMsg(logger, "CS=%s updateCount=%d", hwPortname(boardConfiguration->hip9011CsPin), settingUpdateCount);
scheduleMsg(logger, "value=%f@#%d", getVoltageDivided(engineConfiguration->hipOutputChannel), scheduleMsg(logger, "value=%f@#%d", getVoltageDivided("hip", engineConfiguration->hipOutputChannel),
engineConfiguration->hipOutputChannel); engineConfiguration->hipOutputChannel);
} }

View File

@ -13,6 +13,6 @@
#define getAdcValue(channel) getMcp3208adc(channel) #define getAdcValue(channel) getMcp3208adc(channel)
#define adcToVoltsDivided(adc) (5.0f / 4095 * adc) #define adcToVoltsDivided(adc) (5.0f / 4095 * adc)
#define getVoltageDivided(channel) (channel == EFI_ADC_NONE ? 66.66 : adcToVoltsDivided(getAdcValue(channel))) #define getVoltageDivided(msg, channel) (channel == EFI_ADC_NONE ? 66.66 : adcToVoltsDivided(getAdcValue(msg, channel)))
#endif /* ADC_EXTERNAL_H_ */ #endif /* ADC_EXTERNAL_H_ */

View File

@ -18,6 +18,7 @@
#include "pin_repository.h" #include "pin_repository.h"
#include "engine_math.h" #include "engine_math.h"
#include "board_test.h" #include "board_test.h"
#include "engine_controller.h"
static adc_channel_mode_e adcHwChannelEnabled[HW_MAX_ADC_INDEX]; static adc_channel_mode_e adcHwChannelEnabled[HW_MAX_ADC_INDEX];
@ -187,9 +188,9 @@ static void pwmpcb_fast(PWMDriver *pwmp) {
#endif #endif
} }
int getInternalAdcValue(adc_channel_e hwChannel) { int getInternalAdcValue(const char *msg, adc_channel_e hwChannel) {
if (hwChannel == EFI_ADC_NONE) { if (hwChannel == EFI_ADC_NONE) {
warning(OBD_PCM_Processor_Fault, "ADC: should not be asking for NONE"); warning(OBD_PCM_Processor_Fault, "ADC: should not be asking for NONE %s", msg);
return -1; return -1;
} }
@ -404,7 +405,7 @@ void AdcDevice::addChannel(adc_channel_e hwChannel) {
} }
static void printAdcValue(adc_channel_e channel) { static void printAdcValue(adc_channel_e channel) {
int value = getAdcValue(channel); int value = getAdcValue("print", channel);
float volts = adcToVoltsDivided(value); float volts = adcToVoltsDivided(value);
scheduleMsg(&logger, "adc voltage : %f", volts); scheduleMsg(&logger, "adc voltage : %f", volts);
} }
@ -465,12 +466,15 @@ static void adc_callback_slow(ADCDriver *adcp, adcsample_t *buffer, size_t n) {
} }
} }
static char errorMsgBuff[10];
static void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode) { static void addChannel(const char *name, adc_channel_e setting, adc_channel_mode_e mode) {
if (setting == EFI_ADC_NONE) { if (setting == EFI_ADC_NONE) {
return; return;
} }
if (adcHwChannelEnabled[setting] != ADC_OFF) { if (adcHwChannelEnabled[setting] != ADC_OFF) {
firmwareError("ADC mapping error: input for %s already used?", name); getPinNameByAdcChannel(setting, errorMsgBuff);
firmwareError("ADC mapping error: input %s for %s already used?", errorMsgBuff, name);
} }
adcHwChannelEnabled[setting] = mode; adcHwChannelEnabled[setting] = mode;

View File

@ -24,7 +24,7 @@ adc_channel_e getAdcChannel(brain_pin_e pin);
int getAdcHardwareIndexByInternalIndex(int index); int getAdcHardwareIndexByInternalIndex(int index);
void pokeAdcInputs(void); void pokeAdcInputs(void);
int getInternalAdcValue(adc_channel_e index); int getInternalAdcValue(const char *msg, adc_channel_e index);
/* Depth of the conversion buffer, channels are sampled X times each.*/ /* Depth of the conversion buffer, channels are sampled X times each.*/
#define ADC_BUF_DEPTH_SLOW 1 #define ADC_BUF_DEPTH_SLOW 1
@ -43,7 +43,7 @@ typedef struct {
// time_t time; // time_t time;
} adc_state; } adc_state;
#define getAdcValue(hwChannel) getInternalAdcValue(hwChannel) #define getAdcValue(msg, hwChannel) getInternalAdcValue(msg, hwChannel)
// todo: migrate to adcToVoltageInputDividerCoefficient // todo: migrate to adcToVoltageInputDividerCoefficient
#define adcToVoltsDivided(adc) (adcToVolts(adc) * engineConfiguration->analogInputDividerCoefficient) #define adcToVoltsDivided(adc) (adcToVolts(adc) * engineConfiguration->analogInputDividerCoefficient)

View File

@ -16,8 +16,8 @@
#define voltsToAdc(volts) ((volts) * (ADC_MAX_VALUE / ADC_VCC)) #define voltsToAdc(volts) ((volts) * (ADC_MAX_VALUE / ADC_VCC))
#define getVoltage(hwChannel) (adcToVolts(getAdcValue(hwChannel))) #define getVoltage(msg, hwChannel) (adcToVolts(getAdcValue(msg, hwChannel)))
#define getVoltageDivided(hwChannel) (getVoltage(hwChannel) * engineConfiguration->analogInputDividerCoefficient) #define getVoltageDivided(msg, hwChannel) (getVoltage(msg, hwChannel) * engineConfiguration->analogInputDividerCoefficient)
#endif /* ADC_MATH_H_ */ #endif /* ADC_MATH_H_ */

View File

@ -9,7 +9,7 @@
float testMafValue = 0; float testMafValue = 0;
float getVoltageDivided(int channel) { float getVoltageDivided(const char *msg, int channel) {
switch(channel) { switch(channel) {
case TEST_MAF_CHANNEL: case TEST_MAF_CHANNEL:
return testMafValue; return testMafValue;
@ -17,11 +17,11 @@ float getVoltageDivided(int channel) {
return 0; return 0;
} }
float getVoltage(int channel) { float getVoltage(const char *msg, int channel) {
return 0; return 0;
} }
int getAdcValue(int channel) { int getAdcValue(const char *msg, int channel) {
return 0; return 0;
} }

View File

@ -12,8 +12,8 @@
#define TEST_MAF_CHANNEL 10000013 #define TEST_MAF_CHANNEL 10000013
float getVoltageDivided(int); float getVoltageDivided(const char *msg, int);
float getVoltage(int channel); float getVoltage(const char *msg, int channel);
int getAdcValue(int channel); int getAdcValue(const char *msg, int channel);
#endif /* BOARDS_H_ */ #endif /* BOARDS_H_ */