코드 정리

This commit is contained in:
2026-06-26 17:20:45 +09:00
parent 6c7fa6d0e6
commit 1a78656c8f
14 changed files with 105 additions and 265 deletions
+7 -9
View File
@@ -1,6 +1,6 @@
/*******************************************************************************
* @file battery_adc.c
* @brief Battery voltage ADC measurement (Zephyr devicetree 기반)
* @brief Battery voltage ADC measurement
*
* ADC 채널 설정은 디바이스트리 overlay에서 관리:
* - AIN2 (P0.04), Single-ended
@@ -11,8 +11,9 @@
*
* 동작 모드:
* - 단독 측정 (msn? 커맨드) → battery_read_mv() 호출
* - 주기 모니터링 (60초) → 저전압 10회 연속 시 자동 전원 OFF
* - info4 모드 (mbb?) → info_batt에 저장
* - 주기 모니터링 (60초) → 저전압 또는 고온 5회 연속 시 자동 전원 OFF
* - 측정 중(processing) 또는 IMU FIFO 동작 중에는 주기 모니터링 스킵
* - mbb? 측정 응답 -> parser에서 battery_read_mv() 호출 후 패킷에 포함
******************************************************************************/
#include <zephyr/kernel.h>
#include <zephyr/drivers/adc.h>
@@ -51,13 +52,10 @@ static uint8_t high_temperature_cnt = 0;
#define BATTERY_MONITOR_INTERVAL_MS 60000 /* 60초 주기 */
/*==============================================================================
* 전압 변환
*============================================================================*/
/** @brief ADC raw → mV 변환
* 전압 변환 (ADC raw → mV 변환)
* 공식: (raw × 600 / 4095) × 6 × 1.42
* 정수 연산: raw × 600 × 6 × 142 / (4095 × 100) */
* 정수 연산: raw × 600 × 6 × 142 / (4095 × 100)
*============================================================================*/
static int adc_raw_to_mv(int16_t raw)
{
if (raw < 0)