배터리 전압 TACQ 조정 및 콜백 대기 조건 변경
- 배터리, 온도 모두 오버샘플링 X4 및 TACQ=10us 적용 - 배터리 측정 시 SAADC 콜백 완료 최대 100ms 대기, 콜백 오면 즉시 탈출(온도 측정 시와 동일) - 전체 측정 시 SAADC 점유 및 충돌 방지
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user