채널0 측정 시작 전 dummy burst + ADC capture 5회에서 1회로 변경(다음주 최종 수정 필요)

- 채널 0 흔들림 개선을 위함
- 현재 평균 5회 이상 신호 양호
This commit is contained in:
2026-07-24 11:24:38 +09:00
parent abb8d6078a
commit 4ecec2f0f2
+14 -3
View File
@@ -39,7 +39,7 @@
#define PIEZO_AVG_INTER_BURST_GAP_US 650 #define PIEZO_AVG_INTER_BURST_GAP_US 650
/* real capture 전에 같은 채널에서 버스트+ADC capture를 버리는 횟수(dummy) */ /* real capture 전에 같은 채널에서 버스트+ADC capture를 버리는 횟수(dummy) */
#define PIEZO_DUMMY_CAPTURE_COUNT 5 #define PIEZO_DUMMY_CAPTURE_COUNT 1
/* 6채널 sweep 결과 (각 채널의 평균 완료 후 최종만 저장) */ /* 6채널 sweep 결과 (각 채널의 평균 완료 후 최종만 저장) */
static uint16_t piezo_channels[PIEZO_NUM_CHANNELS][PIEZO_MEASURE_MAX_SAMPLES]; 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); DBG_PRINTF("[ECHO] dummy read fail ch=%d err=%d\r\n", ch, err);
return ECHO_STATUS_CAPTURE; return ECHO_STATUS_CAPTURE;
} }
if (ch == 0U) // 채널 0 시작 전에만 dummy burst + ADC 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++) for (uint8_t dummy = 0; dummy < PIEZO_DUMMY_CAPTURE_COUNT; dummy++)
{ {
k_busy_wait(PIEZO_AVG_INTER_BURST_GAP_US); 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); DBG_PRINTF("[ECHO] dummy capture fail ch=%d dummy=%d err=%d\r\n", ch, dummy, err);
return ECHO_STATUS_CAPTURE; 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 사이에도 같은 회복 시간 // 마지막 dummy capture와 첫 real capture 사이에도 같은 회복 시간