MUX setting 1.3ms delay -> TIMER4 기반 wait 방식으로 변경
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user