mirror of https://github.com/rusefi/rusefi-1.git
auto-sync
This commit is contained in:
parent
ec6ef53b7b
commit
c70364e18b
|
@ -37,7 +37,7 @@ public:
|
||||||
* It's more efficient to handle all injectors together if that's the case
|
* It's more efficient to handle all injectors together if that's the case
|
||||||
*/
|
*/
|
||||||
bool isSimultanious;
|
bool isSimultanious;
|
||||||
NamedOutputPin *output;
|
InjectorOutputPin *output;
|
||||||
int injectorIndex;
|
int injectorIndex;
|
||||||
bool isOverlapping;
|
bool isOverlapping;
|
||||||
|
|
||||||
|
|
|
@ -70,12 +70,11 @@ void turnPinHigh(NamedOutputPin *output) {
|
||||||
// signal->hi_time = hTimeNow();
|
// signal->hi_time = hTimeNow();
|
||||||
#endif /* EFI_DEFAILED_LOGGING */
|
#endif /* EFI_DEFAILED_LOGGING */
|
||||||
|
|
||||||
#if EFI_GPIO || defined(__DOXYGEN__)
|
|
||||||
// turn the output level ACTIVE
|
// turn the output level ACTIVE
|
||||||
// todo: this XOR should go inside the setOutputPinValue method
|
// todo: this XOR should go inside the setOutputPinValue method
|
||||||
doSetOutputPinValue2(output, true);
|
doSetOutputPinValue2(output, true);
|
||||||
|
|
||||||
// sleep for the needed duration
|
// sleep for the needed duration
|
||||||
#endif
|
|
||||||
#if EFI_ENGINE_SNIFFER || defined(__DOXYGEN__)
|
#if EFI_ENGINE_SNIFFER || defined(__DOXYGEN__)
|
||||||
// explicit check here is a performance optimization to speed up no-chart mode
|
// explicit check here is a performance optimization to speed up no-chart mode
|
||||||
if (ENGINE(isEngineChartEnabled)) {
|
if (ENGINE(isEngineChartEnabled)) {
|
||||||
|
@ -91,10 +90,8 @@ void turnPinHigh(NamedOutputPin *output) {
|
||||||
|
|
||||||
void turnPinLow(NamedOutputPin *output) {
|
void turnPinLow(NamedOutputPin *output) {
|
||||||
efiAssertVoid(output!=NULL, "NULL turnPinLow");
|
efiAssertVoid(output!=NULL, "NULL turnPinLow");
|
||||||
#if EFI_GPIO || defined(__DOXYGEN__)
|
|
||||||
// turn off the output
|
// turn off the output
|
||||||
doSetOutputPinValue2(output, false);
|
doSetOutputPinValue2(output, false);
|
||||||
#endif /* EFI_GPIO */
|
|
||||||
|
|
||||||
#if EFI_DEFAILED_LOGGING || defined(__DOXYGEN__)
|
#if EFI_DEFAILED_LOGGING || defined(__DOXYGEN__)
|
||||||
systime_t after = hTimeNow();
|
systime_t after = hTimeNow();
|
||||||
|
|
|
@ -138,7 +138,7 @@ void initializeIgnitionActions(angle_t advance, angle_t dwellAngle,
|
||||||
void FuelSchedule::registerInjectionEvent(int injectorIndex, float angle, angle_t injectionDuration,
|
void FuelSchedule::registerInjectionEvent(int injectorIndex, float angle, angle_t injectionDuration,
|
||||||
bool isSimultanious DECLARE_ENGINE_PARAMETER_S) {
|
bool isSimultanious DECLARE_ENGINE_PARAMETER_S) {
|
||||||
|
|
||||||
NamedOutputPin *output = &enginePins.injectors[injectorIndex];
|
InjectorOutputPin *output = &enginePins.injectors[injectorIndex];
|
||||||
|
|
||||||
if (!isSimultanious && !isPinAssigned(output)) {
|
if (!isSimultanious && !isPinAssigned(output)) {
|
||||||
// todo: extract method for this index math
|
// todo: extract method for this index math
|
||||||
|
|
|
@ -26,6 +26,15 @@ NamedOutputPin::NamedOutputPin(const char *name) : OutputPin() {
|
||||||
this->name = name;
|
this->name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
InjectorOutputPin::InjectorOutputPin() : NamedOutputPin() {
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void InjectorOutputPin::reset() {
|
||||||
|
overlappingScheduleOffTime = 0;
|
||||||
|
cancelNextTurningInjectorOff = false;
|
||||||
|
}
|
||||||
|
|
||||||
OutputPin::OutputPin() {
|
OutputPin::OutputPin() {
|
||||||
modePtr = &OUTPUT_MODE_DEFAULT;
|
modePtr = &OUTPUT_MODE_DEFAULT;
|
||||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||||
|
|
|
@ -47,6 +47,14 @@ public:
|
||||||
const char *name;
|
const char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class InjectorOutputPin : public NamedOutputPin {
|
||||||
|
public:
|
||||||
|
InjectorOutputPin();
|
||||||
|
void reset();
|
||||||
|
efitimeus_t overlappingScheduleOffTime;
|
||||||
|
bool cancelNextTurningInjectorOff;
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
OutputPin mainRelay;
|
OutputPin mainRelay;
|
||||||
OutputPin fanRelay;
|
OutputPin fanRelay;
|
||||||
|
@ -56,7 +64,7 @@ typedef struct {
|
||||||
// OutputPin alternatorField;
|
// OutputPin alternatorField;
|
||||||
OutputPin errorLedPin;
|
OutputPin errorLedPin;
|
||||||
|
|
||||||
NamedOutputPin injectors[INJECTION_PIN_COUNT];
|
InjectorOutputPin injectors[INJECTION_PIN_COUNT];
|
||||||
NamedOutputPin coils[IGNITION_PIN_COUNT];
|
NamedOutputPin coils[IGNITION_PIN_COUNT];
|
||||||
OutputPin dizzyOutput;
|
OutputPin dizzyOutput;
|
||||||
} engine_pins_s;
|
} engine_pins_s;
|
||||||
|
|
|
@ -296,7 +296,7 @@ void firmwareError(const char *errorMsg, ...) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static char UNUSED_RAM_SIZE[900];
|
static char UNUSED_RAM_SIZE[700];
|
||||||
|
|
||||||
static char UNUSED_CCM_SIZE[8500] CCM_OPTIONAL;
|
static char UNUSED_CCM_SIZE[8500] CCM_OPTIONAL;
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,15 @@
|
||||||
#include "advance_map.h"
|
#include "advance_map.h"
|
||||||
|
|
||||||
extern int timeNow;
|
extern int timeNow;
|
||||||
|
extern engine_pins_s enginePins;
|
||||||
|
|
||||||
EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persistentConfig) {
|
EngineTestHelper::EngineTestHelper(engine_type_e engineType) : engine (&persistentConfig) {
|
||||||
ec = &persistentConfig.engineConfiguration;
|
ec = &persistentConfig.engineConfiguration;
|
||||||
|
|
||||||
initEnginePinsNames();
|
initEnginePinsNames();
|
||||||
|
for (int i = 0; i < INJECTION_PIN_COUNT;i++) {
|
||||||
|
enginePins.injectors[i].reset();
|
||||||
|
}
|
||||||
|
|
||||||
engineConfiguration = ec;
|
engineConfiguration = ec;
|
||||||
board_configuration_s * boardConfiguration = &engineConfiguration->bc;
|
board_configuration_s * boardConfiguration = &engineConfiguration->bc;
|
||||||
|
|
Loading…
Reference in New Issue