Test Softs start working

This commit is contained in:
Emanuele Trabattoni
2026-04-01 12:00:07 +02:00
parent d7e0990e36
commit ebff6281af
2 changed files with 72 additions and 30 deletions

View File

@@ -72,8 +72,14 @@ void setup()
void loop() void loop()
{ {
LOG_INFO("Loop: ", count++); LOG_INFO("Loop: ", count++);
uint32_t spark_delay = (uint32_t)(map(analogRead(12), 0, 4096, 100, 1000) / PERIOD_US); uint32_t spark_delay = (uint32_t)(map(analogRead(12), 0, 4096, 100, 800) / PERIOD_US);
stsA.spark_delay_us = spark_delay * PERIOD_US; stsA.spark_delay_us = spark_delay * PERIOD_US;
LOG_INFO("Spark Delay uS: ", stsA.spark_delay_us); if (stsA.spark_delay_us > 500) {
stsA.soft_start = true;
stsA.spark_delay_us -= 500;
} else {
stsA.soft_start = false;
}
LOG_INFO("Spark Delay uS: ", stsA.spark_delay_us, "\tSoft Start: ", stsA.soft_start ? "TRUE" : "FALSE");
delay(500); delay(500);
} }

View File

@@ -25,12 +25,21 @@ void onTimer(void *arg)
wait_sent = false; wait_sent = false;
} }
if (!params->soft_start)
{
if (params->state_time == params->spark_delay_us) if (params->state_time == params->spark_delay_us)
{ {
// xTaskNotifyFromISR(task, SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A12, HIGH); digitalWrite(SPARK_A12, HIGH);
} }
if (params->state_time == (params->spark_delay_us + params->spark_pulse_us))
{
// xTaskNotifyFromISR(task, ~SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A12, LOW);
}
}
if (params->state_time >= params->coil_pulse_us && params->coil12p_high) if (params->state_time >= params->coil_pulse_us && params->coil12p_high)
{ {
// xTaskNotifyFromISR(task, ~PIN_TRIG_A12P, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, ~PIN_TRIG_A12P, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
@@ -38,12 +47,6 @@ void onTimer(void *arg)
params->coil12p_high = false; params->coil12p_high = false;
} }
if (params->state_time == (params->spark_delay_us + params->spark_pulse_us))
{
//xTaskNotifyFromISR(task, ~SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A12, LOW);
}
if (params->state_time >= params->pause_short_us) if (params->state_time >= params->pause_short_us)
{ {
params->state = S_12N; params->state = S_12N;
@@ -59,6 +62,21 @@ void onTimer(void *arg)
params->coil12n_high = true; params->coil12n_high = true;
} }
if (params->soft_start)
{
if (params->state_time == params->spark_delay_us)
{
// xTaskNotifyFromISR(task, SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A12, HIGH);
}
if (params->state_time == (params->spark_delay_us + params->spark_pulse_us))
{
// xTaskNotifyFromISR(task, ~SPARK_A12, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A12, LOW);
}
}
if (params->state_time >= params->coil_pulse_us && params->coil12n_high) if (params->state_time >= params->coil_pulse_us && params->coil12n_high)
{ {
// xTaskNotifyFromISR(task, ~PIN_TRIG_A12N, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, ~PIN_TRIG_A12N, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
@@ -91,12 +109,6 @@ void onTimer(void *arg)
wait_sent = false; wait_sent = false;
} }
if (params->state_time == params->spark_delay_us)
{
//xTaskNotifyFromISR(task, SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A34, HIGH);
}
if (params->state_time >= params->coil_pulse_us && params->coil34p_high) if (params->state_time >= params->coil_pulse_us && params->coil34p_high)
{ {
// xTaskNotifyFromISR(task, ~PIN_TRIG_A34P, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, ~PIN_TRIG_A34P, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
@@ -104,11 +116,20 @@ void onTimer(void *arg)
params->coil34p_high = false; params->coil34p_high = false;
} }
if (!params->soft_start)
{
if (params->state_time == params->spark_delay_us)
{
// xTaskNotifyFromISR(task, SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A34, HIGH);
}
if (params->state_time == params->spark_delay_us + params->spark_pulse_us) if (params->state_time == params->spark_delay_us + params->spark_pulse_us)
{ {
// xTaskNotifyFromISR(task, ~SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, ~SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A34, LOW); digitalWrite(SPARK_A34, LOW);
} }
}
if (params->state_time >= params->pause_short_us) if (params->state_time >= params->pause_short_us)
{ {
@@ -125,6 +146,21 @@ void onTimer(void *arg)
params->coil34n_high = true; params->coil34n_high = true;
} }
if (params->soft_start)
{
if (params->state_time == params->spark_delay_us)
{
// xTaskNotifyFromISR(task, SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A34, HIGH);
}
if (params->state_time == params->spark_delay_us + params->spark_pulse_us)
{
// xTaskNotifyFromISR(task, ~SPARK_A34, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);
digitalWrite(SPARK_A34, LOW);
}
}
if (params->state_time >= params->coil_pulse_us && params->coil34n_high) if (params->state_time >= params->coil_pulse_us && params->coil34n_high)
{ {
// xTaskNotifyFromISR(task, ~PIN_TRIG_A34N, eSetValueWithOverwrite, &xHigherPriorityTaskWoken); // xTaskNotifyFromISR(task, ~PIN_TRIG_A34N, eSetValueWithOverwrite, &xHigherPriorityTaskWoken);