/******************************************************************************* * @file power_control.h * @author CandyPops Co. * @version V1.0.0 * @date 2022-09-05 * @brief ******************************************************************************* * * [헤더 개요] * 디바이스 전원 시퀀스 관리 모듈의 공용 인터페이스 헤더. * * [주요 함수 요약] * power_gpio_init() : 전원 관련 GPIO 초기화 (EEP_WP 핀) * eeprom_control() : EEPROM 쓰기 보호 ON/OFF (레거시) * device_activated() : 전원 켜기 → power_loop 상태머신 시작 * device_sleep_mode() : 슬립 모드 진입 (EEPROM OFF, 처리 중단) * device_reactivated() : 슬립 복귀 → I2C 재초기화 후 전원 시퀀스 재시작 * power_loop() : 20ms 간격 전원 시퀀스 상태머신 콜백 * power_timer_start/stop : 전원 시퀀스 타이머 제어 * power_timer_init() : 전원 시퀀스 타이머 초기화 (앱 시작 시 1회) * ******************************************************************************/ #ifndef _POWER_CONTROL_H_ #define _POWER_CONTROL_H_ #include "main.h" /** @brief 전원 관련 GPIO 핀 초기화 (EEP_WP 출력 설정) */ void power_gpio_init(void); /** @brief EEPROM 쓰기 보호 제어 (ON=허용, OFF=보호) - 레거시 */ void eeprom_control(on_off_cont_t eeprom_st); /** @brief 디바이스 슬립 모드 진입 (EEPROM OFF, processing 해제) */ int device_sleep_mode(void); /** @brief 디바이스 전원 켜기 (전원 시퀀스 상태머신 시작) */ int device_activated(void); /** @brief 디바이스 재활성화 (슬립 복귀 시 I2C 재초기화 후 시퀀스 재시작) */ int device_reactivated(void); /** @brief 전원 시퀀스 상태머신 (20ms 타이머 콜백, Step 0→1→2) */ void power_loop(void * p_context); /* For x ms */ /** @brief 전원 시퀀스 타이머 시작 (20ms 싱글샷) */ void power_timer_start(void); /** @brief 전원 시퀀스 타이머 정지 */ void power_timer_stop(void);; /** @brief 전원 시퀀스 타이머 초기화 (앱 시작 시 1회 호출) */ void power_timer_init(void); #endif //_POWER_CONTROL_H_