static void initIdleHardware() { if (boardConfiguration->useStepperIdle) { iacMotor.initialize(boardConfiguration->idle.stepperStepPin, boardConfiguration->idle.stepperDirectionPin, engineConfiguration->idleStepperReactionTime, engineConfiguration->idleStepperTotalSteps, engineConfiguration->stepperEnablePin); } else { /** * Start PWM for idleValvePin */ startSimplePwmExt(&idleSolenoid, "Idle Valve", boardConfiguration->idle.solenoidPin, &enginePins.idleSolenoidPin, boardConfiguration->idle.solenoidFrequency, boardConfiguration->manIdlePosition / 100, applyIdleSolenoidPinState); } }
void initElectronicThrottle(void) { initLogging(&logger, "Electronic Throttle"); engineConfiguration->tpsMin = 140; engineConfiguration->tpsMax = 898; // these two lines are controlling direction // outputPinRegister("etb1", ELECTRONIC_THROTTLE_CONTROL_1, ETB_CONTROL_LINE_1_PORT, ETB_CONTROL_LINE_1_PIN); // outputPinRegister("etb2", ELECTRONIC_THROTTLE_CONTROL_2, ETB_CONTROL_LINE_2_PORT, ETB_CONTROL_LINE_2_PIN); // this line used for PWM startSimplePwmExt(&etbPwm, "etb", boardConfiguration->electronicThrottlePin1, ELECTRONIC_THROTTLE_CONTROL_1, 500, 0.80); addConsoleActionI("e", setThrottleConsole); chThdCreateStatic(etbTreadStack, sizeof(etbTreadStack), NORMALPRIO, (tfunc_t) etbThread, NULL); }