diff --git a/src/measurement/piezo_measure.c b/src/measurement/piezo_measure.c index 3df7ae3..d79d97f 100644 --- a/src/measurement/piezo_measure.c +++ b/src/measurement/piezo_measure.c @@ -39,7 +39,7 @@ #define PIEZO_AVG_INTER_BURST_GAP_US 650 /* real capture 전에 같은 채널에서 버스트+ADC capture를 버리는 횟수(dummy) */ -#define PIEZO_DUMMY_CAPTURE_COUNT 5 +#define PIEZO_DUMMY_CAPTURE_COUNT 1 /* 6채널 sweep 결과 (각 채널의 평균 완료 후 최종만 저장) */ static uint16_t piezo_channels[PIEZO_NUM_CHANNELS][PIEZO_MEASURE_MAX_SAMPLES]; @@ -227,10 +227,11 @@ int piezo_measure_sweep(void) DBG_PRINTF("[ECHO] dummy read fail ch=%d err=%d\r\n", ch, err); return ECHO_STATUS_CAPTURE; } - + if (ch == 0U) // 채널 0 시작 전에만 dummy burst + ADC capture 수행 { - // Dummy burst - ADC caputre는 수행하지 않음 + // Dummy burst + ADC caputre + /* for (uint8_t dummy = 0; dummy < PIEZO_DUMMY_CAPTURE_COUNT; dummy++) { k_busy_wait(PIEZO_AVG_INTER_BURST_GAP_US); @@ -251,6 +252,16 @@ int piezo_measure_sweep(void) DBG_PRINTF("[ECHO] dummy capture fail ch=%d dummy=%d err=%d\r\n", ch, dummy, err); return ECHO_STATUS_CAPTURE; } + }*/ + + k_busy_wait(PIEZO_AVG_INTER_BURST_GAP_US); + piezo_burst_sw_freq(freq, cycles); + k_busy_wait(capture_delay_us); + err = echo_adc_capture(echo_capture, samples); + if (err) + { + DBG_PRINTF("[ECHO] dummy capture fail ch=%d dummy=%d err=%d\r\n", ch, dummy, err); + return ECHO_STATUS_CAPTURE; } // 마지막 dummy capture와 첫 real capture 사이에도 같은 회복 시간