MUX setting 1.3ms delay -> TIMER4 기반 wait 방식으로 변경

This commit is contained in:
2026-04-30 12:23:09 +09:00
parent 8d2f30009a
commit 4a18d3bdb0
2 changed files with 4 additions and 2 deletions
@@ -566,6 +566,9 @@ extern void dr_piezo_burst_sw(uint8_t cycles);
/* dr_piezo_select_channel is defined in dr_piezo.c */ /* dr_piezo_select_channel is defined in dr_piezo.c */
extern void dr_piezo_select_channel(uint8_t channel); extern void dr_piezo_select_channel(uint8_t channel);
/* Channel selection is split into GPIO switch and timer-backed settling wait. */
extern void dr_piezo_select_channel_start(uint8_t channel);
extern void dr_piezo_wait_mux_settled(void);
/*============================================================================== /*==============================================================================
* INTEGRATED BURST + CAPTURE + TRANSMIT * INTEGRATED BURST + CAPTURE + TRANSMIT
@@ -436,6 +436,7 @@ void dr_piezo_init(void)
dr_piezo_gpiote_init(); dr_piezo_gpiote_init();
dr_piezo_timer_init(); dr_piezo_timer_init();
dr_piezo_ppi_init(); dr_piezo_ppi_init();
dr_piezo_mux_timer_init();
m_tx_active = false; m_tx_active = false;
m_remaining_cycles = 0; m_remaining_cycles = 0;
@@ -698,8 +699,6 @@ void dr_piezo_select_channel_start(uint8_t channel)
break; break;
} }
/* MUX settling time required after channel change (> 1.2ms) */
nrf_delay_us(DR_PIEZO_MUX_SETTLING_US);
/* Start one-shot timer for MUX settling (> 1.2ms). */ /* Start one-shot timer for MUX settling (> 1.2ms). */
dr_piezo_mux_timer_start(); dr_piezo_mux_timer_start();
} }