I did it with the help of "pid.cpp" . i right?
what factors install by default?
Code: Select all
+static msg_t iiThread(int param) {
+ (void)param;
+ chRegSetThreadName("Idle Curve thread");
+ static Pid idling_pid(engineConfiguration->idlePfactor,engineConfiguration->idleIfactor,engineConfiguration->idleDfactor,engineConfiguration->minIgnCurve,engineConfiguration->maxIgnCurve);
+
+ while (TRUE) {
+ chThdSleepMilliseconds(boardConfiguration->idleThreadPeriod);
+ if (!isCranking()) {
+ curve= idling_pid.getValue(engineConfiguration->targetIdleRpm,getRpm(),boardConfiguration->idleThreadPeriod);
+ }
+ }
+#if defined __GNUC__
+ return -1;
+#endif
+}
+
+
+
+void initIdlignInginion(void) {
+ chThdCreateStatic(iiThreadStack, sizeof(iiThreadStack), LOWPRIO, (tfunc_t) iiThread, NULL);
+}
+
+
+float getIgnCurve() {
+ return curve;
+}
+
+
+int isIdleMode(void) {
+ if (getTPS(engineConfiguration) > engineConfiguration->maxIdleTps) {
+ return true;
+ }
+ return false;
+}