diff --git a/src/parser.c b/src/parser.c index 5696d4c..b6af5a6 100644 --- a/src/parser.c +++ b/src/parser.c @@ -450,10 +450,12 @@ static int perform_piezo_sweep(void) k_busy_wait(PIEZO_AVG_INTER_BURST_GAP_US); } + unsigned int key = irq_lock(); piezo_burst_sw((uint8_t)cfg->cycles); k_busy_wait(capture_delay_us); err = echo_adc_capture(echo_capture, cfg->samples); + irq_unlock(key); if (err) { DBG_PRINTF("[ECHO] capture fail ch=%d avg=%d err=%d\r\n", ch, avg, err); @@ -537,10 +539,12 @@ static int perform_single_piezo_capture(uint8_t cycles, k_busy_wait(PIEZO_AVG_INTER_BURST_GAP_US); } + unsigned int key = irq_lock(); piezo_burst_sw(cycles); k_busy_wait(delay_us); err = echo_adc_capture(echo_capture, num_samples); + irq_unlock(key); if (err) { return ECHO_STATUS_CAPTURE;