코드 정리
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user