타이밍 최적화
- 온도 측정, Piezo 측정 사이 딜레이 줄이기 - Piezo 한 채널에서 평균화를 위한 반복 측정 사이 딜레이 줄이기 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -507,7 +507,8 @@ int imu_read_direct(void)
|
||||
{
|
||||
uint8_t pwr_cmd[2] = { 0x1F, 0x0F }; /* reg=0x1F, val=0x0F */
|
||||
icm42670_twi_tx(IMU_I2C_ADDR, pwr_cmd, 2, false);
|
||||
nrf_delay_ms(80); /* 자이로 스타트업: 최소 45ms + 안전 마진 */
|
||||
//nrf_delay_ms(80); /* 자이로 스타트업: 최소 45ms + 안전 마진 */
|
||||
dr_sd_delay_ms(80);
|
||||
}
|
||||
|
||||
/* ACCEL_DATA_X1(0x0B)부터 12바이트 연속 읽기 (0x0B~0x16) */
|
||||
|
||||
@@ -1576,6 +1576,9 @@ void dr_binary_tx_safe(uint8_t const *ble_bin_buff, uint16_t length) // BLE
|
||||
}
|
||||
} while (retry_count < MAX_RETRIES);
|
||||
|
||||
if (retry_count > 0) {
|
||||
DBG_PRINTF("[BLE TX] retry=%u (+%ums)\r\n", retry_count, retry_count * 5);
|
||||
}
|
||||
if (retry_count >= MAX_RETRIES) { // 최대 재시도(100회) 초과 시 해당 패킷 드롭, 연결은 유지
|
||||
DBG_PRINTF("[BLE TX] FAIL %u retries\r\n", retry_count);
|
||||
data_tx_in_progress = false;
|
||||
|
||||
@@ -228,15 +228,21 @@ void dr_piezo_power_on(void)
|
||||
DBG_PRINTF("[PIEZO] Power ON: +/-20V ready\r\n");
|
||||
}
|
||||
|
||||
/* 피에조 전원 OFF: TX 비활성화 후 DC/DC 컨버터 차단 */
|
||||
/* 피에조 전원 OFF: TX 비활성화 → MUX 비활성화 → DC/DC 컨버터 차단 */
|
||||
void dr_piezo_power_off(void)
|
||||
{
|
||||
dr_piezo_disable();
|
||||
|
||||
|
||||
/* MUX enable 핀 클리어: select_channel() 이후 HIGH로 남은 핀 해제 */
|
||||
nrf_gpio_pin_clear(DR_PIEZO_EN_MUXA);
|
||||
nrf_gpio_pin_clear(DR_PIEZO_EN_MUXB);
|
||||
nrf_gpio_pin_clear(DR_PIEZO_MUX_SEL0);
|
||||
nrf_gpio_pin_clear(DR_PIEZO_MUX_SEL1);
|
||||
|
||||
nrf_gpio_pin_clear(DR_PIEZO_PWR_EN);
|
||||
|
||||
|
||||
m_power_enabled = false;
|
||||
|
||||
|
||||
DBG_PRINTF("[PIEZO] Power OFF\r\n");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user