배터리 전압 TACQ 조정 및 콜백 대기 조건 변경

- 배터리, 온도 모두 오버샘플링 X4 및 TACQ=10us 적용
- 배터리 측정 시 SAADC 콜백 완료 최대 100ms 대기, 콜백 오면 즉시 탈출(온도 측정 시와 동일)
- 전체 측정 시 SAADC 점유 및 충돌 방지
This commit is contained in:
jhChun
2026-03-27 13:54:39 +09:00
parent da581f16e7
commit 7ef17825dc
3 changed files with 17 additions and 3 deletions

View File

@@ -90,7 +90,8 @@ extern int imu_read_direct(void); /* IMU 레지스터 직접 읽기 + BLE 전
extern volatile uint16_t info_batt; /* 배터리 전압 (mV) */
extern volatile uint16_t info_temp; /* 온도 (°C x 100) */
extern volatile uint16_t info_imu[6]; /* IMU 6축 (accel XYZ + gyro XYZ) */
extern volatile bool tmp235_saadc_done; /* TMP235 SAADC 콜백 완료 플래그 */
extern volatile bool tmp235_saadc_done; /* TMP235 SAADC 콜백 완료 플래그 */
extern volatile bool battery_saadc_done; /* 배터리 SAADC 콜백 완료 플래그 */
extern void pressure_all_level_meas(void); /* 압력 센서 전체 측정 */
extern void battery_timer_stop(void); /* 배터리 타이머 중지 */
@@ -1008,8 +1009,12 @@ static void all_sensors(void)
info4 = true; /* 센서값을 전역 변수에 저장 (BLE 전송 안 함) */
/* 1. 배터리 전압 측정 → info_batt에 저장 */
battery_saadc_done = false;
battery_level_meas();
dr_sd_delay_ms(1); /* SAADC 콜백 완료 대기 */
for (timeout_cnt = 0; !battery_saadc_done && timeout_cnt < 100; timeout_cnt++)
{
dr_sd_delay_ms(1); /* 콜백 오면 즉시 탈출, 최대 100ms */
}
/* 2. IMU 6축 단발 읽기 → info_imu[6]에 저장 */
hw_i2c_init_once();