This commit is contained in:
2026-04-14 14:16:11 +02:00
parent 899c8cffbc
commit 8171cab9cb
5 changed files with 14 additions and 30 deletions

View File

@@ -1,6 +1,7 @@
#include "tasks.h"
#include <esp_timer.h>
#include <datasave.h>
#include <mutex>
//// GLOBAL STATIC FUNCTIONS
@@ -38,7 +39,8 @@ void rtIgnitionTask::rtIgnitionTask_realtime(void *pvParameters)
const rtTaskIOParams rt_rst = params->rt_io; // copy to avoid external override
QueueHandle_t rt_queue = params->rt_queue;
Devices *dev = params->dev.get();
ADS1256 *adc = dev->m_adc_a.get();
ADS1256 *adc = params->name == "rtIgnTask_A" ? dev->m_adc_a.get() : dev->m_adc_b.get();
std::mutex& spi_mutex = params->name == "rtIgnTask_A" ? dev->m_spi_a_mutex : dev->m_spi_b_mutex;
ExternalIO* io = dev->m_ext_io.get();
TaskStatus_t rt_task_info;
@@ -234,6 +236,7 @@ void rtIgnitionTask::rtIgnitionTask_realtime(void *pvParameters)
// read adc channels: pickup12, out12 [ pos + neg ]
if (adc) // read only if adc initialized
{
std::lock_guard<std::mutex> lock (spi_mutex);
uint32_t start_adc_read = esp_timer_get_time();
// from peak detector circuits
ign_box_sts.coils12.peak_p_in = adcReadChannel(adc, ADC_CH_PEAK_12P_IN);
@@ -256,7 +259,7 @@ void rtIgnitionTask::rtIgnitionTask_realtime(void *pvParameters)
// [TODO] code to reset sample and hold and arm trigger level detectors
}
else
vTaskDelay(pdMS_TO_TICKS(1));
vTaskDelay(pdMS_TO_TICKS(2));
// send essage to main loop with ignition info, by copy so local static variable is ok
if (rt_queue)